Veo 3.1 First-Last-Frame-to-Video (fal)
Google's video model with native audio
- first_frame
- last_frame
- STRING
Veo is Google's video model, and it has one thing no open local model has matched: it generates synchronized audio - sound effects and dialogue that line up with what's on screen. That's the genuine capability gap that keeps people paying for it. This node runs Veo 3.1 in its first-last-frame mode: give it a starting image (and optionally an ending image) and a prompt, and it generates the motion between them, with sound.
What it actually does
Nothing runs locally. Your frames and prompt go to fal.ai, fal calls Google's Veo, and you get a clip back - no VRAM, no downloads, billed per generation. The first-last-frame setup is the useful bit: supply just a first_frame and Veo animates outward; supply both first_frame and last_frame and it treats them as bookends and generates a controlled transition that lands on your target. That's the difference between "animate this photo" and "get me from this shot to that shot."
The inputs that matter
- first_frame (required): the opening image the video starts from.
- prompt (required): describe the motion, and - because Veo does audio - describe the sound too. "Waves crashing, seagulls" actually gets you waves and seagulls.
- last_frame (optional): the target closing image. Add it for a directed transition; leave it out for open-ended animation.
- duration:
4s,6s, or8s. Eight is the ceiling and the priciest. - resolution:
720por1080p. - generate_audio (default on): the whole reason to use Veo. Leave it on unless you specifically want a silent clip (which is cheaper).
There's also aspect_ratio (auto/9:16/16:9/1:1). The output is a single STRING - the video URL. Route it into the pack's Fal Save Media from URL node to download the file (with audio) to your output/ folder.
Installing it
Easiest: ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
cd ComfyUI-fal-API
pip install -r requirements.txt
Restart ComfyUI. No model file; the dependencies are fal-client and a fal API key (in config.ini under [API], or the FAL_KEY env var). No key, no video.
Where people get burned
First, don't forget the audio is a feature you're paying for - if you leave generate_audio on but never mention sound in your prompt, you get generic ambience and wonder why. Describe what you want to hear. If you don't need sound, turning it off saves money.
Second, first-last-frame only works well when the two frames are compatible; hand Veo a start and end that share nothing and the in-between motion gets strange as it strains to reconcile them. Third, Veo has Google's content filters, so refusals happen - the pack surfaces fal's real error text, so read it rather than assuming a bug. And note that consuming a native VIDEO/AUDIO result cleanly wants a recent ComfyUI; if sockets look wrong, update. Windows Portable import error? .\python_embeded\python.exe -m pip install fal-client.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| first_frame | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| durationopt | COMBO | 8s | 3 options: 4s, 6s, 8s |
| aspect_ratioopt | COMBO | auto | 4 options: auto, 9:16, 16:9, 1:1 |
| resolutionopt | COMBO | 720p | 2 options: 720p, 1080p |
| generate_audioopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |