Nodes/豆包 Seedance 视频 (DMXAPI)/🎬豆包 Seedance 首帧生视频
ComfyUI Node

🎬豆包 Seedance 首帧生视频

Image-to-Video with Seedance

By YV919·Created 3 months ago·Updated 3 months ago· 1
🎬豆包 Seedance 首帧生视频
  • first_frame
  • 任务ID
  • 检索模型
◄custom_modeldoubao-seedance-2-0-260128►
◄prompt图中小狗对着镜头说"茄子",360度环绕运镜►
◄api_key►
◄base_urlhttps://www.dmxapi.cn►
◄ratioadaptive►
◄resolution480p►
◄duration5►
◄generate_audiotrue►
◄seed-1►
◄watermarkfalse►
◄image_url►

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 adaptive here. 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 into image_url that isn't there. Fix the path, or better, switch to the IMAGE socket with a Load Image node (the example workflow's example.png is 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 ratio on a differently-shaped image. Set adaptive.
  • 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.
CategoryDMXAPI/豆包视频模型

Inputs (12)

NameTypeDefaultDescription
custom_modelSTRINGdoubao-seedance-2-0-260128默认 doubao-seedance-2-0-260128;如需用别的模型名可改此处
promptSTRING图中小狗对着镜头说"茄子",360度环绕运镜—
api_keySTRING—
base_urlSTRINGhttps://www.dmxapi.cn—
ratioCOMBOadaptive7 options: adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, +1
resolutionCOMBO480p3 options: 480p, 720p, 1080p
durationINT54–15—
generate_audioBOOLEANtrue—
seedINT-1-1–4294967295—
watermarkBOOLEANfalse—
first_frameoptIMAGE首帧图片(IMAGE)。不接则用下面的首帧图片链接
image_urloptSTRING首帧图片 URL / 本地路径 / 素材ID / data URL;已接首帧图片时此项被忽略

Outputs (2)

NameTypeDescription
任务IDSTRING—
检索模型STRING—