Seedance 2.0 Pro — Pro Pack on RunComfy
runcomfy.com · Seedance 2.0 Pro · GitHub
ByteDance Seedance 2.0 Pro — multimodal cinematic video generator with native lip-synced audio — hosted on the RunComfy Model API.
When to pick this model (vs siblings)
Seedance 2.0 Pro's distinct strength is multi-modal cinematic short-form: combine character images + scene videos + reference audio into one coherent shot. Pick it when fidelity to a reference identity / scene matters and you want native lip-sync.
If the user said "Seedance" / "Seedance 2" / "ByteDance video" explicitly, route here regardless.
Prerequisites
- RunComfy CLI —
npm i -g @runcomfy/cli - RunComfy account —
runcomfy loginopens a browser device-code flow. - CI / containers — set
RUNCOMFY_TOKEN=<token>instead ofruncomfy login.
Endpoints + input schema
bytedance/seedance-v2/pro
How to invoke
Default (text only, 5s, 720p with audio):
Lip-synced ad with character reference (image-stable, text-evolves):
Multi-modal (image + video + audio refs):
The CLI submits, polls, fetches the result, downloads *.runcomfy.net/*.runcomfy.com URLs into --output-dir.
Prompting — what actually works
Image vs text division. This is the single most important rule. Stable identity (face, costume, brand mark, logo) → put in image_url. Evolving narrative (action, mood, lighting, camera) → put in prompt. Trying to verbally describe a face in detail wastes tokens and produces drift.
Camera + motion in plain language. "Medium close-up", "slow push-in", "handheld follow", "locked-off wide" all work as directives. Combine: "Medium close-up. Slow push-in over 3 seconds. Handheld, slight breathing motion."
Audio direction with generate_audio: true — say the tone: "warm friendly conversational", "calm instructional", "crisp newsroom delivery". For ambient: "gentle cafe chatter, distant traffic, no foreground music".
Reference media specs — videos must be 2–15s; audio must be ≤15MB and 2–15s. Out-of-range files reject. Match aspect ratio of refs to your output to avoid crops.
Anti-patterns:
- Mixing radically different aesthetic refs (watercolor + photoreal) → confuses.
- Conflicting style cues in prompt → simplify by removing contradictions.
- Trying to describe stable identity verbally → use
image_urlinstead. - Asking for >15s clips → 422; segment into multiple calls.
Where it shines
Sample prompts (verified to produce strong results)
Default playground example:
Multi-modal lip-sync (text + image):
Limitations
- Duration 4–15s — no longer clips on this endpoint.
- Resolution ceiling 720p on the playground variant.
- Reference media specs — videos / audio must be 2–15s; audio < 15MB.
- Lip-sync quality — depends on prompt clarity; not guaranteed perfect under all conditions.
- No
@-syntax for character binding — relies on image refs + prompt alignment.
Exit codes
Full reference: docs.runcomfy.com/cli/troubleshooting.
How it works
The skill invokes runcomfy run bytedance/seedance-v2/pro with a JSON body matching the schema. The CLI POSTs to https://model-api.runcomfy.net/v1/models/bytedance/seedance-v2/pro, polls the request, fetches the result, and downloads any .runcomfy.net/.runcomfy.com URL into --output-dir. Ctrl-C cancels the remote request before exit.
Security & Privacy
- Token storage:
runcomfy loginwrites the API token to~/.config/runcomfy/token.jsonwith mode 0600 (owner-only read/write). SetRUNCOMFY_TOKENenv var to bypass the file entirely in CI / containers. - Input boundary: the user prompt is passed as a JSON string to the CLI via
--input. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content. - Third-party content: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.
- Outbound endpoints: only
model-api.runcomfy.net(request submission) and*.runcomfy.net/*.runcomfy.com(download whitelist for generated outputs). No telemetry, no callbacks. - Generated-file size cap: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.

