BytePlus Seedance Reference to Video
The Seedance node that bills your BytePlus account, not Comfy's credit meter
- reference_images
- reference_videos
- reference_audios
- reference_assets
- VIDEO
So you want Seedance 2.5 output inside ComfyUI. You can't download it - ByteDance keeps the whole Seedance line API-only, and it's one of the closed video models the community measures the open ones against. The route most people know is Comfy's official Seedance Partner Node on prepaid credits. This node is the other door: it calls BytePlus ModelArk's Direct API with a key on your own BytePlus account - per-clip billing, no credit-meter lock-in, and reference, edit, and extend support, not just text-to-video.
The "Reference to Video" name undersells it. With nothing on the sockets it's plain text-to-video; add images or audio and it does reference generation; set task_type: edit or extend and it reworks or continues a clip. It covers the whole 2.x family - Seedance 2.5 up to 1080p and 30 seconds with audio, plus 2.0, 2.0 Fast, and 2.0 Mini (plain 2.0 reaches 4k).
How it works (the honest part)
Nothing runs locally. The node packages your prompt and references into a task, POSTs it to the ModelArk generation endpoint, polls until it finishes, and downloads the MP4 or MOV back into the graph as a VIDEO output for the core Save Video node. No model files, no VRAM - you're waiting on BytePlus's servers, not your GPU.
Queueing creates a paid task, and the node never auto-retries task creation - a duplicate request means duplicate charges. If polling or the download dies, the error hands you a task ID; paste it into resume_task_id to continue that job without paying twice. Stopping ComfyUI won't cancel the remote task. And seed does nothing at BytePlus - it only busts ComfyUI's cache, so you can't reproduce a clip by fixing one.
The inputs that matter
You'll actually set a handful:
- model - Seedance 2.5 is the default and the only one with explicit edit/extend task types and 30-second clips; the 2.0 series is for when shorter, lower-res output is enough.
- prompt - multiline text; refer to connected media as
@Image 1,@Video 1,@Audio 1. - task_type -
auto,reference,edit, orextend. With no media connected,referencequietly behaves as text-to-video. Edit and extend need a reference video plus a clear operation prompt; edit keeps its ratio and duration. - resolution / ratio / duration - duration defaults to 5 s;
-1lets the model decide (4–30 s for 2.5, 4–15 for the 2.0 series). - generate_audio - on by default; leave it on for 2.5, which returns audio with the visuals.
The reference sockets autogrow. Images and audio are normal IMAGE/AUDIO types (up to 30 images and 10 audio clips on 2.5). Videos are the trap: the API takes inline image and audio data but not inline video bytes, so video sockets are String inputs expecting a public HTTPS URL or an asset:// URI. A normal Load Video output can't connect - upload the clip somewhere you control first. The 2.0 models cap at 9 images, 3 videos, 3 audio.
Advanced corners: auto_downscale (on) shrinks local reference images over 6000 px before upload, auto_upscale does the reverse under 300 px, and endpoint_id targets a specific ModelArk inference endpoint - it's saved in the workflow, so never paste an ark-... key there.
Install
Paid remote service, tiny install: no model downloads, one Python dependency, and it needs ComfyUI 0.34+ and Python 3.10+. Easiest is Manager → search BytePlus Seedance Direct API, then restart. If an older manual copy named byteplus_seedance25 is installed, disable it first - both copies register the same node IDs twice. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/raucvr/byteplus-seedance-direct.git
cd byteplus-seedance-direct
python -m pip install -r requirements.txt
Then activate the Seedance models you want in the BytePlus ModelArk AP region and create an API key there.
The API key (where people fluff it)
On macOS or Windows ComfyUI Desktop, open Settings → BytePlus → Seedance → ModelArk API Key (or Configure API Key inside the node) and paste the key. It goes into the macOS Keychain or Windows Credential Manager, never into your workflow JSON. On Linux/WSL there's no plaintext fallback - set ARK_API_KEY in the environment that starts ComfyUI and it overrides the keychain everywhere. Either way: no key in workflows, screenshots, or GitHub issues.
Where people get burned
AccessDeniedis usually not the key. Missing model activation, wrong project or region, IP restrictions, and IAM permissions all raise it.endpoint_idonly helps a key restricted to one endpoint - which must live in the same AP region and project, since this extension only calls the ModelArk AP base URL.- macOS keychain quirks. Save/Delete pops the native unlock dialog; if calls still fail while Keychain reports unlocked, trigger the explicit Unlock action once to clear the stale state.
If per-clip billing or sending your prompts and references to ByteDance's servers gives you pause, that's the genuine cost of a model you were never allowed to run locally. If you already hold a ModelArk key, this is the cleanest way to drop 2.5-quality clips into a normal ComfyUI pipeline.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Seedance 2.5 | 2.5 supports explicit task types and up to 30 seconds; 2.0 supports up to 4k; Fast and Mini support 480p/720p. |
| prompt | STRING | References are optional. With none connected, this generates from text. Refer to connected inputs as @Image 1, @Video 1, and @Audio 1. | |
| resolution | COMBO | 720p | 2.5: 480p/720p/1080p; 2.0: 480p/720p/1080p/4k; Fast and Mini: 480p/720p. |
| ratio | COMBO | adaptive | 7 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1 |
| duration | INT | 5-1–30 | Use -1 to let the model determine the output duration. Otherwise use 4-30 seconds for 2.5 or 4-15 seconds for the 2.0 series. |
| generate_audio | BOOLEAN | true | — |
| task_type | COMBO | reference | Seedance 2.5 only: auto lets the model infer the operation; reference creates a new video; edit changes a reference video and keeps its ratio and duration; extend returns only a new continuation segment. edit and extend need a clear operation prompt. For 2.0, Fast, and Mini, select auto and describe the operation in the prompt. With no reference media, reference automatically behaves as auto text-to-video. |
| output_format | COMBO | mp4 | Seedance 2.5 supports mp4/mov; the 2.0 series supports mp4. |
| auto_downscale | BOOLEAN | true | Downscale local reference images whose width or height exceeds 6000 pixels. |
| auto_upscale | BOOLEAN | false | Upscale local reference images whose width or height is below 300 pixels. |
| seed | INT | 00–2147483647 | Changes workflow caching so the node can run again. It is not sent to BytePlus. |
| watermark | BOOLEAN | false | — |
| resume_task_id | STRING | Reuse a task ID shown in an earlier error. When set, no new paid task is created. | |
| reference_imagesopt | COMFY_AUTOGROW_V3 | — | |
| reference_videosopt | COMFY_AUTOGROW_V3 | — | |
| reference_audiosopt | COMFY_AUTOGROW_V3 | — | |
| reference_assetsopt | COMFY_AUTOGROW_V3 | — | |
| endpoint_idopt | STRING | Optional ModelArk inference Endpoint ID. Leave blank to use the selected model's default ID. If set, it replaces the request's model value. The endpoint must match the selected Seedance model and the API key's AP region/project. This value is saved in the workflow; do not paste an API key here. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |