Communitygithub.com

likunru-oss/ai-video-sop

AI video production SOP in three modes: ad mode (15–60s feed ads), TVC mode (on-screen brand/product TVCs with real product photos), and short film mode (1–10min narrative shorts, micro-films, short dramas – first outline & scene breakdown, then one file per scene). Turns any story, script, or idea into an executable AI video production package (markdown).

What is ai-video-sop?

This AI video production SOP (Standard Operating Procedure) is designed for developers and content creators who want to generate professional AI-driven videos efficiently. It supports three distinct modes: ad mode for 15–60 second social media feed ads, TVC mode for television commercials and brand films that require actual product photos, and short film mode for 1–10 minute narrative shorts or micro-dramas with a structured multi-file workflow. The skill guides users through a complete production pipeline: from story conception (3–5 plain language sentences) to shot-by-shot script and brand risk checklist, consistent visual anchors (characters, vehicles, props, scenes), an asset output table, character three-view prompts for Nano Banana Pro, vehicle/prop/scene asset prompts, Seedance 2.0 multi-shot reference video prompts with material frames, voice-over lists, CapCut operation checklists, and pre-launch checklists. It minimises post-production by generating on-screen text (e.g., numbers, brand names) directly in the AI output, producing end cards, lower thirds, and large typography as finished images via Nano Banana, and reserving only one CapCut step for final assembly. Deliverables are split into three locations: a full local production package (markdown), a chat thread with all prompts copied for easy reuse, and a team version (prompt-free) synced to shared platforms like Notion.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/likunru-oss/ai-video-skills/tree/HEAD/skills/ai-video-sop

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

AI Video Production SOP · From Story to Production Package

Input: Any story, script, ad idea, product, or a single sentence. Output: A markdown production package that is ready for image generation, video generation, and editing. Ad mode and TVC mode produce a single file; short film mode produces an outline plus one file per scene.

This SOP is refined through multiple real advertising projects: multi-shot compositing into one clip, cuts aligned with edit points, time blocks driven by action, scene-by-scene cinematic lighting terminology, automatic film-style assignment based on content, minimized post-production, app screens generated within the video (material frames), stories rooted in reality, and a hook within the first 0–2 seconds. Sample originals are in references/ – read them before writing.

Communication Rules (Highest Priority)

  • Default to communicating with the user in Chinese: all replies, questions, options, and explanations are in Chinese. (If the user asks in another language, follow their language.)
  • Any English (dialogue, subtitles, slogans, CTAs, terminology, option labels) should be written as English(Chinese translation).
  • Prompt body text is in Chinese. Technical parameters (45mm, f/2.8, 5200K, ARRI Alexa) remain as-is; dialogue in prompts uses the original English text in quotes.
  • Place each prompt in a separate code block for easy copying.

Must-Read Before Starting

FileWhen to Read
references/package-template.mdMust-read for ad mode and TVC mode. Complete skeleton of the production package and headers for each section.
references/tvc-mode.mdMust-read for TVC mode. Differences from ad mode: brand exposure, real product reference, product shots, TV delivery.
references/short-film-mode.mdMust-read for short film mode. Workflow, outline and scene file skeleton, dialogue scenes, costume changes, soundtrack.
references/video-prompt-standard.mdMust-read before writing video prompts (used by all three modes). Structure, lighting vocabulary, color sentences, negative prompts, checklist.
references/gold-video-prompts.mdMust-read before writing video prompts. Three complete samples (ad / TVC / short film dialogue): structure, time blocks driven by action, lighting, sound, negative prompts.
references/post-minimization.mdRead every time. Post-minimisation: each visual element is categorised as A (generated in AI), B (output as finished W image), or C (single CapCut operation). Includes text-bearing assets, W image templates, CapCut operation checklist.
references/asset-prompt-templates.mdRead before writing asset images. Templates for vehicles, props, scenes.
references/gold-asset-prompts.mdRead before writing asset images. Sample asset images for characters, vehicles, props, products, scenes.
~/.claude/skills/character-sheet/SKILL.md and its references/examples.mdMust-read before writing character three-view sheets. The fixed template must be used verbatim.

