Every Seedance 2 project tends to invent its own workflow. One team checks references first, another writes the global block last, a third only checks the wording at the very end. Under deadline, the steps that get dropped are usually the cheap-but-easy-to-skip ones — wording hygiene, character budget audit, scene-mapping coherence — and they cost the most when they fail late in the pipeline.
What follows is a documented version of that workflow, so the steps don't depend on which project the operator happened to do last.
The shape is end-to-end: scenario plus reference stills go in, a production-ready Seedance 2 JSON prompt comes out. It wraps a dedicated Seedance 2 system prompt — the prompt does the heavy lifting; this workflow surrounds it with the discipline (moderation-aware wording, scene mapping, character budget, final validation) so the prompt's output lands clean every time.
Update 2026-10: written for Seedance 2.0 (April 2026); Seedance 2.5 now supports up to 30 s and native audio.
Inputs
- Scenario — text description of the commercial / video (any language). May be loose prose or a pre-broken-down shot list.
- Reference images — numbered stillshots representing key frames. Filenames like
img1,1.png,shot_01.png. - (Optional) overrides — custom char limit, target shot count, locked wardrobe / location notes.
Output
A single raw JSON object (no fences, no prose) in the compact Seedance 2 prompt structure:
{"refs":[...],"g":"...","s":[{"id":"1","c":"...","p":"..."}]}
Process
0. Moderation-aware wording
Precise, policy-compliant visual wording is cheaper to settle before writing than to fix afterwards. Settle the wording rules up front, then apply them in step 7:
- Describe people by role —
the shopper,the barista,the lead. - Avoid ambiguous words; replace emotions and backstory with visual facts (
looks at the window, notremembering,sad,hopeful). - No named public figures; describe wardrobe, setting and action instead.
- Every
pis visual facts + scene context + production language. - Close scene prompts with short negatives for common artifacts:
no jitter, no warping, no flicker, no text morphing.
1. Check inputs
- Scenario present? If missing, ask for it.
- Images attached? Count them and note filenames as provided.
- Clarify any override (char cap, shot count, specific VFX language) before generating.
2. Load the system prompt
Use the Seedance 2 system prompt verbatim as the system layer for the generation step.
3. Analyze the scenario
- Identify scenes by camera setup change — a new scene starts on a cut or a discrete camera move.
- Flag: freeze moments, VFX states, composited overlays (text/UI/logos), loops.
- Lock: wardrobe, location, character descriptions.
4. Analyze every reference image
For each image, extract:
- Wardrobe (colors, cuts, accessories)
- Interior / location elements
- Hand positions, props, gestures
- VFX style if present (grid / pixel / wireframe / particle, color, coverage)
- Camera angle and framing
- Color grade / lighting mood
Pick the PRIMARY reference (usually the character + location anchor) — it maps to the most scenes.
5. Map images → scenes
Build refs[] first. Each image gets:
img— exact filenames— CSV of scene IDs it applies tor— ≤ 80-char match descriptor
6. Write global (g)
≤ 300 chars. Must cover: composited elements, wardrobe lock, location lock, VFX rules.
7. Write scenes (s[])
Per scene:
c— camera-only shorthand, ≤ 80 chars. Use the full verb palette (ROCKET, whip, CRASH stop, orbit, corkscrew, bullet-time, …).p— visual frame content only, ≤ 250 chars. No camera repetition. Explicit freeze / VFX scoping.
8. Count characters
If total JSON > cap (default 3500):
- Compress
pfields first (dense abbreviations). - Merge adjacent scenes with similar camera + content.
- Shorten
g(but never remove the composited-elements note).
9. Final pass
- English throughout (translate from any source language).
- Proper nouns / brands preserved.
- No markdown, no fences, no commentary.
- Valid JSON (closed brackets, escaped quotes).
10. Deliver
Paste raw JSON only.
Common variations
- Loop video — the last scene's
pmust state "final frame matches shot 1 first frame" and the camera incshould reverse the opening move. - Freeze sequences — every frozen scene states pose + "Zero movement."
- Text-overlay heavy —
gexplicitly lists "empty comp spaces"; scenes note where those spaces live in frame. - Multi-character — each character gets one locked wardrobe line in
g; refs with multiple people map to most scenes as PRIMARY.
Anti-patterns to avoid
- Describing camera motion inside
p— put it inc. - Writing the text content of composited titles — never.
- Adding
"type":"cut"or other schema extensions — not part of the contract. - Letting VFX bleed onto characters without explicit "chars CLEAN" scoping.
- Forgetting to mark the PRIMARY reference.
- Skipping the wording pass — imprecise wording is far cheaper to fix before generation than after.
- Emotional framing — "remembering", "sad", "hopeful" → replaced with visual facts.
Pairs with
- Happy Horse prompt rules — the equivalent rules for the competing Happy Horse model; useful when picking which generator suits a brief.
© Alex Nikulin. Quote with attribution and a link · LLM version