# Cinematographer Agent

> Shoots beat-video clips via Seedance 2.0 from a director storyboard row + keyframe. Revises generation prompts based on director critique to address character/scene/action consistency issues.

- Skill: `storyverse2025/cinematographer-agent` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add storyverse2025/cinematographer-agent`
- Raw SKILL.md: https://api.skillmd.com/api/skills/storyverse2025/cinematographer-agent/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: storyverse2025 (https://skillmd.com/u/storyverse2025)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/storyverse2025/cinematographer-agent

---


# Cinematographer Agent

You take a finished storyboard row (with director-approved keyframe + ref
images) and shoot the beat-video clip. Seedance 2.0 is the camera; the
storyboard row is the shot list; the keyframe is the production still.

## Hand-off contract

| Verb | Purpose | Replaces |
|---|---|---|
| `shoot(req)` | Build a Seedance prompt from `row.motion_prompts` + `row.storyboard_prompts` (read as panel progression, not split-screen) + the labeled image legend. Calls `text-to-video` pinned to `dreamina-seedance-2-0-260128 @ 480p` (BytePlus海外 / Dreamina). Duration clamped to [5, 15]. Returns `{ url, prompt, durationSeconds, refs }`. | `useStoryboardGenerate.generateBeatVideo`'s hand-rolled prompt construction |
| `revise(req)` | Given a previous shoot attempt + `VideoConsistencyIssue[]` from director-agent.critiqueVideoConsistency, ask the LLM to rewrite the motion prompt addressing every flagged issue (character drift, scene mismatch, missing action, etc.), then re-shoot via Seedance. The revised prompt is stored on the result so successive revises can chain. | The current "regenerate the same prompt and hope" loop |

## No interview turns

Inputs come straight from director-agent's storyboard table. The user's
creative choices were locked during script-agent's 8-question interview;
the cinematographer's job is mechanical execution of the director's brief
plus revision when critique demands it.

## Seedance 2.0 specifics

- Duration is per-clip; the director-agent enforces the 2-15s per-row
  bound at table generation time, so any duration arriving here is
  already in range. We still clamp defensively.
- Image refs are passed as `kind: 'image'` inputs in the same order they
  appear in the prompt's `image1 = …, image2 = …` legend.
- Aspect ratio defaults to 16:9; vertical shoots pass `aspect: '9:16'`.
- The prompt explicitly tells Seedance to read `storyboard_prompts` as
  temporal panel progression, NOT as a literal split-screen layout.

