The Official Seedance 2.5 Prompt Guide: ByteDance's Six-Part Formula, Explained with Examples

A Seedance 2.5 prompt guide to ByteDance's official six-part formula, @reference binding, bracket syntax for audio, and the parameter locks to know.

Seedance 2.5 prompt guide featured image, Segmind

Most prompt advice for AI video is folklore. Someone gets a good clip, screenshots the prompt, and a hundred listicles repeat it as a rule. Seedance 2.5 is the first time I have seen ByteDance skip the folklore and publish an actual grammar: a fixed slot order, a tagging syntax for reference files, four bracket types that route audio and on-screen text, and a set of parameters that quietly lock themselves depending on which mode you are in.

That matters because a grammar is testable. You can read it, follow it, and predict what the model will do, which is a different activity from guessing adjectives. Below is the whole system in one place: the six-part formula, the @ reference binding rules, the bracket syntax, how to stage a 30 second clip, and the locked-parameter traps that waste the most credits. I have flagged what is confirmed and what is still unannounced, because a fair amount of what is circulating about 2.5 right now is wrong.

What ByteDance actually shipped

Seedance 2.5 raises the single-clip ceiling to 30 seconds and takes up to 50 reference files in one request. The headline capability is not resolution, it is binding: you can hand the model a pile of images, clips and audio, then say in the prompt exactly which file governs which element of which beat. That is what the grammar exists to express.

One thing to be clear about before you plan a sprint around it: as of 4 August 2026 the Seedance 2.5 API is not publicly callable. Access has been rolling out through ByteDance's own consumer surfaces first, and the model card still points to playground and API access arriving later. Model IDs and per-second pricing have not been announced. Anyone quoting you a 2.5 API price today is inventing it.

The prompt grammar, though, is published and stable, and it is worth learning now. Prompts are portable in a way that pipeline code is not. If you want the operational side of getting ready, I wrote a companion piece on how to prep your workflow before 2.5 access lands. This post is the syntax reference.

The six-part formula

A Seedance 2.5 prompt has six slots, in this order:

Subject + Action or Event + Scene and Environment + Visual Style + Camera Movement or Cut + Audio

Only the first two are required. Everything after "Action" is optional, and this is the part people get wrong in both directions. Some write two words and wonder why the output feels generic. Others write a 300 word paragraph stuffed with every cinematography term they know, which fights itself: the model has to reconcile "handheld documentary" with "locked-off symmetrical composition" and you get mush.

My rule after testing the same structure on 2.0 for months: fill the slots you actually care about and leave the rest empty. Two or three sentences is the sweet spot. Clearer beats longer.

Six slots, filled A ceramicist in a linen apron [SUBJECT] lifts a finished bowl from the wheel and turns it slowly in the light [ACTION], in a cluttered studio at golden hour with clay dust in the air [SCENE], warm 35mm film look with soft halation [STYLE], slow push in that settles on her hands [CAMERA], (sparse piano) <wheel slowing, clay scraping> [AUDIO].

Read that back and you can see why the order helps. Subject and action anchor the shot, scene and style set the look, camera decides how you see it, audio decides what you hear. Each instruction lands in a slot instead of competing for attention.

Binding references with @ tags

This is the real upgrade. Uploaded files get numbered tags you reference directly in the prompt: @Image 1, @Video 1, @Audio 1, and so on. Instead of hoping the model infers what a reference is for, you assign it a job.

The budget per generation:

Reference typeHard limitRange that stays stable
ImagesUp to 30, each under 4K1 to 8 distinct subjects
VideoUp to 10 clips, 30 seconds combined1 to 5 subjects, 5 to 10 seconds each
AudioUp to 10 clips, 30 seconds combinedKeep it to what you need

Fifty files is the ceiling, not a target. Stability drops as the count climbs, and 30 images of 20 different subjects is a reliable way to get a muddle. Eight or fewer distinct subjects is where results hold together.

The second half of binding is exclusion, and it is the habit most people never build. A reference image carries everything in it: the subject, the background, the lighting, the other people in frame. If you only want the jacket, say so.

Binding with exclusions @Image 1 defines the cream stone facade, balconies and roofline of the building. Do not use its sky or the parked cars.

@Image 2 defines the courier's face and hair only. Do not use her clothing or the background.

@Video 1 defines the camera rhythm: one slow lateral track, no cuts.

Name every character, product and prop, and tie each one to exactly one file. When two images both plausibly define "the jacket", you have handed the model a coin flip.

The four brackets that control sound and text

Audio and on-screen text are routed by bracket type rather than described in prose. Four brackets, four destinations:

BracketRoutes toExample
( )Music and ambient beds(low cello drone)
< >Sound effects<door latch, rain on glass>
{ }Spoken dialogue{We should go.}
【 】On-screen subtitles【We should go.】

Two things to note. Dialogue wants its language and delivery declared before the line, not inside it: state "Dialogue language: British English, warm and low", then put only the spoken words inside the braces. And dialogue and subtitles are separate channels. If you put a line in { } and expect it to appear as text on screen, it will not. Repeat it in 【 】 when you want both.

Keep sound effect descriptions short and physical. On 2.0 I found that dense per-object foley requests were far more likely to fail than a couple of concrete sounds, and the same instinct applies here: two or three specific effects beat a paragraph of sound design.

