Home/Insights/Automation

Wan 2.5 (the Veo 3 Killer) is NOW in n8n (full tutorial & FREE template)

By Ani BjörkströmPublished 4 October 2025Reviewed 20 September 202613 min video + articleAutomation

Wan 2.5 (the Veo 3 Killer) is NOW in n8n (full tutorial & FREE template)
▶ Watch the full 13-minute tutorial · free on YouTube

AUTOMATION

How do you turn an image into video with Wan 2.5 in n8n?

In short: An n8n form collects an image plus a text description, the image is uploaded to Google Drive so the Wan API can reach it by URL, and one HTTP request kicks off the render.

Key takeaways

  • An n8n form collects an image plus a text description, the image is uploaded to Google Drive so the Wan API can reach it by URL, and one HTTP request kicks off the render.
  • Going through fal.ai means one account and one top-up (for example $10) covers Wan 2.5 alongside other APIs such as Veo 3, ChatGPT, Claude and Perplexity.
  • A 20-second wait node and an if-condition poll the status endpoint until the render — typically one to five minutes — reports completed, then a GET request fetches the MP4.

Wan 2.5 generates video from a still image and a written description, and the whole flow fits in a compact n8n workflow: form in, MP4 out. Ani Björkström, a tech consultant based in Stockholm, walks through every node and gives the template away free to viewers who like the video and comment "n8n".

What does the form collect?

Two things: an image description and the image itself. The description uses a text-area field so you can write a full paragraph — this is the text sent to the API to shape the video. The image field is set to type "file", with multiple files enabled so you can submit more than one image for the video.

Why upload the image to Google Drive first?

Because the Wan API accesses your images via URLs, not raw uploads, so the workflow first pushes the local file into Google Drive. The upload node maps the form's file field by name, pulls the file name from the schema view, and targets a chosen folder in My Drive. The connection itself needs Google Cloud credentials: at console.cloud.google.com you create a project, open APIs and services, go to the consent screen, and create a client of type web application. That produces a client ID and a client secret — save the secret immediately, because it is not shown again.

How is the request to Wan 2.5 built?

It is a single HTTP POST whose URL comes straight from the API documentation. Authentication uses a generic header credential named "authorization", with the value written as "Key", a space, then your fal API key — the key is created in fal's dashboard under API keys. The body is raw JSON carrying the prompt from the form, the Google Drive image URL, the resolution, and the duration — 10 seconds here, though 5 seconds is available and costs less.

NodeRole in the workflow
n8n FormCollects the image description and image file(s)
Google Drive uploadStores the image so the API can fetch it by URL
HTTP request (POST)Sends prompt, image URL, resolution and duration to Wan 2.5
Wait + status request + ifPolls every 20 seconds until status equals completed
Get video (GET)Downloads the finished MP4 from the response URL

How does the polling loop work?

The workflow waits 20 seconds, calls the status endpoint, and an if-condition checks whether the status equals "completed". False loops back to the wait node for another 20 seconds — this can repeat many times, since renders take one to five minutes — and true moves on to the get-video step, which calls the response URL and returns an MP4, a format any web browser can play.

FAQ

Do I have to use fal.ai?

No. You can enter the Wan API URL directly in the HTTP node. fal.ai is simply convenient: one account gives access to many APIs — Veo 3, ChatGPT, Claude, Perplexity — from a single balance.

Does video length affect cost?

Yes. A 10-second video costs more than a 5-second one, so the duration field in the request body is also a budgeting decision.

How do I get the template?

Like the video and comment "n8n", and the workflow template is sent to you free.

Full transcript of the video (1,883 words, 15 sections)

Chapters: 0:00 Intro + Template Giveaway Announcement · 0:42 Creating the n8n Form (image + description fields) · 2:15 Uploading Images to Google Drive · 4:10 Creating Google API Credentials (Client ID & Secret) · 6:00 Setting up the HTTP Request to Fal.ai WAN 2.5 · 8:25 Understanding Authentication Headers and API Keys · 10:00 Waiting for Video Generation (Wait node + Status Check) · 12:10 Using IF Condition and Loop for Completion

0:19 Good to meet you. Hey, my name is Annie. I'm a tech consultant based in Stockholm. And in today's tutorial, I will show you how to create video from an image using one 2.5. I will be giving away this template for free. You just need to like this video and comment n in the comments. But now let's get started. The first action in our workflow is form. In order to choose the form, you will click on the plus button and then you will type form and you will choose N8 form. Now let's double click on the form. So you can see all the setups. You can see that we don't need to choose an authentication here. Form title can be on form submission.

1:06 You don't need to enter any description. Then you have to enter two form elements. First one is field name and here you can write image description. Now this is the description that will be sent to API in order to create video from your image. So for that reason we want to choose text area which means that you can write a paragraph. Then we will choose image and type will be file because here you will actually submit the image that will be used to create a video. Also we will enable multiple files so that you can choose couple of files for creating your video.

1:53 The next one is upload file and we will choose Google Drive for that. Upload file. The reason we are using this action is because we want to upload images from our local computer into Google Drive so that later on one API can access those images via URLs. So now under resources you will choose file and then operation will be upload and input data. This is the name of your form. Let me show how exactly it will look like. If I choose a file from my own computer in the Google drive when you are choosing input data field name then you need to choose the name that is the same as the form name and here you can see the form name is image.

