Nodes/ComfyUI-fal-API/Seedance Pro Image-to-Video (fal)
ComfyUI Node

Seedance Pro Image-to-Video (fal)

ByteDance's motion model from a still

By gokayfem·Created 2 years ago·Updated 2 days ago· 201
Seedance Pro Image-to-Video (fal)
  • image
  • end_image
  • STRING
prompt
duration5
negative_prompt
cfg_scale0.5
variations1

Seedance is ByteDance's video model, and it's built around motion - the kind of physically plausible movement that makes a clip look shot rather than smeared. SeedanceProImageToVideo_fal takes a still image and a prompt and animates it on fal's hardware, returning a video URL. The whole Seedance line is a closed, API-only product (ByteDance keeps its flagship generation models off the download shelf), so a node like this is how it reaches ComfyUI at all.

Image-to-video is the mode here, and it's the one to prefer when you care about the result: make a strong still first, then let Seedance move it. That beats a text-only roll for controlling the look, because you've already locked the composition, palette, and subject in the frame.

The inputs that matter

  • image - your start frame. The clip grows out of this.
  • prompt - describe the motion: what moves, how the camera behaves. Action, not just scenery.
  • duration - anywhere from 2 to 12 seconds (an unusually fine range for a video model).

The optionals:

  • end_image - a final frame; give Seedance a start and an end and it fills the motion between them.
  • cfg_scale - a 0–1 prompt-adherence dial (default 0.5); higher follows the prompt harder, sometimes at the cost of natural movement.
  • negative_prompt and variations (up to 10 takes per call).

Output is a STRING list - video URL(s).

How it works

Nothing runs on your machine. The node uploads your start frame, prompt, and settings; fal queues the job on Seedance and renders it; the finished clip comes back as a URL (or several, if you asked for variations). Because it's an API node, the pack caches identical calls - the same image, prompt, and settings won't re-bill on a repeat, and force_rerun forces a fresh take when you want one. The 2-to-12-second duration range gives you finer length control than most video endpoints, which is handy for matching a clip to a specific beat.

Installing it

ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
pip install -r ComfyUI-fal-API/requirements.txt

No downloads - Seedance's weights are ByteDance's and stay hosted. Set your fal key (config.ini, or export FAL_KEY=your_key; fal.ai/dashboard/keys), restart, find it under FAL/VideoGeneration.

Where people get burned

Same as every video node in this pack: the output is a URL, not a preview-able video. Feed the string into Fal Save Media from URL to download the clip (and get a provenance receipt), or a Load-from-URL node to pull it back into the graph. The result URLs expire, so save the keepers.

variations is a budget multiplier - set to 10, you're paying for ten clips. Start at 1. The cfg_scale being on a 0–1 scale trips people who expect the 1–20 range; nudge it in small steps. And Seedance runs content policy on the endpoint, so a refused job comes back as fal's real error text rather than silence - read it. If you're comparison-shopping video models before committing, the CombinedVideoGeneration_fal node fires the same image at several engines at once, which is a cheaper way to decide than running each individually.

CategoryFAL/VideoGeneration

Inputs (7)

NameTypeDefaultDescription
promptSTRING
imageIMAGE
durationCOMBO511 options: 2, 3, 4, 5, 6, 7, +5
end_imageoptIMAGE
negative_promptoptSTRING
cfg_scaleoptFLOAT0.50–1
variationsoptINT11–10

Outputs (1)

NameTypeDescription
STRINGSTRING