seedance-v2

Tạo video ngắn dạng điện ảnh với ByteDance Seedance 2.0 Pro trên RunComfy. Mô tả các điểm mạnh của Seedance 2.0 Pro (tham chiếu đa phương thức — lên đến 9 ảnh, 3 video, 3 âm thanh — đồng bộ âm thanh trong video với khớp môi tự nhiên, tinh chỉnh chuyển động điện ảnh), khung thời lượng 4–15 giây, và

npx skills add https://github.com/runcomfy-com/skills --skill seedance-v2

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.

npx skills add agentspace-so/runcomfy-skills --skill seedance-v2 -g

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.

You wantUse
Lip-synced spokesperson / dialogue adSeedance 2.0 Pro
Multi-modal references (image + video + audio)Seedance 2.0 Pro
Brand-consistent multi-language narrativeSeedance 2.0 Pro
Currently-#1 blind-vote video qualityHappyHorse 1.0
Audio-driven lip-sync from your own trackWan 2.7 (audio_url)
Motion editing on existing footageKling Video O1
Ultra-fast iterationLTX 2

If the user said "Seedance" / "Seedance 2" / "ByteDance video" explicitly, route here regardless.

Prerequisites

  1. RunComfy CLInpm i -g @runcomfy/cli
  2. RunComfy accountruncomfy login opens a browser device-code flow.
  3. CI / containers — set RUNCOMFY_TOKEN=<token> instead of runcomfy login.

Endpoints + input schema

bytedance/seedance-v2/pro

FieldTypeRequiredDefaultNotes
promptstringyesCN ≤ 500 chars OR EN ≤ 1000 words.
image_urlarrayno[]0–9 references (JPEG/PNG/WebP/BMP/TIFF/GIF).
video_urlarrayno[]0–3 clips (MP4/MOV), 2–15s each.
audio_urlarrayno[]0–3 audio refs (WAV/MP3), 2–15s, < 15MB each.
aspect_ratioenumnoadaptiveadaptive, 16:9, 9:16, 4:3, 3:4, 1:1, 21:9.
durationintno54–15 (whole seconds).
resolutionenumno720p480p or 720p.
generate_audioboolnotrueIn-pass synchronized speech / SFX / music.
seedintnoReproducibility.

How to invoke

Default (text only, 5s, 720p with audio):

runcomfy run bytedance/seedance-v2/pro \
  --input '{"prompt": "<user prompt>"}' \
  --output-dir <absolute/path>

Lip-synced ad with character reference (image-stable, text-evolves):

runcomfy run bytedance/seedance-v2/pro \
  --input '{
    "prompt": "Medium close-up. The woman explains today'\''s special in a warm friendly tone, slow push-in, soft window light, gentle cafe ambience.",
    "image_url": ["https://.../barista-headshot.jpg"],
    "duration": 8,
    "aspect_ratio": "9:16"
  }' \
  --output-dir <absolute/path>

Multi-modal (image + video + audio refs):

runcomfy run bytedance/seedance-v2/pro \
  --input '{
    "prompt": "Subject from image 1 walks through the café from video 1, voice tone matches audio 1.",
    "image_url": ["https://.../subject.jpg"],
    "video_url": ["https://.../cafe-locked-shot.mp4"],
    "audio_url": ["https://.../voice-ref.mp3"]
  }' \
  --output-dir <absolute/path>

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_url instead.
  • Asking for >15s clips → 422; segment into multiple calls.

Where it shines

Use caseWhy Seedance 2.0 Pro
Spokesperson / dialogue adsNative in-pass lip-sync, no separate TTS step
Brand-consistent multi-language narrativesImage refs hold identity; text drives translation
Cinematic short-form film previsCamera-shot grammar + multi-modal refs
Ad creatives with reference music / VO toneAudio refs guide voice / mood without locking lip-sync
Reproducible variant testingSeed control + fixed schema

Sample prompts (verified to produce strong results)

Default playground example:

Golden hour on a quiet cafe terrace: a barista wipes the counter, then
looks up and explains today's special in a friendly tone, natural
lip-sync. Medium close-up, slow push-in; warm side light, soft bokeh
through glass, gentle cafe ambience and subtle film grain.

Multi-modal lip-sync (text + image):

Same person as image 1 in a softly-lit recording booth, leaning into
the mic, says: "We just shipped the biggest update of the year."
Calm conversational tone. Medium close-up, locked tripod, shallow DOF,
warm key light from camera-left.

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

codemeaning
0success
64bad CLI args
65bad input JSON / schema mismatch
69upstream 5xx
75retryable: timeout / 429
77not signed in or token rejected

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 login writes the API token to ~/.config/runcomfy/token.json with mode 0600 (owner-only read/write). Set RUNCOMFY_TOKEN env 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.

Thêm skills từ runcomfy-com

