Fal Image-to-Video
One frame becomes a clip — Kling, Seedance and Veo without the GPU
- image
- frames
- video_url
- audio
- info
Image-to-video is where the community's video work actually lives - anchoring the first frame to an image you already like beats praying text-to-video gets your subject right. Fal Image-to-Video is the node that hands you the closed frontier models for that job - Kling, Seedance, Veo, MiniMax - without any of them ever touching your VRAM. It's part of the ComfyUI-Fal-Gateway pack, and like the other media nodes in it, the dropdown is populated live from fal's catalog: pick a model, wire an image, queue, and you get frames back as a normal IMAGE batch.
Inputs and outputs
- image - your start frame, straight from
LoadImageor anything producing a tensor. - model_id - the type-ahead dropdown. Seedance 2 I2V, Kling I2V, Veo I2V, MiniMax, and the FLF-capable models that run fine here when you only wire the start frame. Type
seedanceto see the family cluster together. - prompt - what happens next. For most of these, motion language ("camera pushes in, waves crash") beats object listings.
Four outputs:
- frames - the whole clip as an IMAGE batch. Feed it into
VHS_VideoCombineorSaveVideoto get an actual file; that's the standard move and it works. - video_url - the fal-hosted source mp4, if you'd rather grab the file directly.
- audio - an AUDIO socket. The node pulls the audio track out of the mp4; it comes back
Nonefor silent clips, which is fine since video-saver audio inputs are optional. - info - JSON string with the full result dict (seed, timings, safety flags).
How it works
Your start frame is uploaded to fal's CDN and referenced by URL in the job payload; the cloud runs the video model; the node downloads the result, decodes the frames with OpenCV (opencv-python is a real dependency here, not a vestigial one), and hands you the batch plus the extracted audio track. All of it is one HTTP call with your key. Pay-per-call, so it's a "rent the A100 for the seconds you need" model rather than a subscription.
Install
Manual for now (Manager registry PR is pending):
cd ComfyUI/custom_nodes
git clone https://github.com/modbender/ComfyUI-Fal-Gateway
pip install -r requirements.txt
export FAL_KEY=your_fal_key
Restart ComfyUI; the nodes live under Fal-Gateway. No model downloads, no checkpoint juggling - the heavy lifting is on fal's side.
Gotchas
- Video is where the bill gets scary. One 10-second 1080p Seedance clip is priced per job, and the KB's read of the community reaction is blunt: sessions get expensive fast. Watch the cost badge in the title bar before you queue a grid of variations.
- First render includes a cold start - your first job pays model-load latency on their end. Not a bug, just cloud reality.
- Fresh nodes can show
<no models available>while the catalog fetch warms up; right-click → "Fal-Gateway: refresh catalog cache" if it lingers. - FAL_KEY missing → hard "FAL_KEY not set" error with the fix spelled out. Same key works for every node in the pack.
Honest take: if you run video locally (Wan 2.2 and friends), this node is for the models you can't have locally - Veo, Kling, Seedance are closed weights, full stop. For those, this is one of the cleanest doors into ComfyUI.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_id | COMBO | 203 options: [alibaba] Happy Horse (alibaba/happy-horse/image-to-video), [alibaba] Happy Horse (alibaba/happy-horse/reference-to-video), [alibaba] Happy Horse 1.1 Image to Video, [alibaba] Happy Horse 1.1 Reference to Video, [alibaba] Wan 3.0 (alibaba/wan-3.0/image-to-video), [alibaba] Wan 3.0 (alibaba/wan-3.0/reference-to-video), +197 | |
| prompt | STRING | — | |
| image | IMAGE | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| video_url | STRING | — |
| audio | AUDIO | — |
| info | STRING | — |