Structuring a 30 second clip in stages

Thirty seconds is long enough that a single flat description falls apart. The recommended shape breaks the clip into stages, each with one job.

Stage template [Generation Goal] Video type and the central event.

[Stage 1] Initial state, one primary event, end state.
[Stage 2] Continue from the previous end state, new event, new end state.
[Stage 3] Closing event and final state.

[Maintain Consistency] What must not change across stages.

The discipline that makes this work: one main change and one clear end state per stage. The moment a stage contains two events, the model has to decide which one to spend its motion budget on, and the transition between stages gets soft. The [Maintain Consistency] block is where you pin down character count, clothing, who is holding which prop, and spacing, which is exactly what drifts across a long generation.

The parameter locks most people trip on

This is the section I wish someone had handed me earlier, because these locks are invisible until you fight them. Depending on the task, aspect ratio and duration stop being yours to set:

TaskAspect ratioDuration
Video editingLocked to the inputLocked to input length, give or take about 0.3 seconds
First frame, or first and last frameLocked to the first imageFree to set
Video extensionLocked to the inputFree to set

The practical consequences: you cannot reframe a 16:9 master into 9:16 by running it through an edit, and you cannot use an edit pass to stretch a clip to a target length. If you need vertical, generate vertical, or crop outside the model. And when you extend a clip, expect the appended segment's audio level to not perfectly match the source, so plan on a level pass in the edit.

A checklist before you hit generate

  • Does the prompt name the subject and the main action in plain words?
  • Does every reference file say both what to use and what to leave out?
  • Is every character, product and prop tied to exactly one file?
  • Are references introduced scene by scene rather than all forced into frame at once?
  • Does each stage of a long clip have one main change and one clear end state?
  • Do character count, clothing, prop ownership and spacing stay consistent throughout?
  • For an edit, does the prompt name the master video, the exact scope of the change, and what to keep?

Where Segmind fits

Seedance 2.5 is not on Segmind yet, for the simple reason that it is not callable anywhere by API yet. When it ships, it will be available on Segmind on day one, the same as every Seedance release before it.

In the meantime, the grammar above is not academic, because the reference plumbing it describes already exists on Seedance 2.0. The endpoint takes reference_images, reference_videos and reference_audios arrays alongside first_frame_url and last_frame_url, with durations from 4 to 15 seconds, resolutions from 480p to 4k, and optional native audio via generate_audio. That is enough to practise the parts of the system that transfer: writing in slot order, assigning each reference a single job, stating exclusions, and keeping sound descriptions short. If you want the same thing cheaper for iteration passes, Seedance 2.0 Fast runs the same reference workflow.

Build your prompts against 2.0 now and most of them will lift straight over.

Honest assessment

A published grammar is a real improvement over vibes, and the exclusion syntax in particular fixes the single most annoying failure mode in reference-driven video. But a formula is not a guarantee. Slot order makes your intent legible, it does not make the model obey, and long generations still drift on the things [Maintain Consistency] is supposed to hold. The 50 file ceiling is also close to a trap: it reads like an invitation and behaves like a cliff. Treat 8 subjects as the real limit and the number in the spec sheet as marketing. And until the API opens, everything here is preparation, not production.

FAQ

What is the Seedance 2.5 prompt formula?

Six slots in order: Subject, Action or Event, Scene and Environment, Visual Style, Camera Movement or Cut, and Audio. Only Subject and Action are required. The remaining four are optional and best left empty unless you specifically want to control them.

Do I need to use all six parts of the formula?

No. Subject and action are the only required slots. Filling every slot with dense detail often makes output worse, because competing style and camera instructions fight each other. Two or three clear sentences outperform a long paragraph.

How many reference files can one Seedance 2.5 prompt take?

Up to 50 total: 30 images, 10 video clips and 10 audio clips. Video and audio are each capped at 30 seconds combined. Stability drops as counts rise, so 1 to 8 distinct subjects is the range that holds together.

What do the brackets mean in a Seedance 2.5 prompt guide example?

Round brackets carry music, angle brackets carry sound effects, curly braces carry spoken dialogue, and the full-width brackets 【】 carry on-screen subtitles. Dialogue and subtitles are separate channels, so repeat a line in both if you want it heard and seen.

Can I change aspect ratio when editing a Seedance 2.5 video?

No. Editing locks aspect ratio to the input and holds duration to roughly the input length, within about 0.3 seconds. First frame generation locks the ratio to your first image but leaves duration free. Extension locks the ratio and leaves duration free.

Is the Seedance 2.5 API available yet?

Not publicly, as of 4 August 2026. Access has rolled out on ByteDance's consumer surfaces first, and model IDs and pricing are unannounced. Seedance 2.0 is callable on Segmind today and shares the reference-input workflow.

Wrapping up

The reason I would learn this grammar before the API opens is that it is the cheapest part of the pipeline to get right. Slot order, one job per reference, explicit exclusions, one event per stage, and a clear head about what the locks take away from you. None of that requires 2.5 access to practise, and all of it survives the version bump. Start writing prompts this way against Seedance 2.0 on Segmind today, and when 2.5 lands you will be porting a working library instead of starting over.