$npx -y skills add prime-skills/runcomfy-agent-skills --skill seedance-v2Generate cinematic short-form video with ByteDance Seedance 2.0 Pro on RunComfy. Documents Seedance 2.0 Pro's strengths (multi-modal references — up to 9 images, 3 videos, 3 audio — synchronized in-pass audio with natural lip-sync, cinematic motion refinement), the 4–15s duration
| 1 | # Seedance 2.0 Pro — Pro Pack on RunComfy |
| 2 | |
| 3 | [runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=seedance-v2) · [Seedance 2.0 Pro](https://www.runcomfy.com/models/bytedance/seedance-v2/pro?utm_source=skills.sh&utm_medium=skill&utm_campaign=seedance-v2) · [GitHub](https://github.com/agentspace-so/runcomfy-skills/tree/main/seedance-v2) |
| 4 | |
| 5 | ByteDance **Seedance 2.0 Pro** — multimodal cinematic video generator with native lip-synced audio — hosted on the **RunComfy Model API**. |
| 6 | |
| 7 | ```bash |
| 8 | npx skills add agentspace-so/runcomfy-skills --skill seedance-v2 -g |
| 9 | ``` |
| 10 | |
| 11 | ## When to pick this model (vs siblings) |
| 12 | |
| 13 | 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**. |
| 14 | |
| 15 | | You want | Use | |
| 16 | |---|---| |
| 17 | | Lip-synced spokesperson / dialogue ad | **Seedance 2.0 Pro** | |
| 18 | | Multi-modal references (image + video + audio) | **Seedance 2.0 Pro** | |
| 19 | | Brand-consistent multi-language narrative | **Seedance 2.0 Pro** | |
| 20 | | Currently-#1 blind-vote video quality | HappyHorse 1.0 | |
| 21 | | Audio-driven lip-sync from your own track | Wan 2.7 (`audio_url`) | |
| 22 | | Motion editing on existing footage | Kling Video O1 | |
| 23 | | Ultra-fast iteration | LTX 2 | |
| 24 | |
| 25 | If the user said "Seedance" / "Seedance 2" / "ByteDance video" explicitly, route here regardless. |
| 26 | |
| 27 | ## Prerequisites |
| 28 | |
| 29 | 1. **RunComfy CLI** — `npm i -g @runcomfy/cli` |
| 30 | 2. **RunComfy account** — `runcomfy login` opens a browser device-code flow. |
| 31 | 3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>` instead of `runcomfy login`. |
| 32 | |
| 33 | ## Endpoints + input schema |
| 34 | |
| 35 | ### `bytedance/seedance-v2/pro` |
| 36 | |
| 37 | | Field | Type | Required | Default | Notes | |
| 38 | |---|---|---|---|---| |
| 39 | | `prompt` | string | yes | — | CN ≤ 500 chars OR EN ≤ 1000 words. | |
| 40 | | `image_url` | array | no | `[]` | 0–9 references (JPEG/PNG/WebP/BMP/TIFF/GIF). | |
| 41 | | `video_url` | array | no | `[]` | 0–3 clips (MP4/MOV), 2–15s each. | |
| 42 | | `audio_url` | array | no | `[]` | 0–3 audio refs (WAV/MP3), 2–15s, < 15MB each. | |
| 43 | | `aspect_ratio` | enum | no | `adaptive` | `adaptive`, `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9`. | |
| 44 | | `duration` | int | no | 5 | 4–15 (whole seconds). | |
| 45 | | `resolution` | enum | no | `720p` | `480p` or `720p`. | |
| 46 | | `generate_audio` | bool | no | true | In-pass synchronized speech / SFX / music. | |
| 47 | | `seed` | int | no | — | Reproducibility. | |
| 48 | |
| 49 | ## How to invoke |
| 50 | |
| 51 | **Default (text only, 5s, 720p with audio):** |
| 52 | |
| 53 | ```bash |
| 54 | runcomfy run bytedance/seedance-v2/pro \ |
| 55 | --input '{"prompt": "<user prompt>"}' \ |
| 56 | --output-dir <absolute/path> |
| 57 | ``` |
| 58 | |
| 59 | **Lip-synced ad with character reference (image-stable, text-evolves):** |
| 60 | |
| 61 | ```bash |
| 62 | runcomfy run bytedance/seedance-v2/pro \ |
| 63 | --input '{ |
| 64 | "prompt": "Medium close-up. The woman explains today'\''s special in a warm friendly tone, slow push-in, soft window light, gentle cafe ambience.", |
| 65 | "image_url": ["https://.../barista-headshot.jpg"], |
| 66 | "duration": 8, |
| 67 | "aspect_ratio": "9:16" |
| 68 | }' \ |
| 69 | --output-dir <absolute/path> |
| 70 | ``` |
| 71 | |
| 72 | **Multi-modal (image + video + audio refs):** |
| 73 | |
| 74 | ```bash |
| 75 | runcomfy run bytedance/seedance-v2/pro \ |
| 76 | --input '{ |
| 77 | "prompt": "Subject from image 1 walks through the café from video 1, voice tone matches audio 1.", |
| 78 | "image_url": ["https://.../subject.jpg"], |
| 79 | "video_url": ["https://.../cafe-locked-shot.mp4"], |
| 80 | "audio_url": ["https://.../voice-ref.mp3"] |
| 81 | }' \ |
| 82 | --output-dir <absolute/path> |
| 83 | ``` |
| 84 | |
| 85 | The CLI submits, polls, fetches the result, downloads `*.runcomfy.net`/`*.runcomfy.com` URLs into `--output-dir`. |
| 86 | |
| 87 | ## Prompting — what actually works |
| 88 | |
| 89 | **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. |
| 90 | |
| 91 | **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."` |
| 92 | |
| 93 | **Audio direction with `generate_audio: true`** — say the tone: `"warm friendly conversational"`, `"calm |