Video Prompt Station
A storyboard meant for human eyes and a generation list that can run smoothly are separated by a layer of translation. This skill provides that translation layer.
It produces two files: an Asset List (which images to prepare) and a Generation List (how to generate each segment).
It does not re-select topics, modify the script structure, or judge the quality of the content—those are upstream tasks. It also does not generate images or videos directly; it only articulates instructions clearly enough for direct execution.
I. Five Ironclad Rules
Listed first because each one corresponds to a common type of failure.
- Assets First. No numbering means no prompts allowed. If the same product looks different in segment 3, the root cause is almost always that assets were not established.
- One video prompt describes one continuous moment. When the scene changes, split it into a new segment. Don't let the model do scene transitions.
- Reuse the subject's anchor phrase verbatim. Using a synonym is the same as changing the person.
- Determine the product source before writing prompts. Prioritize real footage or official materials when available. If not available, AI generation is acceptable, but geometry, printing, and logos must be hardcoded. Shots with parameter or efficacy claims must use real footage or official materials.
- Write video prompts positively; use negative prompts only for image prompts. These two syntaxes cannot be borrowed from each other. See
references/prompt-syntax.md, section eight.
II. Input
Required
| Item | Source | What to do if missing |
|---|---|---|
| Storyboard | Plan document, Section 4: Six-column short table and detailed per-shot descriptions | If shot numbers, numeric durations, or key handover fields are missing, reject the input, do not guess. |
| Product real name and specifications | Plan document, Section 1 | If missing, ask the user. If not feasible, mark as "To be confirmed." |
| Target model | User specifies, default is Seedance | Use the default; no need to ask further. |
Short table six columns: Shot Number / Duration (s) / What this shot shows / Voiceover / On-screen Text / Shot Function. Detailed descriptions supplement audience cognition, pre-requisites, key visible facts, and duration intent per shot number.
Optional
- Aspect ratio (default 9:16), video resolution (default 480p, consistent with the generation side)
- Min/Max segment duration (default 5–10 seconds)
- Whether audio is needed (Must be ON. The model reads the voiceover directly; turning it off leaves the audio silent. Only turn it off when explicitly confirmed it's a silent shot.)
Two Entry Points
| Entry Point | Handling |
|---|---|
| Standard Entry | Reads the plan's Section 4, required fields complete, proceed directly to step 3. |
| Relaxed Entry | Only has an external markdown table. Parse it first, display it back to the user for verification, and mark any missing fields. |
For relaxed parsing, explicitly state: "This is a degraded parsing result, please verify." Silent failures are more troublesome than reporting errors.
III. Eight Steps
1 Read Table → 2 Visualize → 3 Extract Assets → 4 Split Segments → 5 First Frame → 6 Compose Prompts → 7 Output Lists → 8 Self-Check
Step 1 · Read Table
Match the short table with the detailed shot descriptions by shot number, and remember the product information. This step is only for "health check," not creation. If the planning skill is installed, run its scripts/check_plan.py --plan <plan_path>; when this skill is installed standalone, check each shot against the input field checklist. If an old five-column table lacks handover fields, reject it and request it be filled.
Three checks:
- Shot numbers are sequential and durations are positive.
- Duration of each shot is between 2–6 seconds (mark any outliers).
- The storyboard has a "what this shot shows" column, not just voiceover.
Step 2 · Visualize
This is the only creative step in the entire skill, and also the one most easily skipped.
The storyboard provides content descriptions ("Explains why it's hot outside but cool inside"), but prompts need images. Each segment must be filled with the following fields:
| Item | What to ask | Example |
|---|---|---|
| Subject | What is in the frame | White ceramic lunchbox, lifted lid |
| State | Current state of the subject | Lid open, lunchbox on the table |
| Action | Who is doing what, one single action | Spoon inserted from the center |
| Environment | Where, what's around | Office desk, microwave in the background |
| Lighting | Light source direction, color temperature | Warm top white light, window light from the left |
| Shot Type | Framing size | Close-up |
| Camera Position/Angle | Camera position relative to subject | Desk height, 30 degrees in front-side |
| Camera Movement | How the camera moves (choose only one) | Fixed shot, slow push-in |
All fields are mandatory. Each segment's list must explicitly write out the subject, state, action, environment, lighting, shot type, camera position/angle, and camera movement. When a field is clearly inapplicable, state the reason. If a field is missing, try to fill it first; if you can't, ask the user one question—do not leave it blank and write it into the prompt, because the model will always make something up for blank fields.
"Key visible facts" and "pre-requisites" from the storyboard must be clearly assigned in the generation list: either a visible state in the first frame or an action occurring within the video segment. An action that unfolds over time cannot be required to be expressed in a single first frame showing the beginning, middle, and end simultaneously.
Step 3 · Extract Assets
Follow references/assets.md to do four things: number, split, determine source, and produce a master table.
- Numbering prefix:
PRProduct /SCScene /CHCharacter /SPProp - Criterion for inclusion: Referenced by two or more segments, or requires identity consistency.
- Three source tiers: Real footage / Official materials (use if available), AI generation (use when no real footage available, lock geometry and printing), To be supplemented.
Step 4 · Split Segments
Find the intersection of three constraints:
- Segment duration ≥ Voiceover word count / 4 words per second (Model reads Chinese at about 4–5 words per second; use the lower bound)
- Single segment duration 5–10 seconds (model limits, see
prompt-syntax.md) - One action per segment
The reason for using 4 instead of 6.5 for rule 1: The model does not speed up its reading; it simply drops the latter half of the sentence. Segments cut with an optimistic reading speed will result in generated videos missing sentences, which is far more troublesome than having one extra segment.
Max voiceover per segment: 36 characters. If exceeded, split the segment. Do not compress text to fit.
For unusually long shots, use extension + handover frames: explicitly write what visual state the previous segment's final frame is in, not just "continues from previous segment."
Step 5 · First Frame
Not every segment needs a first frame. Determine based on sensitivity:
| First Frame Required | Direct Text-to-Video Acceptable |
|---|---|
| Product close-up, hand-held actions, logo or text appearing | Empty shot, atmosphere, transition, pure lighting effects |
First frame images are written using image prompts (see assets.md Section 4, Seven Modules), with the principle: "Real product as base + AI-generated scene."
Step 6 · Compose Prompts
Write using the six-block structure from references/prompt-syntax.md:
[Style and Aspect Ratio] → [Material References] → [Lock Subject] → [Timeline] → [Voiceover & Sound] → [Quality Constraints]
Four must-include items: a single camera movement, a Motion: list, the voiceover text verbatim (read the script, don't change words), and No subtitles.
The fifth block now carries the voiceover itself—there's no separate dubbing stage anymore; the model reads the lines from this block. Copy the voiceover column from the storyboard word for word, without adding tone markers, bracketed notes, or changing a single word. If you change a word, the subtitles will be out of sync.
Step 7 · Output Lists
Fill two templates and save them to an upstream-specified directory (default: 02-资产清单.md, 03-生成清单.md).
Step 8 · Self-Check
Run six checks; run the script if available:
python scripts/check_gen_list.py --dir <production_directory>
Exit codes: 0 Pass / 2 Fatal items found / 3 File unreadable.
IV. Two Deliverables
Asset List (02-资产清单.md)
A table with six columns, followed by the image prompt for each asset:
| Number | Type | Use | Source | Referenced by Segments | Status |
|---|
- Type: Product Main Body / Product Detail / Scene / Character / Prop
- Source: Real or Official Material / AI Generation / To Be Supplemented
- Status: Existing / Image to Generate / To Be Shot
Generation List (03-生成清单.md)
A summary table + the full prompt for each segment (prompts are too long to be in the table):
| Segment # | Shot # | Duration | Mode | Referenced Assets | First Frame | Post-Production | Candidate Count | Pre-requisite/Key Fact |
|---|
- Mode: First/Last Frame / Reference Image / Text-to-Video
- First Frame:
S01_f01or "None" - Candidate Count: Suggested 2–4
The three mode options are provided for downstream selection; not all models support them. KIE Seedance currently only supports Text-to-Video, First Frame, and First/Last Frame modes. The Reference Image mode must be downgraded to First Frame—the downgrade rule is in short-video-generate. This skill just writes the list as specified; it doesn't need to adjust its output based on the model's capabilities.
Below the table, for each segment (e.g., ### S01 · Shots 1–2 | 8s | First/Last Frame), provide the eight visual fields and the complete prompt, along with the first frame source, pre-requisites, and post-production items.
Templates are in assets/.
V. Nine Self-Checks
| # | Check | What to do if it fails |
|---|---|---|
| 1 | Every segment has a shot number, no extra segments | Go back to Step 4 to re-split. |
| 2 | Sum of segment durations differs from total storyboard duration by ≤1 second | Adjust segment lengths, do not modify the storyboard. |
| 3 | All asset numbers referenced in the list are defined in the asset list | Add definition or remove reference. |
| 4 | Primary mode is unique (First/Last Frame and Reference Image are not mixed) | Unify across the entire video. |
| 5 | Product shots have their source specified; shots with claims use real footage or official materials | Go back to Step 3 to change the source. |
| 6 | Every video prompt includes: a single camera movement, Motion:, and No subtitles | Fix each one. |
| 7 | For segments with voiceover, the voiceover block is word-for-word identical to the storyboard's voiceover column | Compare segment by segment; even a single wrong character must be corrected. |
| 8 | All visual fields are complete | Check F7 only verifies that the "Visual Fields" table within a segment exists, is complete, and has values; it does not infer from prose keywords. Subject, state, action, environment, lighting, shot type, camera position/angle, camera movement, and dependencies/visible facts must all be filled in, with reasons for inapplicable items. |
| 9 | Dependencies are passed along | Storyboard pre-requisites and key visible facts have been mapped to either a first frame or a segment action. |
Checker F8 only confirms that the summary table has "Pre-requisite/Key Fact" filled in for each segment; it cannot prove that the content is actually represented by the first frame or in-segment action. G2 still requires manual per-segment mapping verification.
The precise meaning of check #4: First/Last Frame and Reference Image are mutually exclusive. Text-to-Video mode is only for shots without a subject. If product shots mix the two primary modes, the outputs will not join up seamlessly.
Check #7 is new and the easiest to miss. The method is simple but effective: Place the storyboard's voiceover column and the list's voiceover block side-by-side, and compare word-by-word. If you change a single punctuation mark or swap a synonym, the subtitles will need to be updated accordingly—but subtitles are done in S4, and by then it's too late.
While you're at it, check two things: whether any segment's voiceover exceeds 36 characters (the model will skip words), and whether any annotation like (laughs) or [excited] has snuck in (the model will read it out loud).
VI. Boundaries
- Does not rearrange content: Shot numbers, sequence, and durations come from upstream; this skill does not modify the structure.
- Does not judge content quality: Topic selection, hooks, and structural validity are upstream responsibilities.
- Does not generate directly: Only produces lists and prompts. Image generation is handled by
short-video-assets, video generation byshort-video-generate. - Does not guarantee first-try success: Generation is probabilistic; this skill only ensures that a "good candidate" has a higher probability.
- Does not copy parameters: Model parameters change; this skill provides principles and general guidelines. Specific values should be referenced from the official documentation.
VII. Reference Documents
| File | When to Read |
|---|---|
references/prompt-syntax.md | When writing video prompts; adjusting camera movement, timeline, or material references |
references/assets.md | When extracting assets, writing image prompts for asset images or first frames |
references/consistency.md | When multiple segments don't match, products deform, or faces are wrong |
references/troubleshooting.md | When a specific segment repeatedly fails to generate |
Templates: assets/asset-list-template.md, assets/gen-list-template.md
Validation: scripts/check_gen_list.py