SuperAPI AI Directory

product-video-ad

Marketing & growth

View repository

Updated 10-15 22:19

About this skill

product-video-ad — Product short-video ad

From selling points to finished video: write the storyboard → generate shot by shot → stitch → add subtitles.

Division of labor with main-image-video : that one is a 3-second single shot for the main image slot, this one isa complete ad made of multiple shots linked together, 15–30 seconds, for ad traffic.


1. Capability boundaries

Can do Description
Storyboard script Selling points → shot sequence, including duration, visuals, subtitles
Shot-by-shot generation Each shot is generated independently; if one fails, only rerun that one
Automatic stitching ffmpeg strings them into a finished video; automatically re-encodes when encodings differ
Subtitles Automatically generate SRT based on storyboard durations, burn in or mux
Brand consistency --brand keeps color tone and camera movement consistent across the whole video
Cannot do Description
Voiceover and music The script provides copy; use editing software for voiceover and music
Precise beat sync Generation model durations are in tiers; for syncing to music beats, adjust in post
Live-action talking head Use ugc-testimonial

2. Storyboard structure

A general skeleton for a 15-second product-selling video, four segments:

Segment Duration What it does Visuals
Hook 0–3s Make people stop Strongest visual impact: usage scenario, pain-point comparison, unexpected angle
Selling points 3–9s Explain clearly why to buy 2–3 close-ups, one selling point per shot
Scenario 9–13s Make people relate Real usage scenario, model or environment
Closing point 13–15s Give a reason to act Full view of the product + price/discount subtitles

One shot conveys only one thing. If one shot is stuffed with two selling points, neither will be remembered.


3. Storyboard file

{
  "shots": [
    { "id": "s1", "seconds": 3, "image": "docs/flat-lay/example-output.jpg",
      "prompt": "Slow push-in on the model wearing the olive cable-knit sweater, cold morning light, breath visible.",
      "caption": "零下十度,只穿了这一件" },
    { "id": "s2", "seconds": 3, "image": "docs/flat-lay/garment-flatlay.jpg",
      "prompt": "Macro pan across the cable knit texture, fibers catch the light.",
      "caption": "粗棒针织,三层锁温" },
    { "id": "s3", "seconds": 4, "image": "docs/flat-lay/example-output.jpg",
      "prompt": "The model walks through a city street, sweater moves naturally with the body.",
      "caption": "通勤、约会、周末都能穿" },
    { "id": "s4", "seconds": 3, "image": "docs/flat-lay/garment-flatlay.jpg",
      "prompt": "Product laid flat on light wood, slow top-down pull-back, clean and calm.",
      "caption": "现在下单立减 50" }
  ]
}

caption will automatically lay out the timeline and generate SRT by accumulating seconds , so you don't need to manually match timecodes.


4. Tool invocation

export DLAZY_VIDEO_MODEL=<你账号里可用的视频模型 ID>

node scripts/video.mjs --mode storyboard --task product-video-ad \
  --board examples/board.json --outdir out/ad --subtitles --brand examples/brand.yaml

# 先看计划,不计费
node scripts/video.mjs --mode storyboard --task product-video-ad \
  --board examples/board.json --outdir out/ad --dry-run

Output:

out/ad/s1.mp4 … s4.mp4     每个镜头
out/ad/captions.srt        字幕
out/ad/concat.txt          拼接清单
out/ad/final.mp4           成片
out/ad/final-sub.mp4       带字幕成片

If one shot fails, it does not affect the other shots—rerun that one, then stitch once manually.


5. Execution flow

  1. Ask for selling points first, don't write the storyboard directly. Ask the user: what is the main push, who is it for, which platform is it for.
  2. Write the storyboard for the user to confirm. Confirming in text is an order of magnitude cheaper than changing after generation.
  3. --dry-run Take a look. Confirm that each shot's prompt and reference image match.
  4. Run. Generate shot by shot; supplement failed ones individually.
  5. Check the finished video. If unsatisfied, change a single shot and rerun it; don't redo the whole thing.

6. How to write prompts

Each shot follows:Camera movement + subject + environment + fidelity constraints

<Camera move>. <Subject action>. <Environment>.
Keep the product identical to the reference image.
No text overlay in the frame, no watermark. Photorealistic, cinematic.

Key:No text overlay in the frame。 Subtitles are added in post-production. If you let the model draw the text itself, it will inevitably come out garbled.


7. Common Issues

Symptom Cause What to do
The product is inconsistent between shots Each shot is generated independently, so the model draws each one differently Pass the same product reference image to all shots, and use --brand
The picture jumps after concatenation The encoding parameters differ between shots The script will automatically re-encode as a fallback; if it still jumps, unify the dimensions of each shot
The subtitles were not burned in ffmpeg was not built with libass The script automatically falls back to a soft subtitle track, which the player can toggle on and off
ffmpeg is not installed — The clips are still generated as usual; use the output concat.txt to concatenate them afterward
The final video is too long The total duration of the storyboard shots exceeds the limit 15 seconds is the safest for ad creatives; beyond 30 seconds, the completion rate drops noticeably

Tips

  • The first 3 seconds decide everything. It is worth generating several versions of the hook shot and picking one.
  • Write subtitles in colloquial language. "At minus ten degrees I only wore this one piece" is far more effective than "premium warm fabric."
  • Vertical 9:16. Ad creatives are almost all vertical; generate them in vertical format from the start, and do not crop them afterward.