First: Choose Mode

ModeWhen to UseRelationship with the 9 Steps Below
Ad Mode (default)15–60 second feed ads, app promotion, story-driven ads; brand does not appear on screen (app interface is generated within the video, bound to screenshot material frames).Follow the 9 steps below.
TVC ModeTV commercials, product ads, brand films; own product, packaging, or logo must appear on screen.Follow the 9 steps below, then modify brand rules per references/tvc-mode.md, add product assets and product shots, change delivery specs.
Short Film ModeOver 60 seconds, story-driven short films, micro-films, short dramas, narrative music videos.Do not follow the single-file workflow below; follow references/short-film-mode.md: first produce an outline (synopsis, scene breakdown, character costume table, assets), then user confirms before writing scene by scene.

If unsure (e.g., "make a 90-second brand story"), ask in the step 0 questions together. Regardless of mode, video prompts follow the same standard (video-prompt-standard.md + samples), and character three-view sheets use the character-sheet template.

Step 0: Gather Requirements (Ask Only Missing Info, All at Once)

First infer from the user's words and context. Only ask the following when something cannot be inferred and would clearly change the result – ask all at once using AskUserQuestion (max 4 questions, option labels in Chinese or Chinese-English pairs), do not ask one by one:

Key ItemAd Mode DefaultTVC Mode DefaultShort Film Mode Default
Duration15 seconds30 seconds (plus a 15-second cut-down)5 minutes
Aspect Ratio9:16 (1080×1920); 4:5 cropped from centre16:9 (1920×1080, can output 3840×2160)16:9 (1920×1080); ask if going to short-video platforms
Visual StyleRealistic live-action look, characters are AI-generated original facesSame as leftSame as left
PlatformFacebook / Instagram feed, understandable on silentTV + video site pre-rollVideo sites / social platforms, with dialogue subtitles
Number of Characters & Character DirectionInfer minimum number from storySame as left2–4 main characters; ask if direction significantly affects result
Brand & Compliance RestrictionsNo brand exposure, no real car logos/trademarks/licence plates; accidents only show property damageOwn brand can be shown; no other brands appear; comply with advertising laws and platform guidelinesNo brand exposure; violence/injury handled according to platform standards
Product—Real product photos required (ask user for them)—
Dialogue LanguageEnglish dialogue with Chinese translationSame as leftAsk user; default English dialogue with Chinese subtitles
Video ToolSeedance 2.0 All-in-Reference mode; image generation with Nano Banana ProSame as leftSame as left
Production MethodAll AI-generated, no live shooting; non-AI materials are only user-provided app screenshots (material frames) and licensed voiceover; characters can show faces but only act, not give testimonials to camera – all voiceover is off-screen; first-person stories include a "Dramatization" label.Same as left (product appearance uses real photos)Same as left

At the start of the production package, list the adopted defaults in a single line so the user can modify them.

