Nodes/Customizable API Call Nodes by BillBum/Doubao Seedance2 VideoGen API Node
ComfyUI Node

Doubao Seedance2 VideoGen API Node

Seedance 2.0 video from inside ComfyUI — a cloud task, wrapped nicely

By AhBumm·Created 2 years ago·Updated 3 months ago· 11
Doubao Seedance2 VideoGen API Node
  • first_frame
  • last_frame
  • reference_images
  • video
  • last_frame_image
  • response_str
modeldoubao-seedance-2-0-fast-260128
prompt
seed-1
api_urlhttps://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks
api_keyInput_your_API_key_here...
resolution480p
ratioadaptive
duration5
generate_audiotrue
watermarkfalse
web_searchfalse
return_last_framefalse
reference_video_url
reference_audio_url

Seedance 2.0 is ByteDance's flagship video model, and like every ByteDance flagship it is API-only - no weights, ever. This node is the bridge that makes it usable from ComfyUI: you give it a prompt (and optionally first/last frames, reference images, or reference video/audio), it talks to the Volcengine ARK API, waits for the generation, downloads the result, and hands you an actual VIDEO tensor ready for preview or save. It's the most "real product" node in the pack - a full async task pipeline, not just a one-shot HTTP call.

How it works

Video generation over ARK is task-based, so the node runs a real pipeline:

  1. It POSTs a task to https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks with your prompt and settings. Images you connect (first frame, last frame, reference images) get downscaled, encoded to base64, and attached with the right role markers; reference video and audio URLs are passed through (up to 3 each, comma-separated).
  2. It polls the task status every second, up to 30 minutes, with retries and even a "rescue" path if polling glitches while the task actually completed server-side.
  3. When it succeeds, it downloads the MP4 to a temp file and returns it as a VIDEO tensor via VideoFromFile. If return_last_frame is on, it also downloads the last-frame image as an IMAGE tensor.

The text of your prompt lives alongside the reference media in one content array - that's how you steer it.

The inputs that matter

  • model - defaults to doubao-seedance-2-0-fast-260128. Keep the one your ARK account is provisioned for.
  • prompt - the creative direction.
  • resolution - 480p or 720p. There's no 1080p option; pick accordingly.
  • ratio - 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or adaptive.
  • duration - up to 15 seconds; -1 means auto, and anything under 4 gets clamped up to 4.
  • generate_audio - true/false; Seedance 2.0 can produce audio along with video.
  • watermark, web_search, return_last_frame - toggles, all true/false combos. web_search adds a web-search tool (for grounding the generation), return_last_frame gives you a still.
  • seed - -1 = let the API pick. Any other value is sent as a real seed.
  • Optional media: first_frame, last_frame, reference_images (batch, max 9), reference_video_url, reference_audio_url.

Outputs: video (VIDEO), last_frame_image (IMAGE, when requested), and response_str (STRING - the raw ARK response JSON, which is where you go when something goes wrong).

Installing it

Part of AhBumm/ComfyUI_BillBum_APIset_Nodes. ComfyUI Manager → search "billbum" → install "Customizable API Call Nodes by BillBum", or:

cd ComfyUI/custom_nodes
git clone https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes.git
cd ComfyUI_BillBum_APIset_Nodes
pip install -r requirements.txt

Restart ComfyUI. Dependencies are light; the real "dependency" is a Volcengine/ARK account with Seedance 2.0 access and API credits - this is a paid, per-second cloud service.

Common issues

  • It takes minutes, not seconds. A 5-second clip can mean a long poll. The node handles it (that 30-minute budget is generous), but don't queue 50 jobs and expect speed. ComfyUI will just sit on the node while it waits.
  • Text+audio-only is unsupported. If you send reference audio with no image or video reference, the node prints a warning and drops the audio - Seedance 2.0 won't do pure audio-conditioned generation that way.
  • Resolution is capped. 480p/720p only. If you need 1080p output, this node (and the current ARK task API) won't get you there.
  • The response_str output is your debugging friend. When a run fails, the node returns (None, None, response_str) instead of raising - the raw task response contains the status and error text. Read it before blaming the node.

Where this fits: the KB's ByteDance panel nails the context - Seedance is a product, not a model you'll ever run locally. If you want flagship ByteDance video quality and you're willing to pay per second, this node is the cleanest way to get it into a ComfyUI graph. If you want free and local, this is explicitly not that - that's Wan 2.2 territory.

CategoryBillBum/API Nodes

Inputs (17)

NameTypeDefaultDescription
modelSTRINGdoubao-seedance-2-0-fast-260128
promptSTRING
seedINT-1-1–4294967295
api_urlSTRINGhttps://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks
api_keySTRINGInput_your_API_key_here...
resolutionCOMBO480p2 options: 480p, 720p
ratioCOMBOadaptive7 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1
durationINT5-1–15
generate_audioCOMBOtrue2 options: true, false
watermarkCOMBOfalse2 options: true, false
web_searchCOMBOfalse2 options: true, false
return_last_frameCOMBOfalse2 options: true, false
first_frameoptIMAGE
last_frameoptIMAGE
reference_imagesoptIMAGE
reference_video_urloptSTRING
reference_audio_urloptSTRING

Outputs (3)

NameTypeDescription
videoVIDEO
last_frame_imageIMAGE
response_strSTRING