Pro

Seedance Camera Director

Scripts into timed shot lists and multi-shot Seedance 2.0/2.5 prompts that cut together

$59.90

For filmmakers, ad creatives and storytellers making multi-shot videos with ByteDance Seedance 2.0 or 2.5.

Ask a video model for "cinematic camera work" and you usually get stacked moves that wobble, dialogue cut off at the end of a clip, and shots that don't cut together. This skill makes your agent work like a director of photography. It decides what each shot is for, how long it needs and how it connects, and only then writes prompts in the form Seedance follows.

  • Shot list: size, angle, a single motivated camera move, lens feel, action, dialogue, sound and the transition out, with a reason for every choice.
  • Timing from content: each shot's length comes from its dialogue word count, its action beats and the minimum time its move needs to read, not from fixed lengths.
  • Clip packing: shots are grouped into 4–15 s (2.0) or 4–30 s (2.5) generations, breaking at scene changes and action turning points, with a chaining method for each join (last frame, extension, cut on action).
  • Continuity bible: characters, axis, screen direction, light and look lines, repeated word for word in every clip.
  • Prompts in both dialects: integer-second timelines for 2.5 and shot-numbered prompts for 2.0.

Included: a SKILL.md workflow, a 30+ move camera lexicon (emotional read, phrasing, minimum duration, clashes), timing rules, transition and continuity guides, 11 coverage recipes, 26 failure modes with fixes, 4 complete worked examples and a dependency-free Python shot timer. Model output still varies; the skill improves your odds without guaranteeing a shot.

Highlights

  • Shot lists with size, angle, one motivated move and lens feel per shot
  • Shot length derived from dialogue word count and action beats
  • Packs shots into 15 s (2.0) or 30 s (2.5) clips with continuity
  • 30+ camera moves: what each communicates and how to phrase it
  • Stdlib Python shot timer, failure-mode triage and 4 full examples

Example

Dialogue scene to shot list
You

Kitchen at night. Theo returns the ring box Lena left behind. Four short lines. Make it a Seedance 2.5 scene and tell me how to do it on 2.0.

Agent + skill
Intent: Lena's scene. Hold on her back; the only push-in is on Theo when it breaks for him; release with a pull-back.

| # | In–out | Size | Move | Action / line |
|1|0–3|WS|locked-off|Lena rinsing a mug, back to camera|
|2|3–9|MS|locked-off|Theo enters: "You left this on the bathroom shelf."|
|3|9–14|MCU|static|Lena half-turns: "I didn't leave it. I put it there."|
|4|14–17|CU|slow push-in|Theo: "… So that's it?"|
|5|17–20|CU|static|Lena: "That's it."|
|6|20–21|insert|static|box set on counter|
|7|21–24|WS|slow pull-back|neither moves|

Timing: derived from words at 2.5 w/s + lead-in/tail; speech fills 33% of 24 s.
2.5: one clip, duration 24, integer ranges.
2.0: two clips (14 s + 10 s), split after shot 3 at the reverse-angle cut; same bible lines in both; hard cut in the edit.
Fixing a wobbly camera
You

My Seedance prompt says 'the camera pushes in while panning left and orbiting around her as she talks' and the result is a shaky mess.

Agent + skill
Three moves are stacked in one shot, and the orbit happens during dialogue. Seedance follows one move per shot, and orbiting a speaking face hurts lip sync and identity.

Rewrite as two shots:
0–4s: [Medium close-up, slow push-in on Mara, from medium to close-up] She speaks, eyes on the window. Mara (low, in English): {I'm not coming back.}
4–8s: [Wide, half orbit clockwise around Mara, ending on her profile] Silent; she turns from the window.

The push supports the line, and the orbit gets its own silent beat with the 4 s it needs to read.
Shot timer output
You

python scripts/shot_timer.py chase.json (9 shots, model 2.0, fast delivery)

Agent + skill
{
  "model": "2.0", "total_s": 25.0, "clip_count": 2,
  "clips": [
    {"clip": 1, "duration_param": 15, "warnings": ["5 shots in one 2.0 clip; 2-4 is the reliable range"],
     "prompt_skeleton": ["Shot 1: [EWS, slow aerial drift forward] Dusk skyline…", "Shot 2: [MWS, fast side tracking] Nia sprints left to right…", …]},
    {"clip": 2, "duration_param": 10, "warnings": [], …}
  ]
}

Action taken: moved the leap to the start of clip 2 as a cut on action, giving 13 s + 12 s with 4 shots each.

What's inside

seedance-camera-director/
├── agents/
│   └── openai.yaml
├── references/
│   ├── camera-move-lexicon.md
│   ├── coverage-recipes.md
│   ├── failure-modes.md
│   ├── shot-timing.md
│   ├── transitions-and-continuity.md
│   └── worked-examples.md
├── scripts/
│   └── shot_timer.py
├── LICENSE.txt
├── README.md
└── SKILL.md

Install by unzipping into your agent's skills folder. Install guide →