Step 1: Script (Part 1 of the Production Package)

  • Start with: name (underscored English, e.g., rider_rain-night_reroute_15s), specs (duration, number of shots, aspect ratio), visual style, characters, one-sentence story summary.
  • Before the shot list, write ## Story: 3–5 plain Chinese sentences describing what the piece is about (who, what situation, what they encounter, how it's resolved, ending) – no shots or technical terms; below it, a line **What to convey:** ... followed by --- separator. Someone who hasn't seen the script (e.g., a manager) should understand the piece after reading this section.
  • The story must have real-world basis: Every story and scene must be backed by a real case or verifiable real location (news, law enforcement records, regulations, well-known places); do not fabricate plots that real users would immediately spot as fake. Before proposing a story, check it (search if unsure); verify numbers like fines, amounts, frequencies before writing. Under the "Story" section, add a paragraph **Real-world basis:** ... (what happened, where, how common roughly). Do not name specific places in the ad visuals. If no basis is found, say so directly, change angle, do not force it. Check user-provided reference images against reality; point out inconsistencies.
  • Hook in the first 0–2 seconds: For pain-point / story-driven ads, show the protagonist's pain or loss (accident, fine, wasted time, trapped) in the first 0–2 seconds. For functional ads, if there is a natural hook (stop sign, failed inspection, low fuel), place it at the very beginning. After writing or revising, check the 0–2 second segment.
  • Viral structure is not the default template: Use the user's viral reference only for its corresponding piece; for other pieces, start from story-driven structure, borrow a technique (facial reaction in first 3 seconds, consequence labels instead of amounts, quick cuts) only where appropriate, and note it in the plan.
  • Fixed columns for the shot list: Shot | Time | Visual | Subtitles / Sound | Material. Add a Line column for multiple storylines.
    • Time precise to 0.1 seconds, continuous, sum equals total runtime.
    • Visuals describe visible actions and shot types, one shot per row.
    • Dialogue and subtitles: English(Chinese translation), indicate who speaks.
    • Material column indicates source, and categorises each visual element per references/post-minimization.md: AI (V2 Sh3) · On-screen text generated (A), W1 title card (B), CapCut: Reverse + VHS effect (C), UI-1. Don't leave for post-production what can be generated.
  • 15-second ads must be concise: A maximum of 6–7 segments (including app screen and end card); each AI shot at least 2 seconds, no 0.5–0.7 second quick cuts; the duration of each generated clip equals the sum of its constituent shots, use exactly what is generated – no trimming and extracting segments in CapCut; time budget reference: hook 0–2.5s, story 2 shots of ~2s each, app operation screen 3.5–4s, end card 2s (overlaid on last AI shot); no more than 3 title cards, total dialogue and narration not exceeding 25 English words; no dual-line cross-cutting or split-screen in 15s clips.
  • Above the shot list, add a line for post-production workload: Post-production: CapCut x steps (of which y steps reuse series templates), W images z.
  • Below the shot list, write a Brand Risk checklist: sorted by High / Medium / Low, each item formatted as - **Level · Risk Point:** Specific handling method. Common risks: accidents and injuries; packaging subtitles looking like app interface; directional/numerical inconsistencies; exaggerated claims; unverified data; phone use while driving; app screen text deformation in generation; characters resembling real celebrities; face + first-person narration like real testimonial; story without real-world basis; exposure of real brands; platform policies (before/after comparisons, exaggerated promises).

Step 2: Consistency Anchor (Part 2)

For each character, vehicle, prop, and scene, define a fixed name and a fixed description – reused verbatim in all subsequent prompts.

  • Character: - **Fixed name:** Locked via C1 three-view sheet. Age, ethnicity, occupation, body type, signature clothing.
  • Vehicle/Prop: Colour + type + key structure + "no logos/brands/text".
  • Scene: Location + key structure + time + lighting.
  • Add a Time Lighting / Colour Grading line: what light and colour tone for each storyline or time segment.

The fixed name must be specific enough to avoid confusion, e.g., "White long-nose truck" "Yellow raincoat rider", not "car" or "he".

Step 3: Output Table (Part 3)

Header: Number | Type | Aspect Ratio | Covers Shots | Description. Numbering rules:

  • C1… Character three-view (16:9)
  • T1… Vehicle multi-view (16:9, vehicles are props but numbered separately as T)
  • P1… Prop image (16:9)
  • E1… Environment image (16:9)
  • PR1… Product reference image (TVC mode only, use real product photos)
  • W1… Finished image: title card, end card, lower third (post-minimisation category B)
  • V1… All-in-reference video (final aspect ratio)
  • M1… Material frame: user-provided app screenshot, bound into video generation; VO-1… Voiceover (if any)
  • Do not plan full app screen recordings to be spliced in CapCut.

Do not include items like G (multi-grid), K (keyframe), F (end frame).

Step 4: Character Three-View Prompts (Start of Part 4)

