Seedance Pro Image-to-Video (fal)
ByteDance's motion model from a still
- image
- end_image
- STRING
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
2to12seconds (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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image | IMAGE | — | |
| duration | COMBO | 5 | 11 options: 2, 3, 4, 5, 6, 7, +5 |
| end_imageopt | IMAGE | — | |
| negative_promptopt | STRING | — | |
| cfg_scaleopt | FLOAT | 0.50–1 | — |
| variationsopt | INT | 11–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |