video-prompt-director: Director-Style AI Video Prompts
Positioning
Turn any content into ready-to-generate video prompts. First, select a tier based on script style. The two tiers share a production layer, while the visual layer and performance layer each have their own structure:
| Layer | What it solves |
|---|---|
| Production layer (shared) | Breaks the script into generation units; selects generation mode, parameters, and reference images per unit; ensures continuity between units |
| Visual layer | Characters, props, scene space, camera, style/lighting, sound, hard constraints |
| Performance layer | Short video: one visible action sentence + one expression node. Cinematic drama: 8-dimension formula, AU, emotional progression, reaction chain |
Principle: Keep everyday actions light and concise, write key moments in detail, focus on areas where AI is prone to errors.
Step 0: Select Tier
| Short Video Tier | Cinematic Drama Tier | |
|---|---|---|
| Platform / Use | TikTok, Xiaohongshu, WeChat Channels, Kuaishou, Reels; drama snippets, street photography, atmosphere reels, character mini-stories, vertical short dramas | Drama shorts, quality dramas, literary/art segments |
| Pace | One-shot: one event node every 2 seconds, or multi-shot: 2–5 seconds per shot | 4–12 seconds per shot, static or very slow push-in |
| Driver | Action events, camera movement, space and sound, visual contrast | Performance: emotional progression, dialogue, confrontation |
| Performance writing | One visible action sentence + expression change, natural language, no AU | 8-dimension formula + AU assistance + reaction chain |
| Structure | Method A: One-shot (丹眉 style) / Method B: Multi-shot (赛博原子 style) | Full-text roadmap / Character consistency / Shot timeline / Core requirements… |
| Source | AI-video-prompt 丹眉 + mx-shell-prompt 赛博原子 | video-prompt-director v1 |
| Read first | modes/short-video.md → examples/short-video.md | modes/cinematic-drama.md → examples/cinematic-drama.md |
Decision rules:
- If the user specifies a platform or style → follow them. TikTok, Xiaohongshu, fast-paced, short video → Short Video tier. Quality drama, cinematic narrative, slow-paced, performance → Cinematic Drama tier.
- If not specified, look at the script: multiple dialogue lines, emotional twists, confrontations, same scene → Cinematic Drama tier; otherwise → Short Video.
- Vertical short drama → Short Video tier, borrowing dialogue embedding and reaction chain from Cinematic Drama (see end of Short Video doc).
- If unclear → Short Video tier, and in Step 3's confirmation message, state "Can switch to Cinematic Drama tier."
- Composite/edit-type tasks (put A into B, change background only) use neither tier; follow the minimalist template at the end of tool-adapters.md.
Different segments in a project can use different tiers (e.g., opening hook uses Short Video, main drama uses Cinematic Drama).
After selecting a tier, read that tier's modes/ file and corresponding examples before writing.
Workflow
Step 1: Read Input, Define Three Things
- Target tool and model: Determines max segment duration and material reference syntax; see tool-adapters.md. If not specified by user, use the current project default; if no default, use
Seedance 2.5 | 720p | 16:9. - Visual tone: Cinematography / Mobile phone / Animation. For mobile phone, do not write "cinematic, IMAX, blockbuster, 4K."
- Reference materials: If available, assign a task to each image; if not, describe what images to prepare, or switch to pure text-to-video.
One-sentence idea: treat as single segment, fill in directly, skip Step 3 confirmation.
Step 2: Segment the Script
Divide by location, time, major emotional shift, perspective change, or max segment duration. Write the ending state of each segment, and the next segment should continue from there. Details in REFERENCE.md section "Segmentation"; per-tier shot counts in modes/.
Step 3: Director's Judgment (The Only Confirmation Checkpoint)
For each segment, decide: what to write lightly, what to write in detail, where AI might fail. For multiple segments or ambiguous direction, use one message to hand off to the user:
Tier: Short Video (one-shot) — justification in one sentence; if you want slow-paced performance, can switch to Cinematic Drama.
I've split into N segments:
Segment 1 (0–15s): [one-sentence beat] | [generation mode] | [required reference images]
Segment 2 (…): …
My judgment:
- Segment 1 [specific moment]: I plan to [processing], the audience will feel [effect]; another direction is [alternative].
Reply "write it" to proceed; merge, split, or change direction directly.
If there's only one segment and the intent is clear, skip this step and write directly. Where the user can't decide, give two or three options with their effects; don't make them fill out a form.
Step 4: Write Each Segment
Use the structure of that tier (see modes/), following the density and tone of that tier's examples. Examples are benchmarks, study them—don't "improve" them with general rules.
Step 5: Self-Check and Deliver
Run through the shared self-check below and the tier-specific self-check. You can run python3 scripts/prompt_builder.py --validate <file>. After delivery, ask: need to adjust segmentation, change tier, or emphasize/de-emphasize a section?
Shell of Each Segment (Shared)
## Segment 1: [one-sentence beat] (0–15s)
Tier: Short Video (one-shot / multi-shot) or Cinematic Drama
Generation mode: [text-to-video / first frame / first-last frame / multi-image / all-reference / video edit]
Model parameters: [model] | [resolution] | [aspect ratio] | [duration]
Reference materials:
Image 1: [single task] — lock [face / hairstyle / clothing / proportions…]; do not use [background / people in it…]
(If text-to-video, write "None"; if missing images, describe what to prepare)
Prompt:
```text
[Write according to that tier's structure]
```
End state: [pose, position, composition — next segment continues from here]
Change material references in the prompt block to the target tool's syntax (@图片1 / 参考图1 / {{Node "node name"}} / @图像1).
Core Rules (Shared)
- Every segment is self-contained. Generation tools have no cross-segment memory. Write character locks, scene, lighting, props in hand, and the previous segment's end state in every segment; do not write "same as above" or "continue from previous." Lock appearance and clothing via reference images; do not repeat in text.
- One reference image = one task. Just "reference image" is meaningless; specify what to lock and what to exclude. Syntax follows the tool: LibTV requires
{{Node "node name"}}; plain text "Image 1" is invalid. - Timecode is action budget. Time windows are continuous, non-overlapping; one window holds one core action. Key events to specific seconds. Leave 0.5s buffer on the last beat, as model's final beat tends to be late.
- First frame is the state before the first action. If crossing legs at 2s, the first frame must have legs together.
- No floating characters. Every weight-bearing body part must specify support: leaning on what, sitting on what, feet on what. Write cause and effect for every action.
- Emotions as visible actions. Don't write isolated emotion tags (e.g., "she's sad"). For short video, write one expression node; for cinematic, write the full progression process.
- Dialogue embedded in timecode. Don't paste lines at the end.
- Only write what matters most. Over-description can cause the model to elevate background elements to the entire frame.
- Tone words must match tone. Mobile phone: no "cinematic / HD / blockbuster / 4K." Cinematography: specify camera, lens, film. Max 1–2 style references.
- No background music by default. Only keep sync sound. Add BGM only if user requests.
Shared Self-Check
- Tier selected correctly, and that tier's
modes/file and examples have been read - Each segment's duration doesn't exceed tool limit
- Each segment is self-contained; no "same as above / continue from previous"
- Each reference image has one task, locks and exclusions specified; all referenced numbers in text exist in reference list; syntax matches target tool
- Actions have support points, cause and effect; first frame is state before action
- Sound has ambient background and event sounds; no BGM unless user requested
- Hard constraints written in positive sentences to lock subject ratio, spatial logic, action order; negatives only for known failures
- End state written
- Passed tier-specific self-check
File Map
| File | Content |
|---|---|
| modes/short-video.md | Short video tier: Method A one-shot, Method B multi-shot, cross-method shared parts, performance, vertical short drama |
| modes/cinematic-drama.md | Cinematic drama tier: structure, full-text roadmap, character consistency, performance layer (8-dim, AU, emotional progression, reaction chain) |
| examples/short-video.md | 丹眉 one-shot two segments (original AI-video-prompt, hit style), 赛博原子 multi-shot (original mx-shell-prompt + 4 supplements) |
| examples/cinematic-drama.md | 改名 30-second three-character confrontation, 5 performance snippets |
| REFERENCE.md | Shared: segmentation, reference binding, props, scene space, style, timecode & action, sound, hard constraints, real-world lessons |
| references/tool-adapters.md | Each tool's material reference syntax, generation modes, per-segment limits, composite minimalist template |
| references/shot-catalog.md | Shot sizes, composition, camera movement, plus "emotion → cinematic language" quick reference |
| references/cinematic-vocabulary.md | Cameras, lenses, film stock, color, lighting, style references, and mobile phone vocabulary |
scripts/prompt_builder.py | --validate checks structure, duration, self-containment, reference image numbering by tier and method; --analyze-scene decides light vs. detailed writing; --build generates performance snippets from 8-dim JSON |