Seedance 2.0 BytePlus Text to Video
Text to video with Seedance 2.0, minus the Comfy storefront
- video_url
- video
- task_id
- raw_json
Seedance 2.0 is ByteDance's flagship video model, and it has never been something you can download - no open weights, no local run, no VRAM requirement to satisfy. Your only door into it is the API. ComfyUI's official Partner Nodes hand you that API through a Comfy account and prepaid credits; this node is the other route, for when you already have a BytePlus / ModelArk API key and want Seedance sitting in your local graph like any other node. It's the core of this pack, the straightforward one: prompt in, video out.
Here's what actually happens when you run it. The node builds a JSON payload with your prompt and settings, POSTs it to {base_url}/contents/generations/tasks, and gets back a task_id. Then it polls the task endpoint every poll_seconds (default 9) until the status flips to succeeded - or it dies on failed, cancelled, or a timeout_seconds cap (default 15 minutes). Finally it downloads the finished mp4 and wraps it as a native ComfyUI VIDEO object. So this is a wait-and-fetch node, not a stream: the canvas blocks while ByteDance's cloud renders, and a 1080p job can genuinely sit there for a while.
The inputs that actually matter for a beginner:
- prompt - your one and only creative input, a multiline box. This is where Seedance lives or dies.
- model -
Seedance 2.0orSeedance 2.0 Fast. Fast is cheaper and quicker, but the pack hard-stops you at 1080p: it raises an error if you pick Fast + 1080p, because Fast only supports 480p and 720p. - resolution - 480p / 720p / 1080p. Default 720p is the sensible middle.
- ratio - 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or
adaptive. Default 16:9. - duration - 4 to 15 seconds.
- generate_audio - on by default. Seedance 2.0 makes sound, and the API will add an audio track unless you turn it off.
- seed - optional; set it for reproducible shots.
- watermark - off by default.
The four outputs are the plumbing. video_url is the hosted URL the API returned, video is the actual VIDEO object you wire into this pack's Save Video node (or anything else that eats VIDEO), task_id is useful for hunting the job in the BytePlus console, and raw_json dumps the whole API response - handy the first time something fails or when you want to know exactly what you paid for.
One wiring quirk: api_key is forceInput, so you can't type into it - you must connect the pack's Seedance 2.0 BytePlus API Key node (or any string source). If you leave it empty, the pack falls back to the BYTEPLUS_API_KEY env var or a config.ini.
Install
ComfyUI Manager → search ComfyUI-Seedance2-Direct-BytePlus, or:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/aisam1989/ComfyUI-Seedance2-Direct-BytePlus
Restart ComfyUI, search for Seedance 2.0 BytePlus. No model files to download and nothing heavy to install - the only real requirements are requests plus whatever ComfyUI already ships (torch, numpy, PIL). What you do need is a BytePlus key and a network path to ark.ap-southeast.bytepluses.com.
Gotchas worth knowing
- It's metered, and video is the expensive lane. The community's standing complaint about Seedance-in-ComfyUI is the price - a 1080p clip costs real money per call, and it adds up fast if you're iterating on prompts. This route doesn't change that math; it just changes who you pay.
- The API is moderated, not local. ByteDance filters prompts and inputs on their side, and you can't remove the filter by tweaking a checkpoint - it's not your model. Expect refusals for content the provider doesn't want to render.
- Secrets live in the graph. Don't export workflow JSON with a live key in it. Use
config.ini(gitignored) or the env var and keep the wire empty. - The node holds a video in memory. Each run downloads the clip into the ComfyUI process; if you're chaining many generations, the Save Video node is what moves them to disk.
Wire it the way the README shows - API Key → Text to Video → Save Video - and you've got a working Seedance pipeline with no Comfy account involved.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| prompt | STRING | — | |
| model | COMBO | Seedance 2.0 | 2 options: Seedance 2.0, Seedance 2.0 Fast |
| resolution | COMBO | 720p | 3 options: 480p, 720p, 1080p |
| ratio | COMBO | 16:9 | 7 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1 |
| duration | INT | 54–15 | — |
| generate_audio | BOOLEAN | true | — |
| seedopt | INT | 00–2147483647 | — |
| watermarkopt | BOOLEAN | false | — |
| poll_secondsopt | INT | 93–60 | — |
| timeout_secondsopt | INT | 90060–3600 | — |
| base_urlopt | STRING | https://ark.ap-southeast.bytepluses.com/api/v3 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |
| video | VIDEO | — |
| task_id | STRING | — |
| raw_json | STRING | — |