Strictly follow the character-sheet skill's fixed template, verbatim, only replacing brackets. Key points (see that skill for full details):

  • Face described in fixed order: face shape → forehead/hairline → brow bone → eyebrows → eyes → crow's feet → forehead wrinkles → nose → mouth → nasolabial folds → jaw → beard → hairstyle → distinguishing feature → skin tone and pores.
  • Each character has only one distinguishing feature, unique across characters.
  • Style section only changes the eyebrow line, followed by three lines: Skin texture detail / Hair detail / Clothing texture, each written independently per character.
  • Do not write shallow depth of field or blurred background. Keep "Original face, does not resemble any real celebrity." and "No brand logos or text on clothing or hat."
  • Aspect ratio 16:9, filename C-<number>-sheet.png.
  • If the story includes uniforms, helmets, raincoats, etc., write them into the clothing line and note no logos.
  • Characters can show faces with normal camera angles – no forced back shots or POV; faces are only for acting, not for testimonial-style lines to camera; voiceover is off-screen.

Step 5: Vehicle, Prop, and Scene Asset Prompts (Second Half of Part 4)

Use the three templates from references/asset-prompt-templates.md, title format ### T1 · Vehicle Name Multi-View. Common rules:

  • Start with "High-definition realistic photography quality, 8K, vehicle concept sheet / prop concept sheet / environment concept art."
  • Vehicles, props: plain light grey studio background, multiple views arranged in one frame (vehicle: front, side, 3/4 front, rear; prop: front + installed/usage state + key action state), proportions and details consistent.
  • Scenes: describe location, structure, left/right positions, things needed for later shots (fork, puddle, sign position), time lighting, composition – no characters or vehicles (unless they are permanently parked/scenic elements).
  • Signs, stickers, short text and numbers on vehicle body (Category A) are printed directly on the asset image, output as "text version + blank spare version" – see post-minimization.md Section 2; phone and app screens in asset images are written as "black screen" or "display content blank", the interface is bound via material frame screenshot in video generation.
  • Packaging text, data cards, end cards, lower thirds (Category B) are output separately as W images – see post-minimization.md Section 3.
  • End with "Real... photography, not CG." "No brands, no text except specified text." (if no specified text, write "No text or brands.")

Step 6: Video Prompts (Part 5, Core)