video-inpainting
runcomfy-com
Region edits across video frames on RunComfy via the `runcomfy` CLI — remove an object that appears across many frames, clean up wires or watermarks, replace a region with matching motion. Routes across Wan 2-7 edit-video (default, prompt-driven region edits with spatial language), Lucy Edit Restyle (identity-stable region-aware restyle), and Seedream 4-0 edit-sequential (when treating the clip as a frame stack). Picks the right route based on whether the change is prose-driven,...
videocreativemedia
runcomfy-cli
runcomfy-com
Run any model on RunComfy from the command line. The `runcomfy` CLI is one binary, one auth, hundreds of model endpoints — image generation, image edit, video generation, image-to-video, lip-sync, face swap, video edit, inpainting, outpainting, extend, ControlNet, relight, upscale, LoRA training and more. Submit a request, poll for status, download the output. This skill teaches the agent how to install, authenticate, discover model schemas, invoke models, stream / poll / no-wait, script in...
creativemediaapi
image-to-video
runcomfy-com
Làm sống động bất kỳ hình ảnh tĩnh nào trên RunComfy — kỹ năng này là một bộ định tuyến thông minh, khớp ý định của người dùng với mô hình i2v phù hợp trong danh mục RunComfy. Chọn HappyHorse 1.0 I2V (Arena #1, âm thanh gốc, bả
creativevideomedia
flux-2-klein
runcomfy-com
Tạo hình ảnh với Flux 2 Klein (biến thể nhanh được chưng cất của Flux 2 từ Black Forest Labs) trên RunComfy — tích hợp sẵn các mẫu prompt đã được ghi chép của mô hình để kỹ năng đạt đầu ra sắc nét hơn so với prompt thông thường trên cùng mô hình. Ghi lại các điểm mạnh của Flux 2 Klein (độ trễ dưới giây, tạo kiểu thương hiệu đa tham chiếu, prompt ưu tiên chủ ngữ khai báo), chiến lược số bước (4–8 để lặp nhanh, ~25 để hoàn thiện), sự đánh đổi giữa biến thể 9B và 4B, và thời điểm chuyển hướng sang Flux 2 Pro /...
creativeimageresearch
ai-avatar-video
runcomfy-com
We need to translate the given text from English to Vietnamese, preserving the specified name "ai-avatar-video" and other technical terms. The instruction says to translate only the text inside <text>, and not include the name unless it appears in the source text. The name "ai-avatar-video" does not appear in the source text, so we don't include it. We must preserve product names, protocol names, URLs, numbers, technical terms. So "RunComfy", "runcomfy CLI", "ByteDance OmniHuman", "Wan-AI Wan 2-7", "HappyHorse 1.0", "Seedance v2 Pro", "UGC", etc. should remain as is. Also "audio-driven", "full-body avatar", "mouth sync", "portrait", "t2v", "i2v", "in-pass audio", "multi-modal cinematic", "reference audio", "reference subject" are technical terms; we should keep them in English or find appropriate Vietnamese translations? The instruction says "preserve technical
videocreativemedia
nano-banana-edit
runcomfy-com
We need to translate the given text from English to Vietnamese, preserving the name "nano-banana-edit" and other technical terms. The instruction says to translate only the text inside <text>, and not include the name unless it appears in the source text. The name "nano-banana-edit" appears in the source? Actually the source has "nano-banana-edit" in the first line? Wait, the source text starts with "Edit images with Google Nano Banana 2 ..." and later mentions "Nano Banana Edit's strengths", "Nano Banana 2 t2i", "nano banana edit", etc. The name to preserve is "nano-banana-edit" (with hyphens). In the source, it appears as "Nano Banana Edit" (without hyphens) and "nano banana edit". But the instruction says "Name to preserve: nano-banana-edit". So we should keep that exact string if it appears. However, in the source text, it's written as "Nano Banana Edit" (capital
creativeimageapi
wan-2-7
runcomfy-com
We need to translate the given text from English to Vietnamese, preserving the name "wan-2-7" and other technical terms. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "wan-2-7" appears in the source text, so we keep it as is. Also preserve "RunComfy", "Wan-AI", "HappyHorse 1.0", "Seedance 2.0", "Kling", "LTX 2", "runcomfy run wan-ai/wan-2-7/text-to-video", "CLI", "audio_url", etc. Translate the rest naturally. The text is a description of an agent skill. We need to output only the translation, no extra labels. Let's translate: "Generate text-to-video with Wan 2.7 (Wan-AI's flagship motion model) on RunComfy. Documents Wan 2.7's strengths (multi-reference conditioning, audio-driven lip-sync
creativevideomedia
lipsync
runcomfy-com
We need to translate the given text from English to Vietnamese, preserving the specified name "lipsync" and other technical terms like RunComfy, runcomfy CLI, ByteDance OmniHuman, Sync Labs sync v2 / Pro, Kling lipsync, Creatify lipsync. Also preserve URLs, numbers, etc. The instruction says to translate only the text inside <text>, and not include the name unless it appears in the source text. The name "lipsync" appears in the source text as "Lip-sync" at the beginning, so we should translate that as "Khớp môi" or similar? But the instruction says "Preserve product names, protocol names, URLs, numbers, and technical terms." "lipsync" is a technical term, but it's also the name to preserve. The instruction says "Name to preserve: lipsync" and "Do not include the name unless it appears in the source text." It appears as "Lip-sync" (capitalized, hyphenated). Should we preserve the exact form "Lip
creativevideomedia