name: ai-video-ad-production description: AI 电商视频广告生产线:一条命令出带货短视频(产品锁 / 多引擎选型 / 官方真像素产品镜 / 自动装配)。One-command product ad video pipeline: product lock, multi-engine selection, official-pixel product inserts, auto overlay assembly. category: ecommerce
AI 生成带货短视频(真人剧情 / 口播)
When to Use
用户要"短视频 / 带货片 / 口播片 / 样片标准",或抱怨之前的成片"没有真实感、像图片拼接"时。 先做路径判断(见下),不要把素材拼接当成交付。
🚀 怎么跑(2026-09-18 起:一条命令出片)
整机 = scripts/make_ad.py —— 把原先散在 /tmp 的 6 个手工脚本串成一条命令,
后面所有零件脚本按需被它调用。
S=~/.hermes/skills/ecommerce/ai-video-ad-production
# ① 先看 prompt(免费、不提交;确认产品锁+分镜再花钱)
python3 $S/scripts/make_ad.py $S/templates/ad_project.hsq1.json --steps plan
# ② 全自动一条龙:提交→轮询→下载→抽帧核验→装配 30s/15s→交付桌面
python3 $S/scripts/make_ad.py $S/templates/ad_project.hsq1.json --steps all
# ③ 分段已下载,只重跑后期(改字幕/换旁白/重切 15s —— 不花钱,最常用)
python3 $S/scripts/make_ad.py <项目.json> --steps assemble,deliver
# ④ 只处理某几段 / 临时换 runid、分辨率
python3 $S/scripts/make_ad.py <项目.json> --steps fetch,verify --seg 3 --runid v24 --res 720P
每步都查退出码 + 产物存在/大小,不达标直接报 FAIL 原文并列出,不静默继续。
项目配置(templates/ad_project.hsq1.json 是可直接跑的真实样例,改它就能出新片):
| 字段 | 说明 |
|---|---|
model | 引擎(产品镜用 wan3.0-video;缺省 wan2.7-r2v 只适合纯人物戏) |
product | 指向产品档案 product_profiles.json 的键 —— 生图/视频共用同一份档案 |
refs | 参考图顺序 = 图1..图N,必须与产品锁模板里的图号描述一一对应;本地图自动 scp 到公网 |
segments | 每段分镜正文(只写"拍什么";产品锁由 make_ad 自动拼在前面) |
assembly.vo | 旁白(edge-tts);落点 = 字幕 start,天生对齐 |
assembly.subs/chips/spec/compliance | 字幕 / 花字 / 参数条 / AI 生成内容标注 |
assembly.cut15 | 15s 版:取哪几段、旁白切哪几刀、每个 overlay 在 15s 轴上的新时间窗 |
deliver | 交付目录 + 文件名(默认 ~/Desktop/电商素材/<产品>/视频/) |
产品锁(所有产品共用一份,别新建):templates/product_lock_head.txt + 档案里的 video_lock 字段。
"占比 ≤ 画面高 1/6、机头直径当尺子算 1.9 倍、底部端面是平的圆面、线沿轴线插、全程不直视镜头…"
这些血泪措辞都在那儿 —— 分镜里不要重复写,也不要手写新模板。
实测证据(2026-09-18):用 ad_project.hsq1.json 跑 --steps assemble,deliver 复刻出来的成片,
与 2026-09-17 当晚手工交付版 md5 完全一致(30s 86f3da96…、15s 0b67686b…);
--steps plan,submit,fetch,verify 单段冒烟测真实跑通(提交→轮询→下载→抽帧核验)。
零件清单(scripts/ 26 个,按用途分组)
| 环节 | 脚本 | 用途 |
|---|---|---|
| 整机 | make_ad.py | 一条命令出片(plan / submit / fetch / verify / assemble / deliver) |
| 生成 | videoretalk_submit.py / probe_model_availability.py / compare_video_models.py | 口型替换提交 / 模型可用性探针(提交成功≠可用)/ 同题多家模型横评 |
| 核验·产品 | product_fidelity_zoom.py / scale_consistency_check.py / scale_panel_check.py / measure_product_truth.py / check_reference_image.py / locate_reported_frame.py / audit_shots.py | 产品 2 倍放大 / 跨镜尺寸一致性 / 真值+成片读格面板 / 真机长径比真值 / 参考图体检 / 用户截图反查时间码 / 逐镜审计 |
| 核验·声音 | stt_dialogue_check.py / voice_consistency_check.py / voice_timbre_similarity.py / tts_fit.py | 台词 STT 反查(字幕落点来源)/ 换嗓检测 / 锁音色验证 / 配音调速对齐镜头 |
| 核验·画面 | verify_motion.py | 运动量检测 —— 判断成片是不是"静图贴图" |
| 后期 | assemble_r2v_overlays.py / build_vo30.py / overlay_anim.py / replace_segment_audio.py / gen_ass.py | 装配(支持 vo 整条旁白)/ 旁白轨 / 花字动画 / 替换段内音频 / ASS 花字 |
| 零失真路线 | build_official_product_insert.py / compose_official_material_ad.py / cutout_product.py / make_comp_cards.py | 官方真像素插入镜(产品镜首选,0 成本) / 官方物料动效成片 / 官方图抠透明 PNG / 合成卡 |
| 人物 | gen_character_candidates.py | 男主候选生成(一次出 3-4 个拼图给用户挑) |
路径判断(最重要 · 血泪教训;2026-09-19 重写)
| 路径 | 效果 | 何时用 |
|---|---|---|
① 产品锁 + wan3.0-video ✅ 当前主线 | 同 prompt 同 5 张参考图下产品一次就对、整段不掉金;真人生活情景。参考图=刀网微距/正面全身/真手比例/底部端面/男主 | 绝大多数带货片(有官方产品图、要求"产品像真机") |
| ② 官方真像素产品镜(0 API 成本) ✅ 产品保真终极解 | 产品 100% 等于真机(官方真像素,不经过 AI) | AI 总把产品画不像时;或片子里要让人一眼认出产品 |
③ 文生视频(wan2.6-t2v,台词走 input.audio_url) | 真人 + 场景 + 中文口型,但产品每段会变一点 | 无官方素材、或纯人物剧情 |
| ④ 素材拼接(clipforge / MoneyPrinterTurbo) | ❌ 用户判定="图片拼接、缺乏真实感、和样片差距很大" | 只当草稿占位,不得作为交付 |
| ⑤ 数字人对口型(wan2.2-s2v / EMO / videoretalk) | 单人口播,环境真实感弱 | 只要口播讲解 |
推荐组合:人物/生活场景镜 → ①;产品出现/特写镜 → ②。
成片结构 =「钩子 5s(AI)+ 官方真机 3s(真像素)+ 正片 7s(AI)」= 15s;
脚本 scripts/build_official_product_insert.py(裁官方图合成 3s 竖屏产品镜,字幕/花字整体 +3s)。
铁律:
- ❌
wan2.7-r2v做产品镜已退役(产品小/看不清/易洗成银白 = 反复返工根因),只留人物戏 - 生成一律 720P(原生 1080P 生成 = 重抽卡不是升级,实测产品变形/掉金/并不更锐)→ 成片由装配升 1080
wan3.0-video会把参考图1 当画面首帧(要控开场就换图1)- 用户给的"样片标准"若是真人剧情对话,不要断言"只能实拍"(用户明确纠正过:他的样片本身就是 AI 生成的)
- 素材拼接(④)永远追不上 ① 的真实感,别把它当成 AI 视频的交付;直接走 ①/②,用用户自己的台词和配音
备用路线配方:wan2.6-t2v(真人剧情片 · 产品会变)
完整参数、JSON、计费、配音托管、验片命令见 references/scene-drama-and-candid-style.md。
要点速览:
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesismodel=wan2.6-t2v,头X-DashScope-Async: enableparameters:size:"720*1280"(9:16) 或"1080*1920"、duration:5|10、shot_type:"multi"、prompt_extend:trueinput.audio_url:传我们自己写的台词配音(3~30s mp3/wav 公网 URL)→ 模型按音频做口型; 不传则模型自动配音效并自己编台词(不可控,卖点会跑偏)- 价格:720P 0.6 元/秒、1080P 1 元/秒;账号带 50 秒免费额度 → 首条 30 秒片可用额度 0 元跑
- 台词音色:edge-tts
zh-CN-XiaoyiNeural(年轻女)/zh-CN-XiaoxiaoNeural(阿姨)/zh-CN-YunxiNeural(男) - 提示词里用
第1个镜头[0-4秒]…第2个镜头[4-10秒]…描述多镜头;末尾加"画面中不要出现任何文字、字幕、水印"
标准生产流程
- 剧本:3 段 × 10 秒(或 6 段 × 5 秒):剧情钩子 → 产品出场 + 真实卖点 → 收尾 + CTA
- 配音:edge-tts 生成每段台词 mp3 →
scp yunvela:/tmp/→sudo mv到/opt/yunvela-site/dh/→curl -o /dev/null -w '%{http_code}' https://yunvela.com/dh/segN.mp3必须 200 - 生成:逐段提交(可并行),轮询
GET /api/v1/tasks/<id>,curl -sL --retry 3 --retry-all-errors下载 - 后期:拼接 + 花字(白字黑描边 + 黄色关键词框)+ emoji 贴纸 + BGM → 9:16 成片
- 验片(不许跳过):
ffprobe时长/分辨率/有无音轨 +volumedetect确认有声 + 抽帧拼图肉眼 + STT 反查台词(~/.hermes/scripts/voice_stt_local.py)确认说的就是我们的文案 - 交付:微信发大视频被 iLink 限流 →
~/.hermes/scripts/feishu_send_media.py <视频> "说明"
用户偏好(本项目内已确认)
- 🔴 产品特写别交给 AI——用官方真机图做动效(2026-09-15 实测结论):
AI 生成的人物剧情镜头里,产品每段都会"变一点"(本项目实测:同 prompt 下一段是等直径圆柱、另一段变成锥形杆+网头,
还会出现重复 logo)。正确做法:人物场景交给 AI,产品特写用官方产品图做 Ken Burns 缓慢推近
(
scale=1080:-1,pad=1080:1920:(w-h)/2:(w-h)/2:white,zoompan=z='min(zoom+0.0007,1.10)':d=<帧数>), 并把该段原配音接到官方图动效上(不断句)。这样产品 100% 与真机一致,也符合"产品必须真实融入"的甲方红线。 - 🔴 参考图两张必须"同向同形态":给 r2v 的 2 张产品参考图都必须是竖立视角(本项目实测:把一张"底面断面圆视图" 当参考图2后,模型把修长和圆胖平均,生成出矮胖杯状产品)。禁止混入俯视/仰视/断面图当参考。 参考图做法:裁到主体外接框 → 贴到白底方形画布、主体占画面高 ~60%。
- ⚠️ AI 会自己烧字幕:wan2.6-r2v-flash 即使 prompt 写"不要文字"也常自带底部字幕。 所以我方花字放顶部(Alignment=8 + 大 MarginV),别在底部再叠一层 → 否则双字幕重叠。
- 形制按真实尺寸算,不许目测(2026-09-15 实测教训):prompt 里的"高:直径"必须由官方尺寸算出
(HSQ1 = 74×39mm → 高:宽 1.93:1 修长圆柱;我曾目测写成"矮胖杯状 1.2:1",生成结果客户判"还是不准确")。
写法示例:
机身是修长圆柱形,高约74毫米、直径约39毫米(高度约为直径的1.9倍),黑色哑光缎面… - 话术口径铁律(2026-09-15 用户纠偏):台词/口播/花字只许引官方宣传物料原文(拉页图、主图上的字)。
❌ 属性表"卖点"字段 ≠ 话术(内部描述);❌ 参考样片/竞品片里听来的说法不得当话术(HSQ1 实测:禁用"鸡蛋大小");
🟡 尺寸类参照词(如"拇指高度")只能用于画面比例/对比物,禁入话术。
→ 写台词前先按
product-spec-extraction取话术口径,别凭印象写卖点。 - 效果优先(用户 2026-09-15 定):视频制作以效果为准,不为省钱牺牲观感
- 有产出必须主动汇报;长流程分段报进度,别等追问
- 设计阶段写全真实卖点,不因"没证据"删卖点(证明属投放阶段);极限词/功效只提示不拦截
- 成本敏感:免费额度/低价先跑通再放量;花钱前说明单价
相关技能
clipforge-video-pipeline:素材拼接方案(clipforge / MoneyPrinterTurbo)的完整配方 = 路径②, 含环境安装坑、逐镜头挂图、本地素材模式,以及 0 成本"真机动态片段库"
📚 知识库索引(8 篇总纲)
| 什么时候读 | 文档 |
|---|---|
| 产品长得不像 / 变形掉色 / 尺寸比例 / 刀网 | references/product-fidelity.md |
| 选引擎 / 模型字段 / 价格 | references/engines-and-models.md |
| 分辨率 / 计费 / 欠费排查 / 预检 | references/resolution-cost-and-arrearage.md |
| 整机流水线 / 装配 / 交付核验 | references/pipeline-assembly-and-qc.md |
| 完播率 / 钩子变体 / 投放指标 | references/hooks-and-ad-metrics.md |
| 配音 / 字幕 / 音色 | references/voice-and-subtitles.md |
| 肖像权 / 合规红线 / 参考图规范 | references/compliance-portrait-and-references.md |
| 场景剧情片 / 真实感拍法 / 分镜措辞 | references/scene-drama-and-candid-style.md |