First read references/video-prompt-standard.md and references/gold-video-prompts.md – align structure, detail level, lighting depth, colour sentences, and negative prompts with the samples.

  1. Group by edit points. Each generated clip starts at an edit point and ends at an edit point, consisting of complete shots; generally 10–15 seconds; do not split a single shot across two clips, do not let generation stop mid-action. Detailed rules in video-prompt-standard.md Section 2. CapCut operations (reverse, split screen) and W images (title cards, end cards) are not included in video prompts; app operations and screen changes must be written into video prompts (see hard rules below).
  2. Duration: Each clip must be exactly 4 / 5 / 6 / 8 / 10 / 12 / 15 seconds. Adjust shot durations so the sum equals the clip length – use exactly what is generated; the last shot's action finishes about 0.5–1 second early, then write "hold".
  3. Reference images: Max 9 per clip, recommended 4–6, only upload those actually used. Write upload order separately, numbering from @Image1.
  4. Each clip in a code block, internal order fixed:
    1. Opening line: total duration, number of shots, time of each hard cut and what comes next.
    2. Colour sentence (~60–80 characters, automatically assign film style per content – see video-prompt-standard.md Section 3.2): "Cinematic realism, ARRI Alexa (film/natural) colour, colour tone referencing [Film Name]...: highlights..., midtones..., shadows..., sky..., skin..., overall... Pace..."
    3. Reference binding: Each line Fixed name: @ImageN, lock...; Each @ImageN appears only once here.
    4. Spatial fixing: Route/axis, left/right positions of each object, direction of travel, left/right-hand drive, who sits where, what does not exist.
    5. Time blocks (action-driven): Each block is a paragraph, with character action as the main thread, written by beat; shots only specify shot type, camera position/height, one type of movement; end with "Shot ends on...". Focal length, composition ratio left to model. See video-prompt-standard.md Section 3.5. Always use full fixed names.
    6. Continuity (character and action continuity): one body per person, which hand does what, same prop, action happens only once, direction consistent, no text on screen.
    7. Lighting: First write overall lighting for the clip, then per shot write: light source position and angle, colour temperature K, hard/soft, light ratio, exposure choice, Tindall light location and cause, facial lighting (Rembrandt/butterfly/loop/split/rim), catchlight, practical source, colour grading.
    8. Sound: Write ambient sounds and Foley by second; dialogue writes original English line, time point, voice profile (age, gender, accent, tone, volume, position), add "Only say specified dialogue, do not read Chinese translation"; end with "No narration, no music, no subtitles" (as needed).
    9. Negative prompts: Clip-specific items + universal items.
  5. Hard rules:
    • Higher completion rate: one main action per shot, one type of camera motion; stagger actions when two characters move; a single shot no shorter than ~1.5 seconds; a clip no more than ~5 shots; adjacent shots distinctly different in shot type or camera position; avoid first-person POV (cockpit view, windscreen view) – use external fixed positions, over-shoulder, or low external angles; avoid cross-handing, fine finger movements, multi-person physical contact, rapid orbits, mirror reflections, text in motion.
    • No metaphors or conceptual words ("opens like a can", "like...", "as if", "resembles"). Write which part, how it deforms, size (metres/centimetres), speed (seconds), final shape, any secondary motion.
    • Do not write {{Mixed N}}, reference image N, do not use @ImageN in the body text.
    • Do not use "car", "he", "she", "that vehicle" for anchored objects – always write the full fixed name.
    • App screen written into video prompts: finger taps, buttons, screen transitions are all generated; screen content bound to user-provided screenshots.
      • In the output table and a separate section "Material Frames (you provide)", list M1, M2…: filenames (ui/<collection name>-m1-<screen>.png), what should appear on screen, status bar time, privacy requirements, which V and which image they are used for, fixed name for binding.
      • In each V's upload order, mark 【Material frame Mx】; the binding line: <Screen name>: @ImageN, lock screen layout, text, button positions, font unchanged.
      • In the time block, one thumb, one tap per beat, screens switch in order; negative prompts include garbled screen text, extra fingers, screen glare.
      • No phone home screen or tap-to-open app icon: when the character picks up the phone, use the body (shoulder, arm) to block the screen for ~0.3 seconds; when revealed, it's already the app launch page; the launch page screenshot is M1.
      • User-provided screenshots are design drafts: check against story for car model, date, amount, status bar time, real merchant names – if inconsistent, label "suggest recapture"; after receiving, store in <collection>-production/ui/ with material frame filenames.
      • Add to brand risks: screen text deformation; fallback is to use real screen recording.
  6. The video section starts with: grouping table (V# · duration · constituent shots with individual durations · start/end edit points), applicable tools and duration options, number of images per clip, four writing conventions (see package-template.md). Below each code block, a line for post-production notes (which seconds to use, last frame freeze, etc.).

Step 7: Material Frames / Voiceover List (Part 6, Include Only If Any)

  • Material frame table header: Number | Filename | Screen Content | Used in Which V. Keep screen content consistent with direction, numbers, exit numbers in the piece; write screenshot requirements (portrait, status bar on the hour, notifications off, personal info hidden).
  • Voiceover: which line, who speaks, voice profile – require "licensed voice actor or authorised synthetic voice", write filename.
  • If none, write: "No material frame screenshots or voiceover required for this piece."

Step 8: CapCut Operation Checklist + Pre-Launch Checklist (Parts 7 and 8)

  • Part 7 title: "CapCut Operation Checklist", header: Time | Material | CapCut Operation. In final timeline order, write clearly which segment from which V, which W image to place, where to click in CapCut (see post-minimization.md Section 4). Do not write vague instructions like "process later"; anything that can be done in generation or via W image should not appear in this table.
  • For operations repeated across episodes in a series (rewind, lower third, title card style, end style, transition sound), mark as "series template" and write one line "This episode reuses: ...".
  • Pre-launch checklist: - [ ] items, each brand risk item should have a corresponding check; plus: character consistency, no brand/no text, direction consistency, data source, voiceover rights, CTA wording.

Delivery (Three Places, Different Content)

LocationContent
Local production package (markdown file)Complete content, including all prompts.
Chat replyPrompts displayed only in chat: each prompt in its own code block, in order of image generation and video generation, for easy copying; plus a brief Chinese explanation of adopted defaults, how many video clips were split, what user needs to provide (material frame screenshots, data, voiceover).
Shared location (Notion, web page, online document)Team version, no prompts included.
  1. Local production package: Ad mode and TVC mode as a single markdown file, filename <project name>-script-and-production-package.md, placed in <project name>-production/ under the current working directory. Short film mode: in the same folder, place 00-outline.md, scene01-<name>.md..., 99-editing-and-delivery.md, delivered in batches (see references/short-film-mode.md).
  2. Sync to shared location only after user consent: if the user uses Notion (Notion page appeared in conversation, or Notion tool available and user mentioned it), ask once about syncing – do not write directly.
  3. Team version rules:
    • Include only: title and specs, story, script, brand risks, consistency anchors, output table, material frames/voiceover list, CapCut operation checklist, pre-launch checklist.
    • Remove all prompt code blocks and any references only related to prompts (upload order, writing conventions, video grouping table).
    • After removal, renumber sections.
    • Do not mention "prompts" at all: do not write "(non-prompt)", "full prompts at...", "prompts in local package"; when linking to the package, use its title.

Pre-Delivery Self-Check (Review Every Time, Fix Before Proceeding)

  • Full text in Chinese, all English followed by Chinese translation.
  • Shot list preceded by a "Story" section: 3–5 plain sentences + "What to convey" + "Real-world basis"; numbers verified.
  • 0–2 seconds has a hook (pain-point type shows pain/loss, functional type places natural hook first); viral structure not used as default template.
  • Characters show faces only for acting, no testimonial to camera; voiceover is off-screen.
  • App screen written into video prompts: material frame M list, upload order marked 【Material frame】, binding line locks font; no phone home screen and tap icon; no full screen recordings.
  • Prompts pasted one by one in chat; team version synced to shared location contains no prompts and does not mention "prompts".
  • Shot list times continuous, total matches; each AI shot in material column points to a specific V segment, and that segment is indeed written in that V.
  • No G/K/F keyframes, no multi-grid prompts.
  • Character three-view templates followed verbatim, only one distinguishing feature, three detail lines complete, no shallow depth of field.
  • Asset images have no brands; only Category A specified text – both text version and blank spare version provided; phone/app screens are blank.
  • Every visual element categorised as A / B / C; W images given verbatim; CapCut operation checklist specific to where to click.
  • For videos with Category A text, binding locks text, time block writes "font unchanged", negative prompt modified to "any text except specified".
  • Each V: duration in 4/5/6/8/10/12/15 interval; starts at edit point, ends at edit point; shot durations sum exactly to clip length; images ≤9; upload order written separately starting from @Image1.
  • Each V has: opening line, colour sentence, reference binding, spatial fixing, time blocks, continuity, per-shot lighting, per-second sound, negative prompts.
  • Time blocks driven by action, include shot type, camera position/height, one type of movement, end with "Shot ends on..."; single shot ≥~1.5 seconds, a clip ≤~5 shots.
  • @ImageN appears only in binding section; body text uses full fixed names; no metaphor words (search for "like", "as if", "resembles", "similar to").
  • Dialogue includes voice profile and "Only say specified dialogue, do not read Chinese translation."
  • Direction, numbers, names consistent across script, prompts, material frame screenshots, post-processing, checklist.
  • Every high-risk item has a corresponding handling in post-processing and checklist.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Related Skills