Compose Seedance 2.5 video generation prompts from a VideoProjectSpec and compile them into a generation-request with this repo's compiler. Use for ByteDance Seedance 2.5 text-to-video, image-to-video, video-extension, and video-edit jobs: a 30-second-per-generation audio-video joint generation model that supports precise reference control, white-model control, green-screen editing, professional camera movement and performance blocking.
Installs into .claude/skills of the current project.
Are you the author of Seedance 2.5?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/xxjrq-seedance-2-5)
---
name: seedance-2.5
description: >
Compose Seedance 2.5 video generation prompts from a VideoProjectSpec and
compile them into a generation-request with this repo's compiler. Use for
ByteDance Seedance 2.5 text-to-video, image-to-video, video-extension, and
video-edit jobs: a 30-second-per-generation audio-video joint generation
model that supports precise reference control, white-model control,
green-screen editing, professional camera movement and performance blocking.
---
# Seedance 2.5 — Video Prompt Skill
Turn a video brief into a validated Seedance 2.5 generation request.
## When to use
Use this skill when the deliverable targets **ByteDance Seedance 2.5** and the
job is one of:
- **text-to-video** — a new scene from a written brief only;
- **image-to-video** — one or more stills anchor appearance and composition;
- **video-extension** — continue an existing clip (≤ 30 s per generation,
extend at most twice);
- **video-edit** — edit an existing clip, including audio editing requests.
Do **not** use it for other models (MiniMax H3 has its own skill), for pure
image generation, or for content with unlicensed/movie/TV/brand assets.
## How to collect requirements
Ask for or extract, in this order:
1. **Mode** — text-to-video / image-to-video / video-extension / video-edit.
2. **Duration** — number of seconds, 1–30 (hard maximum per generation).
3. **Subject** — the one who/what the video is about, with stable attributes.
4. **Scene** — setting, lighting, mood.
5. **Action beats** — ordered micro-changes that make up the 30-second story.
6. **Camera** — one dominant move per shot, shot size, angle, lens character.
7. **Audio intent** — dialogue, sound design, music. Always; Seedance 2.5 is an
audio-video joint generation model.
8. **References** — which assets exist and what single job each one has
(first frame, identity, camera grammar, motion, music).
9. **Constraints** — fixed requirements and negatives (no captions, no text).
If the user wants more than 30 s, plan the first 30 s now and note that an
extension (up to two, official limit) will be a separate generation.
## How to build a VideoProjectSpec
Build a spec dict that satisfies `schemas/video-project.schema.json`. Required
fields: `spec_version`, `project_goal`, `model` (`seedance-2.5`),
`duration_seconds` (1–30), `aspect_ratio`, `subject` (non-empty string),
`action`, `evidence`. `mode` is optional — the compiler infers it from the
reference assets (video → `video-extension`/`video-edit`, image →
`image-to-video`, none → `text-to-video`) — but set it explicitly when the
intent must not be guessed. Recommended fields: `scene`
(`setting`/`lighting`/`mood`), `camera` (`movement`/`angle`/`lens`),
`audio` (`dialogue`/`sound_design`/`music`), `continuity`, `constraints`
(flat list or `preserve`/`modify`/`forbidden` block), `resolution`
(`aspect_ratio`, `width`, `height`). Optional: `references.images/videos/audio`,
`first_frame`, `last_frame`, `performance.direction`, `extension.count` (0–2,
only in video-extension mode), `provider`.
Mode-specific requirements:
- `image-to-video`: ≥ 1 reference image or a `first_frame` / `last_frame`
description.
- `video-extension`: ≥ 1 reference video and `extension.count` in 0–2.
- `video-edit`: ≥ 1 reference video.
Reference manifests may describe hypothetical original assets; never reference
unlicensed material.
## How to compile the final prompt
Use this repo's compiler — do not hand-roll the prompt:
```python
from ai_video_director.compilers.seedance_25 import compile
request = compile(spec, manifest) # manifest optional
prompt = request["prompt"] # single well-structured prompt string
```
The compiler validates constraints (duration ≤ 30 s, extension twice at most,
mode known, subject present, reference requirements per mode) and raises
`ai_video_director.validators.ValidationError` on violations. It returns a
generation-request-shaped dict: `model`, `mode`, `prompt`,
`reference_manifest`, `duration_seconds`, `resolution_hints`, `provider`,
`evidence`. The `prompt` follows `models/seedance-2.5/prompt-grammar.md`.
## Do / Don't
**Do:**
- Write audio intent (dialogue / sound design / music) into every prompt.
- Write the duration explicitly; keep it ≤ 30 s per generation.
- Give every reference exactly one job; distinguish "edit this clip" from
"reference this clip".
- Repeat stable identity/wardrobe/setting details in the continuity line.
- Name camera moves and performance blocking explicitly.
- Keep all examples original; no movie/TV/brand IP, no celebrities.
**Don't:**
- Don't write `duration_seconds` > 30, even with an extension flag.
- Don't claim extension beyond the official twice limit.
- Don't let two references define the same identity or style.
- Don't copy third-party prompt collections into this repo.
- Don't present third-party API features as ByteDance official capabilities
(see hard rule below).
## Official capability facts (checked 2026-08-19)
Source: <https://seed.bytedance.com/en/seedance2_5> — `checked_at: 2026-08-19`.
| Fact | Wording on the official page |
| --- | --- |
| Audio-video joint generation | "Seedance 2.5 is a next-generation audio-video joint generation model". |
| 30 s per generation | "Create videos up to 30 seconds in a single generation". |
| Extend twice | "with the option to extend twice for richer, more complete storytelling" / "supports two video extensions". |
| Motion & realism | "Motion is smoother and more consistent, and the visuals are more realistic." |
| Precise reference control | "built for 30-second storytelling with precise reference control". |
| Reference video understanding | "Understands reference videos more precisely -- capturing the intention, framing, and cinematic language to go beyond motion transfer into creative interpretation." |
| Reliable editing | "Editing becomes more reliable, and responds to a wider range of audio and visual editing requests." |
| White-model control | "Provides advanced capabilities such as white-model control". |
| Green-screen editing | "and green-screen editing". |
| Professional camera movement | "combined with professional camera movement". |
| Performance blocking | "and performance blocking, to better support complex video production". |
Not on the official page (community practice / product-surface, must be marked
as such, never official): first-frame/last-frame mode mechanics, `@Image1` /
`@Video1` / `@Audio1` inline reference syntax, reference-count limits,
aspect-ratio lists, beat-planning timing ranges, drift-vs-duration heuristics.
## Hard rule — third-party API features
Third-party API features — **native 4K, 72 API routes, relaxed moderation,
specific pricing, endpoints** — must **never** be presented as ByteDance
official capabilities. The official page checked on 2026-08-19 does not state
them. If a third-party guide or API provider claims them, attribute them to
that provider explicitly or omit them; a mismatch must be reported, not
silently adopted.