Nodes/Fal-Gateway/Fal Image-to-Video
ComfyUI Node

Fal Image-to-Video

One frame becomes a clip — Kling, Seedance and Veo without the GPU

By modbender·Created 5 months ago·Updated 3 months ago· 1
Fal Image-to-Video
  • image
  • frames
  • video_url
  • audio
  • info
model_id
prompt

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 LoadImage or 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 seedance to 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_VideoCombine or SaveVideo to 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 None for 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.

CategoryFal-Gateway

Inputs (3)

NameTypeDefaultDescription
model_idCOMBO203 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
promptSTRING
imageIMAGE

Outputs (4)

NameTypeDescription
framesIMAGE
video_urlSTRING
audioAUDIO
infoSTRING