🎬豆包 Seedance 首尾帧
First+Last Frame Video
- first_frame
- last_frame
- 任务ID
- 检索模型
Some shots are best described by their endpoints. A product rotating from one angle to another, a scene morphing from day to night, a character that must start here and end there - those are first+last-frame jobs, and this is the node that does them: 🎬豆包 Seedance 首尾帧. You give Seedance 2.0 a start image and an end image, and it invents a smooth, natural transition between them.
It's the same API-wrapper shape as the rest of this pack - closed ByteDance model reached through the DMXAPI reseller, no local rendering, billed per call - so all the standing caveats apply: your two frames and your prompt leave the machine, and the cost is per job. What's special here is the mechanism: two image roles (first_frame and last_frame) in one request, with the model generating the bridge.
How it works
The node needs both frames - there's no "first frame only" fallback in this node; that's the separate 首帧生视频 node's job. Each frame has the same two-way source as that node: a 首帧图片 (first_frame) IMAGE socket or a 首帧图片链接 (first_frame_url) text field, and likewise 尾帧图片 (last_frame) / 尾帧图片链接 (last_frame_url). IMAGE wins over URL when both are present, and if either end is missing entirely the node refuses with a clear "首尾帧生视频需要首帧/尾帧" error.
Under the hood it converts both frames to base64 PNG data URLs (or passes your URL through), builds a content array of [prompt, first_frame image, last_frame image], and POSTs to {base_url}/v1/responses. Out comes the usual task_id plus seedance-2-0-get, which you wire into 🎬豆包 Seedance 获取 to poll, download, and preview the finished clip.
加载图像 ──IMAGE──▶ 🎬豆包 Seedance 首尾帧 ── task_id ──▶ 🎬豆包 Seedance 获取
加载图像 ──IMAGE──▶ ── get_model ──▶
Inputs that matter
- 首帧图片 / 尾帧图片 (IMAGE) - two Load Image nodes, one per socket. The pack's
豆包首尾帧生视频工作流.jsonexample is exactly this wiring. - 首帧图片链接 / 尾帧图片链接 - the text alternative (URL, local path, asset:// ID). IMAGE wins; use these when your frames live online.
- 宽高比 -
adaptiveis the right default here; the README notes it keys off the first frame's proportions. - 提示词 - describe the transition ("镜头从首帧画面平滑过渡到尾帧画面") or make it purposeful: motion, camera moves, subject behavior between the two states.
- 分辨率 / 时长(秒) / 生成音频 / 种子 / 水印 - the pack's shared set. First test at 480p and 5 seconds; that's the cheap way to see if the interpolation is believable before spending on a long 1080p pass.
Outputs
任务ID and 检索模型 - the standard two outputs, both into the fetch node. That's the entire return; the fetch node turns them into the MP4 that lands in output/doubao/.
Installing
Same as the rest of the pack - Manager, search comfyui-doubao-seedance (or 豆包 Seedance):
cd ComfyUI/custom_nodes
git clone https://github.com/YV919/comfyui
Then fully restart ComfyUI - node code loads at startup, a browser refresh won't do it. No extra pip packages (the pack only uses what ComfyUI ships) and no model downloads - there's nothing to download, the model lives in the cloud. A current ComfyUI build is required for the V3 node API this pack uses.
Common gotchas
- "首尾帧生视频需要首帧/尾帧" - one of the two frames didn't make it in. Every end needs either a connected IMAGE or a filled URL field.
- "首帧图片路径不存在" - a local path in the URL field that doesn't resolve. Check it, or wire IMAGE sockets instead. And remember the example workflows' Load Image nodes ship with a placeholder
example.png- replace it before running. 请填写 DMXAPI 的 api_key- both this node and the fetch node need the samesk-xxxxxkey.- Sudden jumps instead of a smooth bridge - Seedance is good at this, but it's still a generation, not a morph. Seed (固定值) can help you get back to a pass you liked;
-1randomizes every run. - Cost reality check - the community's reaction to Seedance-in-ComfyUI pricing was blunt ("extremely expensive"). Two-image interpolation is still one billed job, so validate the transition at 480p before you commit to 1080p.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| custom_model | STRING | doubao-seedance-2-0-260128 | 默认 doubao-seedance-2-0-260128;如需用别的模型名可改此处 |
| prompt | STRING | 镜头从首帧画面平滑过渡到尾帧画面,自然流畅的运镜 | — |
| 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)。不接则用首帧图片链接 | |
| first_frame_urlopt | STRING | 首帧图片 URL / 本地路径 / 素材ID;已接首帧图片时忽略 | |
| last_frameopt | IMAGE | 尾帧图片(IMAGE)。不接则用尾帧图片链接 | |
| last_frame_urlopt | STRING | 尾帧图片 URL / 本地路径 / 素材ID;已接尾帧图片时忽略 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 任务ID | STRING | — |
| 检索模型 | STRING | — |