Communitygithub.com

lhaovo/short-video-skills

为视频生成准备可用的图——把资产清单变成能直接喂给图生视频的素材:排生产顺序、定资产级别、出候选图、做一致性验收、按编号落盘、回写清单状态。支持三种来源:实拍、AI 生成、官方素材,不强制实拍。当用户说「准备素材」「出资产图」「首帧图」「角色三视图」「产品图跑一下」「资产对不上」「这条要哪些图」时使用。只管把图做出来并验收,不写分镜,不直接生成视频。

short-video-skills 是什么?

short-video-skills is a Claude Code agent skill that 为视频生成准备可用的图——把资产清单变成能直接喂给图生视频的素材:排生产顺序、定资产级别、出候选图、做一致性验收、按编号落盘、回写清单状态。支持三种来源:实拍、AI 生成、官方素材,不强制实拍。当用户说「准备素材」「出资产图」「首帧图」「角色三视图」「产品图跑一下」「资产对不上」「这条要哪些图」时使用。只管把图做出来并验收,不写分镜,不直接生成视频。.

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lhaovo/short-video-skills/tree/HEAD/short-video-assets

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Asset Preparation Station

Whether video generation can proceed hinges on this step. The only problem to solve is this: make sure the same thing in every picture is the same thing.

The input is an asset list (or storyboard), the output is a batch of images named by ID, directly referenceable as first frames by short-video-generate.

It does not write storyboards, cut segments, write video prompts, or generate videos. It handles the 'image' phase.


I. Four Cardinal Rules

  1. Anchor first, then derive. Do not make an angle shot until the master is set. Angle shots grow from the master; if the master is wrong, the entire group is wrong.
  2. Change only one variable at a time. If you change the angle, do not change the light. If you change the light, do not change the angle. Changing two at once makes it impossible to tell which caused a problem.
  3. Candidates are added, never overwritten. v1, v2 coexist. The chosen version is written into the work order. Generation is probabilistic; deleting an old version is like deleting a safety net.
  4. Images and the list must match. The ID is the filename. If the list has PR-01, the directory must have PR-01_*.

II. Asset Grading (Three Levels)

Not every image deserves equal effort. Grade first, then allocate resources.

LevelWhat It IsExampleRequirement
AnchorIdentity benchmark for the whole film, referenced multiple timesProduct hero shot, character three-view, main scene wide shotStrictest: multiple candidates, itemized validation, no changes after finalization
DerivedAngles, states, or details growing from an anchorProduct back view, open state, hand close-upMust be compared side-by-side with the anchor
One-OffAppears only once, doesn't affect consistencyEmpty shot, light effect, transition assetPassable is fine; no need for multiple candidates

Wrong grading wastes time: Treating an empty shot as an anchor can stall a 30-second clip for three days; treating a product hero shot as a one-off means every subsequent segment will need a redo.


III. Sources: All Three Work, Choose by Use Case

SourceWhen to UseCaution
Live ActionHave the physical object, need accuracy, involves parameters or efficacyBest, but requires source material
AI GenerationNo physical object, fictional scene, atmosphere, handsMust lock geometry and print; use multiple candidates
Official AssetsHero shots, packaging images provided by the brandUse directly as anchor; most stable

Live action is not mandatory. For a purely AI-generated film, the entire set of assets can be AI-generated, as long as it's internally consistent.

A Risk That Must Be Stated Upfront

If this clip needs to announce specific parameters or efficacy (capacity, duration, ingredients, effect) to the audience, and the product in the image is AI-generated, then the image and the claim won't match—at best, viewers point it out in comments; at worst, it constitutes false advertising.

There is only one solution: If there's a claim, use live action or official assets for the product image; if there's no claim, just atmosphere or fictional content, AI generation is perfectly fine.

Just ask this question before starting, don't wait until the final clip is done.

How to Run AI Generation

Use the built-in scripts/kie_gen.py (KIE GPT Image 2) to submit, poll, download, and save by naming in one go:

# Text-to-image (resolution defaults to 1K, sufficient)
python scripts/kie_gen.py generate --prompt "…" --ratio 9:16 \
  --out 04-Assets/01-AssetImages/PR-01_ProductHero_v1.png

# Image-to-image: use anchor as reference
python scripts/kie_gen.py generate --prompt "…" --ref PR-01_ProductHero_v1.png \
  --out 04-Assets/01-AssetImages/S01_f01_v1.png

# Batch: read JSON task list (default 5 concurrent)
python scripts/kie_gen.py batch --tasks tasks.json --out-dir 04-Assets/01-AssetImages --dry-run
python scripts/kie_gen.py batch --tasks tasks.json --out-dir 04-Assets/01-AssetImages

Default resolution is 1K: these images will be resampled by the video model anyway; making the source larger doesn't preserve detail, it only increases failure rates. Specify --resolution 2K only when you need to upscale and crop separately (for a cover) or create a white-background master for reuse.

Batch runs 5 images concurrently by default. Generation takes 10–40 seconds; running 6 images serially is 3–4 minutes of pure waiting; 6 images with 5 concurrent takes roughly as long as the slowest image plus one round. If rate-limited (code != 200 or 429), use --concurrency 2, do not change the prompt because of rate limiting.

Four rules:

  1. Always run --dry-run to review the request body before the real run. A batch of 20 images with wrong parameters is 20 wasted submissions.
  2. API key only via environment variable KIE_API_KEY, never write it into scripts, task lists, or work orders.
  3. Generate and confirm style for anchors first, then batch derive. For anchor-level assets, reduce concurrency and review each one.
  4. Record the taskId in the work order so you can later look it up to regenerate the same image.

For syntax, parameter limits, and failure handling, see references/ai-generation.md.


IV. Seven-Step Workflow

1 Read List → 2 Order → 3 Grade → 4 Generate Candidates → 5 Validate → 6 Save to Disk → 7 Update List

Step 1: Read List

Read the ID, type, purpose, source, and referenced segments from 02-AssetList.md.

For assets without image prompts in the list, use the four category skeletons from references/prompt-fixups.md to fill them in; if they exist, use them directly, do not rewrite.

Step 2: Determine Production Order

Anchor → Derived → One-Off

Within the same level, order by how many times an asset is referenced. The more references, the earlier it's made. Reason: assets with many references, if redone, affect the most segments.

For multi-segment reuse locations where spatial continuity is important, split into two layers as needed:

  1. Spatial Structure Master: No people, no action. Locks floor/wall materials, window displays and architectural volumes, fixed background structures, spatial depth relationships, and the main light source's origin and general direction in the scene. Does not lock specific camera positions, shot types, characters, or temporary props.
  2. Camera Sub-Master: Derive the actual shots used (front wide, side close-up, top-down, low-angle, close-up, etc.) from the same space. First frames derive from the corresponding camera sub-master, avoiding the entire film inheriting the same perspective and composition.

Only create camera angles that will actually be used; do not enforce a fixed number for each space. Maintain spatial continuity with lighting direction, but determine whether daytime/dusk lighting versions are needed based on whether the story crosses time periods. The basic master should avoid baking in unnecessary strong time-of-day features. Validate representative camera angles side-by-side first, then batch-derive first frames.

Step 3: Grade

Assign a level (Anchor / Derived / One-Off) to each ID and write it into the work order. This step takes only one minute but determines how many candidates to generate later.

Step 4: Generate Candidates

LevelNumber of CandidatesExplanation
Anchor4–6Pick one for finalization, keep the rest as backups
Derived2–3Select after comparing with the anchor
One-Off1–2Use the passable one

Before generating, confirm three things: Is the aspect ratio correct? Is the background correct (white or scene)? Are there any unwanted elements (text, watermarks, hands)?

When using AI generation, first --dry-run to check parameters, then submit in anchor → derived order, in batches of 4–6.

Step 5: Validate

Go through the seven items from references/acceptance.md one by one. Pass six out of seven to keep an image; if a critical item (geometry, print) fails, it is immediately rejected.

Step 6: Save to Disk

04-Assets/01-AssetImages/
├── PR-01_ProductHero_v1.png
├── PR-01_ProductHero_v2.png   ← Backup, do not delete
├── SC-01_OfficeDesk_v1.png
└── CH-01_FemaleHand_v1.png

Naming format: <ID>_<Purpose>_v<N>.<ext>. The ID must match the list (keep status suffixes A/B), purpose is 2–8 characters, can be further divided with underscores, version increases incrementally.

Step 7: Update List

Change the list status to "Ready / Ready with Backup / Pending Supplement" and note the selected version in the work order. Without updating the list, the next step doesn't know which version to reference.


V. Maintaining Consistency

Multiple images under the same ID are aligned through four things:

  1. Same subject description: Copy from the anchor's prompt, do not change a word.
  2. Same lighting: Lock the main light direction and color temperature; do not change the light for derived images.
  3. Same frame and background: If it's white background, all are white background; if it's a scene, all are the same scene.
  4. Side-by-side comparison: Place two images left and right, look at geometry, color, print, and proportions.

Side-by-side comparison is the most effective technique. Looking at a single image feels fine; put them together and you might notice the cup rim is 2mm wider or the logo is one row higher.

For details, see references/acceptance.md.


VI. Self-Check (Can Run a Script)

python scripts/check_assets.py --dir <production directory>

Five criteria:

#CriterionLevel
A1Every ID in the list has a corresponding fileFatal
A2Filename follows <ID>_<Purpose>_v<N>Fatal
A3No orphan files in the directory that are not in the listWarning
A4Each image has a resolution with short edge ≥ 720Warning
A5Anchor-level assets have ≥ 2 candidatesWarning

Exit codes: 0 Pass / 2 Fatal items found / 3 Cannot read directory.


VII. Boundaries

  • No storyboard writing: Asset requirements come from the storyboard and list; this skill does not change the content itself.
  • No video prompt writing: That's an upstream task; this skill only fills in image prompts.
  • No video generation: Only handles static images.
  • No replacement of human judgment: Validation criteria are provided, but a human ultimately decides whether an image is usable.
  • No guarantee of first-time correctness: Generation is probabilistic. This skill guarantees: candidates exist, validation was performed, and versions are tracked.

VIII. Reference Materials

FileWhen to Read
references/production.mdWhen ordering, grading, generating candidates, saving to disk, and updating the list
references/acceptance.mdWhen validating, comparing side-by-side, or rejecting and redoing
references/prompt-fixups.mdWhen the list has no prompt, or an image repeatedly turns out wrong
references/ai-generation.mdWhen using AI generation: parameters, syntax, batch, failure handling
assets/asset-production-sheet.mdWhen creating a work order before starting, and updating status upon delivery
assets/batch-tasks-example.jsonExample task list for batch generation
scripts/kie_gen.pySubmit, poll, download, and save by naming
scripts/check_assets.pyRun once before delivery

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

lhaovo/short-video-skills

一条短视频从策划到发布的流程总控:建制作目录、依次走「剧本分镜 → 提示词 → 生成 → 交付 → 发布」五段、每段设门禁、记录流程状态、支持跨会话续做。当用户要开一条新片子、问「下一步做什么」、想接着做某条没做完的片子、要把分镜变成提示词、要整理素材与成片、要准备发布包时使用。本技能只规定流程、目录与产物标准,不重复各环节的写作规范。

lhaovo/short-video-skills

把已过 G2 的生成清单落成真实视频片段——按段建 KIE Seedance 任务、轮询、下载、媒体体检、抽帧质检、听声核台词,并把每段的状态与请求指纹写进生成台账。三种模式互斥(文生 / 首帧图生 / 首尾帧图生)。旁白由模型直接念,台词照稿写进提示词,不走独立 TTS 配音。当用户提到视频生成、出片段、跑 Seedance、首帧图生、首尾帧、原生音频、台词念错、任务查询、片段下载、生成失败重试时使用。只管「把已定的画面和台词变成成段素材」,不重新设计视觉、不改台词文本、不做字幕、不做剪辑。

lhaovo/short-video-skills

把「我想拍点什么」变成一条想清楚的片子——先定主题(出 5 个候选、标明类型、给出推荐与淘汰理由),再定结构与分段剧本,最后切成镜头级内容分镜。支持两种入口:一句话主题(需要发散选题)与已有拆解剧本(跳过选题,先问复刻需求与复刻强度再判定改写)。当用户提到选题、定主题、短视频策划、写剧本、写大纲、分镜、镜头脚本、不知道拍什么、内容怎么排、科普干货、剧情软广、钩子怎么写、复刻别人的剧本时使用。只管内容层(讲什么、怎么讲),不碰执行层;内置的内容红线只防明显自伤,不替代合规审查。

lhaovo/short-video-skills

把已定稿的分镜表翻成可直接执行的两份清单——资产清单(要准备哪些图、每张图的图像提示词)与生成清单(每段视频的时长、模式、素材引用与提示词)。覆盖画面化、资产编号、切分生成单元、Seedance 视频提示词写法、首帧方案、一致性与失败诊断。当用户说「把分镜变成提示词」「写视频提示词」「这条片子要哪些图」「生成清单」「某个镜头生成不出来」时使用。只做翻译与清单,不重新编排内容,不直接出图出片。

相关技能