Seedance Lite Image-to-Video
First frame in, video out
- image
- STRING
The classic image-to-video move: you've got a still you love - a photo, a render, a Seedream image - and you want it to move. This node hands that image to Seedance Lite (seedance-1-0-lite-i2v-250428) as a first frame, and the model animates it: your picture becomes the opening frame of a short clip that continues from there. No local video model, no VRAM gymnastics - the work happens on ByteDance's API, which is the only way Seedance has ever shipped (the KB's ByteDance panel: flagship products stay closed, on the API, period).
It's the "Lite" tier for a reason. Quality is good - Seedance Lite is legitimately capable, and for prompts about motion and camera it holds up - but if you need the best, the pack's Pro nodes are there. What Lite gets you is speed and a cheaper per-render cost, which matters when video generation is metered by the task.
How it works
Your image is base64-encoded and sent as a first_frame content part alongside your prompt text. The node creates an async generation task on BytePlus, then polls every five seconds until it finishes or hits a five-minute timeout. When it succeeds you get a hosted video URL back as a plain string. The --fps, --dur, --rs, and --rt style controls are baked into the prompt text the pack sends (there's a small chance the model sees them as command flags - that's how this API is wired).
Inputs and outputs that matter
- prompt - the motion brief. Be explicit: "the camera slowly pushes in," "the subject waves." With image-to-video, most of the appearance comes from the image, so the prompt is about what happens.
- image - your first frame. Required.
- resolution (480p/720p/1080p), ratio (adaptive plus the usual six), duration (3–12s).
- framepersecond - locked at 24; don't expect to change it.
- camerafixed - true keeps the camera locked; leave false for more dynamic shots.
- seed - reproducibility,
-1for random.
Output is a single STRING holding the video URL. Wire it to Video URL to Frames to extract frames, or to a video preview/save node.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/FloyoAI/ComfyUI-Seed-API
cd ComfyUI-Seed-API
pip install -r requirements.txt
Restart, set your BytePlus API key in config.ini or as BYTEPLUS_API_KEY, and you're generating. Manager users can search "ComfyUI Seed API Integration".
Where people get burned
The output is a URL, not a local file - you must run it through a video-saving or preview node, and the URL lives on BytePlus's servers with whatever retention they give you. If you get an empty string back, the error is in the console (the node swallows failures and returns blank), and with cloud APIs that usually means key, quota, or model-permission trouble. Also keep the aspect ratio of your source in mind: ratio defaults to adaptive precisely so the model can match your image, but if you force a 16:9 on a square image, expect cropping. And like all paid video, every render is a bill line - Lite is cheap, not free.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image | IMAGE | — | |
| resolution | COMBO | 720p | 3 options: 480p, 720p, 1080p |
| ratio | COMBO | adaptive | 7 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1 |
| duration | INT | 53–12 | — |
| framepersecondopt | INT | 2424–24 | — |
| seedopt | INT | -1-1–2147483647 | — |
| camerafixedopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |