Protoface Seedance 2.0 · Text to Video
4K, references, and the best-looking invoice you'll ever dread
- video
- files
- run id
What it is, and the one thing to internalise
Seedance 2.0's flagship text-to-video operation, wrapped as a ComfyUI node. Prompt in, clip out at up to 4K with native synchronised audio, 4–15 seconds, no GPU involved.
The thing to internalise: ByteDance doesn't release Seedance. The Seedream and Seedance lines are API products, full stop, with the company's open releases reserved for components - PuLID, Depth Anything, Bernini, SDXL-Lightning. So there is no "run it locally and stop paying" path here, and anyone telling you otherwise is describing a different model. The pack itself is third-party: Protoface aggregates the API behind one key, independent of Comfy's own Partner Nodes and credits.
How it works
One shared implementation sits under every node in the pack; each model's controls are generated from the provider's public request schema. This node builds a request, uploads any reference media, submits an async job, polls it (two-second default interval, two-hour timeout), downloads the result and returns a native ComfyUI VIDEO. Your prompts and references go to a server you don't control - that's the mechanism, not a defect, and it's the trade you make for a model you were never allowed to download.
What you actually set
prompt: scene, action, camera movement, mood. Long-form description beats keyword soup with these models.
resolution - 480p, 720p, 1080p, 4K - is the single most consequential dropdown on the node. aspect_ratio: 16:9, 9:16, 4:3, 3:4, 1:1, 21:9. duration: 4–15 seconds, integer.
generate_audio defaults true. Native audio is genuinely the selling point of this family - the model writes sound that matches the action - so leave it on unless you're scoring externally.
reference_images, reference_videos, reference_audios: dynamic list inputs that accept native ComfyUI media nodes, asset ids or public URLs. This is the node's real flexibility. A character sheet plus a location photo plus a voice clip, connected in one graph, gives you a directed shot rather than a lucky sample. It also means members of the community's loudest complaint - that these API nodes lock you into metered everything - are describing a real capability, not a trivial one.
generation_id and request_scope: the first is the paid-job handle, the second is auto-assigned plumbing for headless clients. There is no seed field on the Seedance video nodes. generation_id is your only lever, and what it buys is resumability, not reproducibility - a fixed ID with identical inputs requeues the same run; change anything and it's a new request.
Outputs: video (list), files (all original downloads), run id (feeds Resume Run).
Install
ComfyUI 0.41.0+ and Python 3.10+.
cd ComfyUI
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git custom_nodes/protoface
python -m pip install -r custom_nodes/protoface/requirements.txt
Or Manager → search Protoface → install protoface-nodes → restart, reload browser. Pip with ComfyUI's interpreter. Then click Protoface in the lower-right and paste a key from your Protoface account; for headless, PROTOFACE_API_KEY or PROTOFACE_API_KEY_FILE. The dependencies are httpx, jsonschema, Pillow and PyAV - this pack installs in seconds and will never break your torch build.
The money, honestly
Output pricing at this tier is roughly 7 credits per second at 480p, 15 at 720p, 37 at 1080p and 78 at 4K, with a four-second minimum. Five seconds at 720p is ~75 credits; the same at 4K is ~390. If you attach a reference_videos clip, its input seconds are metered too, on top of output, capped at 15 seconds total.
This is the exact objection the subreddit raised when Seedance hit ComfyUI: great capability, real money, and an unhelpful tendency to make you choose between a cheap draft and a final you can ship. The pragmatic version of that argument is the one I'd run: draft at 480p, decide, then pay once at the resolution you'll deliver.
Where it breaks
- 4K as a first test. It's twenty-odd times the per-second cost of Mini's 480p. Composition doesn't improve with pixels.
- Bumping
generation_idto "retry". That buys a new job. Requeue unchanged or userun id. - Deleting
~/.cache/protoface-comfyui. You've thrown away the journal that lets an unresolved paid submission resume. - Expecting a refund on interrupt. Cancellation is best effort upstream.
- Shared instances. Interactive keys stay in server memory and stay out of exported workflows, but anyone who can queue on your server can spend them.
Should you use it?
For final shots from a prompt or a small pile of references, it's the best-looking output in the pack and the plumbing is genuinely native - native VIDEO out, list mapping, resume machinery. It's not a replacement for your local workflow; it's the one job you send outside it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the scene, action, camera movement, and mood for the video. | |
| resolution | COMBO | 720p | The output video resolution. |
| duration | INT | 54–15 | The duration of the generated video in seconds (4-15s). |
| aspect_ratio | COMBO | 16:9 | The aspect ratio of the generated video. |
| generate_audio | BOOLEAN | true | Whether to generate native audio synchronized with the output video. Defaults to true. |
| reference_audios | COMBO | Public URLs, data URIs, or asset ids. | |
| reference_images | COMBO | Public URLs, data URIs, or asset ids. | |
| reference_videos | COMBO | Public URLs, data URIs, or asset ids. | |
| generation_id | INT | 00–9007199254740991 | Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed. |
| request_scope | STRING | Automatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| files | PROTOFACE_FILE | — |
| run id | STRING | — |