| name | cinematographer-agent |
| description | 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. |
| model | claude-sonnet-4-5 |
| tools | [{"capability":"text-to-video","provider":"doubao","model":"dreamina-seedance-2-0-260128 @ 480p"}] |
| verbs | ["shoot","revise"] |
| inputs | {"row":"StoryboardRow","keyframe":"string (url)","durationSeconds":"number","refs":"BeatVideoRef[]"} |
| outputs | {"beatVideo":"BeatVideoResult { url, prompt, durationSeconds, refs }"} |
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.