The Seedance 2.5 Prompt Guide: How Prompting Actually Changed
Seedance 2.5 is out globally, and its 80 pages of official prompting docs change the job: bracketed sections, numbered reference roles with declared exclusions, timeline scripts with end states, and four kinds of audio punctuation. Here's the full breakdown — plus the real production prompt from Death Walks Into A Bar and a free skill file for your LLM.
Seedance 2.5 is finally out globally — Western users can get at it through Dreamina or the API — and with it came the official prompting documentation. All eighty-ish pages of it. As I often joke, it’s my job to read the documentation so you don’t have to, so I did, and this is the distilled version. It originally ran in Theoretically News, the newsletter — this is its permanent home.
If you’re catching up on the model itself: Seedance 2.5 Is Official covers the spec sheet, and the first official shots cover what it puts on screen. This post is about the part that actually changed under your fingers: how you write for it.
One thing before we start: there’s no right or wrong way to prompt. But 2.5, at least right now, has strongly recommended guidelines — and there’s a lot less hand-holding than 2.0 gave you. You can’t just hand it two reference images, say “these characters fight,” and expect awesomeness to come out the other end. More detail is required at baseline. I suspect that gets optimized away over the coming months; today, this is the shape of the job.
From call sheet to build file
A Seedance 2.0 prompt read like a call sheet. One header line of style tags, a cast list with @handles, then numbered shots:
【Style】 gritty neo-noir, handheld. 【Duration】 10 seconds
Characters:
Mara (@mara): rain-soaked detective, grey trench coat
Shot Actions:
Shot 1 (The Threshold): Medium shot. Mara shoulders through the door...
Shot 2 (The Draw): Close-up. Her hand slides toward the holster...
The tags were basically names — shorthand pointing at whatever you attached, and the model decided for itself what to take from each reference.
The 2.5 template is closer to production paperwork: bracketed sections, each with one job.
[Generation Goal]
One sentence: who does what, where, in what style.
[Reference Material Roles]
@Image 1 defines Mara's face and coat. Do not use its background.
@Video 1 defines the pacing of the door push — not the person, not the scene.
[Event Script]
0–4s: ... 4–9s: ... End state: the door has swung shut behind her.
[Maintain Consistency]
Keep Mara's identity, the coat, and the hallway layout constant throughout.
Three big changes here, and they’re worth internalizing before you write a single prompt.
Reference roles — and what not to take
Every material now gets a numbered tag — @Image 1, @Video 2, @Audio 1 — plus a declared role. You can stack up to 50 reference materials in one generation (including up to 10 audio references, and audio-only input is now allowed), so the model needs to be told what each one is for.
The real trick is declared exclusions. Telling the model what not to take from a reference does just as much work as telling it what to take:
@Image 1 defines Mara's face and coat. Do not use its background.
@Video 1 defines the pacing of the door push. Do not use the person's identity, clothing, or scene.
Without the exclusions, 2.5 will happily borrow a background you only meant as a face reference. With them, multi-character work also got dramatically better — per-character binding is now independent, so the old twins/face-blending problem is mostly gone.
Related: negative prompts are back. In 2.0 they were unreliable enough that a lot of us stopped using them. In 2.5 they’re fixed and officially recommended — “no subtitles, no BGM” now does exactly what it says.
The sandwich structure
The 2.5 prompt is a sandwich. Intent stated once up top, a timeline in the middle — one beat per stage, each with an explicit end state — and what has to stay constant restated at the bottom. In 2.0 all of that lived buried in the shot prose; 2.5 wants it declared going in and coming out.
The middle layer, the [Event Script], is timestamped: 0–4s, 4–9s, and so on, with each slice describing the physical action and where it lands. That “end state” habit matters more than it looks — it’s how you stop the model from improvising its way past your cut points.
Audio gets its own punctuation
Sound now splits into four bracket types:
| Audio type | Brackets | Example |
|---|---|---|
| Dialogue | {} | {Hello, welcome back.} |
| Music | () | (Soft, rhythmic piano plays in the background) |
| Sound effects | <> | <A bell rings in the distance> |
| Subtitles | 【】 | 【Chapter One: Departure】 |
In 2.0, all of it rode along in quoted lines inside the action text. And if you’re a 2.0 veteran: yes, the 【】 brackets survived the version bump but changed jobs — they used to wrap your style header; now they mark burned-in subtitles.
One bonus from the docs, for when your character comes out speaking the wrong language or accent — reinforce the dialogue language explicitly, right before the line:
Dialogue language: American English. The girl says in natural, conversational American English: {I thought you weren't coming.}
Put together: 2.0 prompting was writing — describe your shots well and hope the model reads carefully. 2.5 prompting is closer to filling out a build file. The template does the organizing, and your writing gets to just be about the movie.
The prompt I actually shipped: Death Walks Into A Bar
Full disclosure — I didn’t find the documentation until I was more than three-quarters of the way through Death Walks Into A Bar, so the film wasn’t made with the official format at all. It was made with a hybridized structure that surfaced in Dreamina’s Early Access Discord. For most scenes, the prompt looked like this:
Create a cinematic drama, starring @image1 as JAMES and @image2 as DEATH, capturing a quiet, tense first meeting in a dim corner booth of an empty bar at night. Maintain strict 180-degree axis discipline with James seated frame-left and Death seated frame-right beneath the hanging pendant lamp, a small round table between them. Preserve the position of the large leather book open in front of Death and the rain-wet window behind the booth across all cuts. [AESTHETIC] Medium: 35mm film grain, anamorphic widescreen framing, warm-against-teal cinematic contrast. Palette: Amber pendant glow, teal window dusk, oxblood leather, charcoal shadow. Lighting: Single warm pendant lamp pooling light over the booth table, soft teal spill from the rainy window, deep falloff into darkness. Location: @image3 Empty night bar, cracked oxblood leather corner booth against brick, small round table, out-of-focus glowing bottle shelf in the far background, light haze. Wardrobe: James wears a black crew-neck sweater, dark cargo trousers, black combat boots; Death wears an elegant pale gray three-piece suit with a gray tie and pocket square. Audio: Fully diegetic; rain on glass, low room tone, creak of leather seats, quiet voices. [OPENING] A slow push-in from across the empty barroom finds Death seated alone frame-right in the corner booth, serenely reading a large open leather book under the pendant light. James enters frame-left in silhouette and crosses to the booth. [EXECUTION] [CAM 01] Wide push-in from the barroom -> [ACT] James walks slowly to the booth and stops at the table -> [AUDIO] JAMES: (low, even) "They said you'd be here." -> [ACT] Death closes the book halfway and looks up with a faint smile. [CAM 02] Medium two-shot favoring Death frame-right -> [AUDIO] DEATH: (warm, unhurried) "And I knew you were coming. Right on time. That's good." -> [ACT] James slides into the booth frame-left and places a black handgun flat on the table, muzzle toward neither man. [CAM 03] Close on James frame-left -> [AUDIO] JAMES: (studying him) "You aren't what I expected." -> [ACT] James settles back against the leather. [CAM 04] Close on Death frame-right -> [AUDIO] DEATH: (amused) "What — the cloak, the skull? A little cliché, wouldn't you say?" -> [ACT] Death smooths the open page of the leather book with one hand, the pendant light warm on the pale gray suit.
Two things worth stealing from this even if you use the official template. First, the axis discipline and “preserve the position of…” lines — continuity instructions stated as hard constraints, up front. Second, notice there are no timestamps. Instead of slicing the 30-second block myself, I gave 2.5 latitude to pace the scene — and it paced it well. The official [Event Script] timestamps buy you control; leaving them out buys you performance. Pick per shot.
The full making-of, including how the film came together shot by shot, is in the walkthrough video.
Grab the skill file
Having read all of that, you’re probably going to want your LLM of choice to do the heavy lifting. I put together a skill file that compresses everything across those 80 pages of ByteDance documents into a single Markdown document: The Seedance 2.5 Prompt Skill.
Point Codex, Grok, Claude, Kimi — whatever you use — at that file and it’ll have everything it needs to help you build a solid 2.5 prompt. Play with it, tweak it, make it your own. ByteDance has also released their own prompt skill, which is genuinely decent.
Prompts like this land in your inbox first, when they’re fresh — that’s what the newsletter is for.