---
name: elser-seedance-camera
description: "This skill should be used when the user asks for camera movement, shot scale, lens feel, framing, one-take direction, dolly, pan, tilt, push-in, handheld, aerial, macro, or camera-transfer guidance for Seedance 2.0. Use inside ElserStudio for MCP-backed planning and production; all canonical reads, writes, generation, task polling, and canvas updates require the elser-studio MCP."
---

# ElserStudio MCP execution adapter

This is the complete active adaptation of upstream `seedance-camera` from Seedance 2.0 Skill OS v6.7.0. Read [the ElserStudio root skill](../../SKILL.md) and [the upstream-to-MCP contract](../../references/upstream-mcp-integration.md) before acting.

Mandatory overrides for every instruction below:

1. Use the `elser-studio` MCP for all canonical reads, writes, asset imports, media generation, task status, and canvas synchronization. Never call a Provider, database, object store, or BYOK credential directly.
2. Map upstream project state and production artifacts onto canonical Project, World, Episode, Shot, `generationContract`, generation-task, blob, and canvas records. Never create a parallel `project-state.json` or local run ledger.
3. Treat upstream Provider tags, endpoint fields, limits, prices, and surface names as source material only. Pass provider-neutral references and prompts to MCP; the desktop capability-router owns Provider syntax and current capability selection.
4. Preserve the full directing, multilingual, safety, research, professional-production, and review knowledge below. If it conflicts with ElserStudio identity authority, spend gates, MCP schemas, or observed task state, the ElserStudio contract wins.

---


# seedance-camera

Use one clear camera idea per short clip unless the user asks for a multi-shot sequence. The best camera direction has a start frame, movement, speed, subject relationship, and endpoint. Avoid stacking moves that fight each other, such as drone rise, dolly-in, handheld shake, and orbit in the same five-second shot.

Load `[quick-ref](../../upstream/seedance-2.0-v6.7.0/references/quick-ref.md)` for prompt assembly, `[cinematography-shot-language](../../upstream/seedance-2.0-v6.7.0/references/cinematography-shot-language.md)` for professional shot contracts, `[directing-engine](../../upstream/seedance-2.0-v6.7.0/references/directing-engine.md)` to derive the move from the scene's one intention so it reinforces light, performance, and sound instead of competing, and `[vocab/zh](../../upstream/seedance-2.0-v6.7.0/references/vocab/zh.md)` or `[vocab/ru](../../upstream/seedance-2.0-v6.7.0/references/vocab/ru.md)` when camera wording must be multilingual.

## Intent

When a user asks about camera, they are really asking where the viewer's body stands and what the viewer is made to feel from there. Camera grammar is empathy mechanics: a push-in is leaning closer, a locked frame is holding your breath. Choose the move that puts the audience where the user's feeling lives.

## Camera Contract

State: shot scale, angle, movement, speed, subject relationship, and endpoint. A prompt-ready camera phrase should be physically possible and tied to the subject's action.

| Need | Strong phrase | Avoid |
|---|---|---|
| Emotional realization | `slow dolly-in from medium close-up to tight close-up as Character A lowers the envelope` | `dramatic cinematic zoom` |
| Product reveal | `controlled slider move from silhouette to front three-quarter hero angle, ending on the label` | `dynamic product camera` |
| Scale | `low-angle crane up from boots to skyline, ending behind the character's shoulder` | `epic wide moving shot` |
| Instability | `subtle handheld shoulder camera, small breathing sway, subject kept centered` | `shaky chaotic camera everywhere` |
| Precision detail | `locked macro shot, focus stays on the watch gears while the second hand clicks once` | `cool close-up details` |

## Lens and Framing Anchors

Use lens anchors only when they improve direction: `24mm wide lens for spatial energy`, `35mm natural street perspective`, `50mm portrait compression`, `85mm shallow close-up`, or `macro lens for material detail`. Pair lens words with subject distance and motion; do not stack lens numbers as decoration.

## Move Selection

Use **locked-off** shots for lip-sync, product identity, and delicate VFX. Use **dolly-in** for discovery or realization. Use **tracking** for travel, pursuit, and product motion. Use **orbit** only when the subject can remain clear from all sides. Use **crane or drone** for scale, arrival, or reveal. Use **handheld** only when realism matters more than precision.

## Continuity Rules

For multi-character scenes, anchor the camera to named tags: `camera holds Character A in foreground while Character B crosses behind`. For I2V, preserve the image composition unless the user explicitly wants a reframing. For reference video, state whether `@Video1` transfers camera movement, action rhythm, or blocking; do not let it transfer identity unless authorized.

For complex camera movement, a video reference often works better than a long verbal stack. Use `@Video1 controls camera rhythm only; do not transfer performer, room, logo, or identity`.

## Conflict Rule

If the user gives several incompatible moves, choose one primary camera move and put the rest into optional variants. If the shot needs multiple beats, recommend splitting into separate clips or a time-segmented prompt.

## Sequence State

When sequence state is present, inherit the observed camera phase, screen direction, current clip scope, continuity locks, exact reference tags, and reserved future beats before choosing a move. A continuation camera phrase must begin from the accepted source frame or observed end state; do not restart a pan, focus pull, or tracking move unless an intentional next shot declares the reset.

## Output Contract

Return the selected camera phrase, why it fits the shot, conflicts removed, fragile anchors, endpoint, and a prompt-ready integrated sentence.
