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

  1. Scenario — text description of the commercial / video (any language). May be loose prose or a pre-broken-down shot list.
  2. Reference images — numbered stillshots representing key frames. Filenames like img1, 1.png, shot_01.png.
  3. (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, not remembering, sad, hopeful).
  • No named public figures; describe wardrobe, setting and action instead.
  • Every p is 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 filename
  • s — CSV of scene IDs it applies to
  • r — ≤ 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 p fields 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 p must state "final frame matches shot 1 first frame" and the camera in c should reverse the opening move.
  • Freeze sequences — every frozen scene states pose + "Zero movement."
  • Text-overlay heavy — g explicitly 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 in c.
  • 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