Nodes/豆包 Seedance 视频 (DMXAPI)/🎬豆包 Seedance 获取
ComfyUI Node

🎬豆包 Seedance 获取

Seedance Task Fetching

By YV919·Created 3 months ago·Updated 3 months ago· 1
🎬豆包 Seedance 获取
    • 视频
    • 视频链接
    ◄task_id—►
    ◄get_model—►
    ◄api_key►
    ◄base_urlhttps://www.dmxapi.cn►
    ◄max_wait_seconds300►
    ◄poll_interval6►
    ◄filename_prefixdoubao/seedance►

    Every other node in this pack - 文生视频, 首帧, 首尾帧, 参考生成视频 - just submits a job and hands you a task ID. This is the node that turns that ID back into an actual MP4 on your disk. It's not glamorous, and that's fine: the fetch node is the half of the pipeline where videos go to die if you ignore it, and where almost everything that "doesn't work" actually goes wrong.

    Here's the mental model. The generation nodes don't generate anything locally - they POST your prompt and images to the DMXAPI endpoint (https://www.dmxapi.cn/v1/responses, configurable), which is a third-party reseller of ByteDance's closed Seedance API. The API answers almost immediately with a task_id (a string starting cgt-) and a "get" model name (seedance-2-0-get). The actual rendering happens somewhere in ByteDance's cloud, minutes later. That's the gap this node exists to bridge.

    How it works

    DoubaoSeedanceFetch takes those two outputs - task_id and get_model - and polls the same endpoint over and over, waiting for the video. When the API reports the render is done, the node downloads the MP4 with a retry-and-backoff loop (a freshly-generated CDN link will happily return 404 for a minute or two before it's ready), saves it into your ComfyUI output/doubao/ folder, and hands you a playable result.

    Wire it to any of the four generation nodes in this pack:

    🎬豆包 Seedance 文生视频 ── task_id ──▶ 🎬豆包 Seedance 获取
                          ── get_model ─▶
    

    You only need this one node for every generation type - that's why it's the fifth node in a pack with six functions.

    The inputs that matter

    • task_id / get_model - drag the two matching outputs from a generation node over. Never hand-type these; the whole point is the wire. If you leave get_model empty the node falls back to the default seedance-2-0-get, which works.
    • 密钥(api_key) - yes, again. The same sk-xxxxx DMXAPI token you put in the generation node goes here too. Both nodes need it; this one can't poll without it. Annoying, but the README is explicit: fill both.
    • 最大等待(秒) - default 300. If a long 1080p render is slow, this is where you bump it to 600. When you hit "等待超时", the fix is here, not a re-queue.
    • 轮询间隔(秒) - default 6. Leave it. Faster polling won't render faster, it just hammers the API.
    • 保存名前缀 - default doubao/seedance, i.e. output/doubao/seedance_00001_.mp4. Change it if you want per-project folders.

    Outputs

    • 视频 (VIDEO) - the finished clip, previewable right in the fetch node. Wire it onward for post-processing, or just watch it here.
    • 视频链接 (STRING) - the CDN URL, valid roughly 24 hours. Handy for one very specific trick: feed it back into the 参考生成视频 node's video_url_1 input to extend a video in a follow-up job.

    Installing it

    This is a ComfyUI Manager job: open Manager → search comfyui-doubao-seedance (or 豆包 Seedance) → install. Or, by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/YV919/comfyui
    

    Then fully quit and relaunch ComfyUI - a page refresh is not enough, node code loads at process start. The repo clones to a folder literally named comfyui, which is confusingly generic, but harmless. Dependencies are all things ComfyUI already ships (requests, Pillow, numpy, av - no extra install), but you do need a recent ComfyUI build since the pack uses the V3 comfy_api.latest node API. If the nodes don't appear, update ComfyUI first.

    Troubleshooting

    • 请填写 DMXAPI 的 api_key - one of the two nodes is missing the key. Fill both.
    • task_id 为空 - you haven't wired the generation node in. Wire task_id and get_model.
    • 第 N 次下载未就绪(HTTP 404),等待… - normal. The CDN hasn't synced yet; it retries automatically for ~2 minutes. Watch for the "已保存到" line.
    • 等待超时 - render outlasted max_wait_seconds. Crank it to 600 and rerun.
    • Console shows a task_id that doesn't start with cgt- - you may have grabbed an envelope ID instead of the real task ID. Compare against the raw response in the console and re-check.

    One honest caveat about this whole pack: DMXAPI is a reseller, not ByteDance, and it's not a name you'll find debated on Reddit - this is a small node-and-vendor corner of the ecosystem. That means the usual advice applies: don't share workflows containing your key, and if a key leaks, regenerate it in the DMXAPI dashboard. Videos cost per call, so test with a cheap 480p 5-second job before you spend real money on a long render.

    CategoryDMXAPI/豆包视频模型

    Inputs (7)

    NameTypeDefaultDescription
    task_idSTRING—
    get_modelSTRING—
    api_keySTRING—
    base_urlSTRINGhttps://www.dmxapi.cn—
    max_wait_secondsINT30010–1800—
    poll_intervalINT62–60—
    filename_prefixSTRINGdoubao/seedance—

    Outputs (2)

    NameTypeDescription
    视频VIDEO—
    视频链接STRING—