2:47 So that is what you will enter under input data field name. Next you have file name and in order to find file name here you will change from binary to schema and you will look for file name. This is the file name and you can just drag and drop this file name in here. Then parent drive. So this is basically where the image should be saved and for us it's my drive because it will be saved in your Google drive. And then from here you can choose the folder in your Google drive where the images to be sent. The tricky part is Google Drive account which means how should N8N connect with Google Drive.

3:32 If you for example click on this arrow you can choose create new credentials and you can see that you need to enter client ID and client secret. The question is how and from where should you get client ID and client secret? I will show you how to do it. You will go to console cloudgoogle.com and from here basically you will create a new project. You can see that I have already my N8M project but if you don't have it no worries you will just click on new project and you will create a project. And once that is done, you will come into your project and then from left side you will choose APIs and services and from there you will choose consent screen.

4:26 Now it opens up and from here you will click on client and you can see that I have already created my client but I will show you how to do it. You will click on create client button. You will choose application type web application and then that is basically it. You will create here and now you can see both your client ID and you can also see your client secret and what is important is that you need to save your client secret somewhere because you will not see it after that you created it. The next step is sending HTTP request. So what HTTP request does it gets the images that we submitted and the video description and send those to one IE.

5:16 So basically it says to one IE those are the images and this is the video description create a video for me. If we double click on HTTP request, you can see that the method is post and under URL, you can enter directly one IE URL if you like that. But in my case, I'm using F IE. If you don't know what is F IE, FA IE is a third company that is giving users access to different APIs. So if you have an account in fall I you don't need to only use one I API but you can even use APIs for for example V3 or you can use chat GPT or cloud APIs or perplexity API.

6:09 So for me it makes sense to top up my FA account with for example $10 so that I can then use all the other APIs as well. It's just easier and saves me time to have just all those set up at one place. So that's why I'm using van I but if you don't like it just use directly van I API. So now let's come look into here and understand what we should get from this API documentation. So here we will choose HTTP C URL and then we will read API documentation to understand which URL should we use. You can see that it says that the URL is this one.

6:59 So that is exactly the same URL that I'm using in the post request. Then when it comes to authentication, you will choose generic credential type and then generic of type will be header off and I have already done that but I will show you how to do it because it normally is quite tricky to do this. So you will just click on this button and here basically what you will do the name should be authorization and then the value should be key and space and your file I API key. Now if we go to file ID and we scroll down here in the documentation you can see that it describes that this is the URL that we specified and then under that we need to have in the header we should have authorization.

7:54 So that's what you will have here in your credentials under the name you will write authorization. You will create key and then you will have a space and then you will enter your fall API key. And now you might be asking how should I create my fall API key and I will show you that as well. You can search from here API key and then you can see that API key button pops up and here you will click on add key and then create key and your API will be shown. You will copy that and you will go back to N8N and you will use it here. So that's basically it. Now the next part is body content type there.

8:45 There you will choose row and content type will be application JSON. And here if I open this one. So here basically you are choosing the prompt that you submitted on your form submission. So that's what we entered here just that this is a variable and then for image URL we are choosing a URL for our file saved in Google drive also here resolution we are just giving that the video should have this resolution and duration I have 10 seconds you can have 5 seconds as well and it's also important to know of course if you are creating 10 seconds videos then it costs more than 5 seconds and then we are all set up and we can go to the next action in this workflow.

9:36 The next module in this template is wait. So the reason that we are using wait here is because it can take between 1 to 5 minutes for one API to create the video. So that is why we will wait 20 seconds and then we will check the status end point to see if video is in progress or it is completed and if it is completed we will go to the next step where we are getting the video but if it's not completed then we will wait another 20 seconds and we'll check the status again. Now in order to get weight module you will click on the plus button and you will type wait and the first one is the one that you will get. If I doubleclick on the wait module you can see that all it does it just waits 20 seconds and of course you can update 20 seconds to 30 seconds or 40 seconds.

10:31 It's totally up to you to define. Then we are sending HTTP request and if I double click on that you can see that I'm using the URL for status. What it does it is returning the status on the right side. Right now it is completed but if we had to check this just couple of seconds after we submitted request it would have been in progress. And then the authentication parts it's exactly the same as I showed you in the beginning of this video. So you use the same authentication for all HTTP requests to file IE. Now let's go out of this one. Then we have the if condition and what if condition does it is getting the status URL exactly the same one that I showed you before and it is checking if the status is equal to complete or not.

11:31 So if it is completed then this if condition will return true but if it is something else than completed then it will return false. Now if we go out of this one you can see that when it is returning to false which means that status is not completed then the loop is repeating itself. It will still wait another 20 seconds and it will try to get the status one more time and this can repeat itself many times and as soon as it returns true then it will go to the next step that is get video step which is also an HTTP request. If I double click on that, you can see that what it does.

12:16 It is calling response URL with get method and it is getting an MP4 video. We can see this is the URL and that's basically what we need because MP4 is the format that we can use in any web browser like this. and we can open the video. Good to meet you. But that's it for today. And again, I'm giving away this template for free. Just like this video and comment nate and below and I will send it to you. Bye and have a good day.

Want this working inside your finance team?

Ani Björkström

Ani Björkström — founder of QvantX Sweden AB, a Stockholm consultancy building AI solutions for banks, asset managers and finance teams. Anthropic partner. Every article starts from a real client build, minus the confidential parts. LinkedIn →