🎬豆包 Seedance 首帧生视频
Image-to-Video with Seedance
- first_frame
- 任务ID
- 检索模型
Text-to-video is fun, but image-to-video is where you get your money's worth. One frame - a photo you took, a character render from your local ComfyUI, a frame you already love - and Seedance animates it: the dog says "茄子" and the camera orbits, exactly like the node's default prompt. This is the 首帧生视频 (first-frame-to-video) node from the YV919/comfyui pack, and it's the pack's closest thing to a character/consistency tool, because the model has to hold your image as frame one.
Like every node in this pack, it's an API wrapper: it calls ByteDance's Seedance 2.0 through the DMXAPI reseller endpoint. No weights, no VRAM, no local render - but your image and prompt leave the machine and each job is billed per call. If you're already okay with that trade (it's the only way to reach a closed model like this), this node is the smoothest way to do it from a ComfyUI canvas.
How it works
You give the node one image two ways, and it picks a winner. If you wire a 首帧图片 (first_frame, IMAGE) socket from a Load Image node, it converts that tensor to a base64 PNG data URL (taking frame 0 if you feed a batch) and submits it as the first_frame role in the API request. If you leave the socket unconnected but fill 首帧图片链接 (image_url) with a URL, local path, asset:// material ID, or data URL, it uses that instead. IMAGE wins when both are present.
Crucially, one of the two is required - give neither and the node refuses to run, telling you to use the 文生视频 node for pure text jobs. You also need the standard pack plumbing: the same api_key on this node and the fetch node, and both task_id/get_model outputs wired to 🎬豆包 Seedance 获取, which polls, downloads, and previews the result.
Inputs that matter
- 首帧图片 (IMAGE) - from Load Image. The recommended path; a local file never touches a third party.
- 首帧图片链接 (image_url) - URL / local path / asset:// ID / data URL. Local paths get read and base64-encoded by the node. Fine, but the IMAGE route is cleaner.
- 宽高比 - set
adaptivehere. The model picks the aspect ratio closest to your image, which avoids the stretched or cropped look you get when you force 16:9 on a portrait shot. - 分辨率 / 时长(秒) / 生成音频 / 种子 / 水印 - same as the pack's other nodes. 480p and 5s for your first test; cost scales with both.
Seedance's own first-frame constraints are worth knowing: the image should be jpeg/png/webp/bmp/tiff/gif, aspect ratio between 0.4 and 2.5, side length 300–6000px, and under 30 MB. You're rarely near those limits with a Load Image node, but a wild upscale can trip them.
Outputs
任务ID and 检索模型, wired into the fetch node - same as every generation node in the pack. No video here; the fetch node is the one that materializes the MP4 into your output/doubao/ folder.
Installing
Shared pack install - Manager → search comfyui-doubao-seedance (or 豆包 Seedance), or:
cd ComfyUI/custom_nodes
git clone https://github.com/YV919/comfyui
Restart ComfyUI completely (refresh won't load the new nodes; the code runs in-process). Dependencies are already in the ComfyUI env; you just need a recent ComfyUI for the V3 API. The pack's example workflow 豆包首帧生视频工作流.json is pre-wired for exactly this - import it, drop in your own image, and you're one key-fill away.
Common gotchas
首帧图片路径不存在- you typed a local path intoimage_urlthat isn't there. Fix the path, or better, switch to the IMAGE socket with a Load Image node (the example workflow'sexample.pngis a placeholder you must replace, or you'll hit "example.png not found").- "Both first-frame sources empty" error - you grabbed this node for a text-only prompt. Use 文生视频 instead.
请填写 DMXAPI 的 api_key- the key lives on both the generation node and the fetch node. Fill both.- Weird aspect or cropping - you forced a fixed
ratioon a differently-shaped image. Setadaptive. - Cost - this is a billed API call per render; the community's take on Seedance pricing is that it's real money, so iterate at 480p/5s before committing to 1080p.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| custom_model | STRING | doubao-seedance-2-0-260128 | 默认 doubao-seedance-2-0-260128;如需用别的模型名可改此处 |
| prompt | STRING | 图中小狗对着镜头说"茄子",360度环绕运镜 | — |
| api_key | STRING | — | |
| base_url | STRING | https://www.dmxapi.cn | — |
| ratio | COMBO | adaptive | 7 options: adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, +1 |
| resolution | COMBO | 480p | 3 options: 480p, 720p, 1080p |
| duration | INT | 54–15 | — |
| generate_audio | BOOLEAN | true | — |
| seed | INT | -1-1–4294967295 | — |
| watermark | BOOLEAN | false | — |
| first_frameopt | IMAGE | 首帧图片(IMAGE)。不接则用下面的首帧图片链接 | |
| image_urlopt | STRING | 首帧图片 URL / 本地路径 / 素材ID / data URL;已接首帧图片时此项被忽略 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 任务ID | STRING | — |
| 检索模型 | STRING | — |