阶段 4 · 多模态广告素材生产
产品链接上线后,用文生图 / 图生图 / 图生视频 / 配音等模型批量产出符合产品定义与目标市场习惯的广告素材。核心是前三秒留存:前 3 秒留不住人,后面拍得再好也没有播放机会。
四步走。第零步和第一步可以省(赶时间就直接出分镜),但每换一个品类、或每过两周,重跑一次第一步:
| 步骤 | 解决什么 | 用什么 |
|---|---|---|
| 第零步 · 定形态 | 这条素材该做成实拍 / 数字人 / AI 生成 / 混剪 / 素材库 / 图文 | creative-stack.md |
| 第一步 · 挖钩子 | 这个周期什么样的开场留得住人、该市场在用什么词 | hot_hooks.py + hook-sampling.md |
| 第二步 · 出分镜与提示词 | 落成可投产的分镜、提示词、字幕与口播稿 | video_brief.py |
| 第三步 · 可选直连出片 | 把提示词交给用户选定的视频生成大模型 | video_render.py |
参考文档:creative-stack.md 形态判定与外部能力红线;video-production.md 分镜骨架、前三秒检查项、多语种细则与生成侧;hook-sampling.md 采样口径(给采集的人看)。
输入
- 产品表:SKU、投放市场、类目、目标人群、卖点、证明材料、CTA 利益点、售价、币种、目标语种。
- 市场风格库:站点 → 语种、平台、节奏、画面风格、出镜者、场景、调性、禁忌元素、语速上限、来源。地区人群与媒体风格一律取自这张表,本技能不编造地区习惯与平台偏好;缺哪个市场就标
high。 - 钩子模板库:钩子编码、类型、首帧要求、口播模板、字幕模板、留存说明。
- 禁用词表 / 动作词表(可选):合规禁用词、首帧可用动作词。
- 爆款采样表(可选,跑周期热词才要):平台、站点、语种、类目、前 3 秒台词、表现数据、作品、采集日期。空白模板用
hot_hooks.py --template 采样表.csv下,填法见 hook-sampling.md。
怎么跑
前三步都只做本地确定性计算,不调模型、不花钱。
第零步 · 定素材形态
不跑脚本,按 creative-stack.md 的顺序问一遍:有样品有出镜人吗 → 要口播没人出镜吗 → 只缺场景空镜吗 → 手上素材只差换钩子吗 → 缺氛围 B-roll 吗 → 平台是不是刷图文的。
形态决定成本、周期与能上的平台,选错最贵;定完还要看它的合规红线(数字人标注、声音克隆授权、换脸默认不做)。
第一步 · 挖本周期钩子与热词
python3 scripts/hot_hooks.py viral_samples.csv \
--hooks hook_patterns.csv --products products.csv --top 3 \
--out hot_words.csv --out-xlsx hot_hooks.xlsx --out-md hot_hooks.md \
--out-json hot_hooks.json --quarantine hot_hooks_issues.csv
产出四张工作表:套路排行(本周期该先抄哪个套路)、热词表、钩子候选(套路 × 产品 → 口播字幕,可直接追加进钩子库)、问题清单。
- 归类逐条留痕(问句、否定词、价格线索、对比词、人群自称、痛点词、场景词);一条台词命中多个套路时全部记录,主套路按固定优先级选——反常识 > 价格锚点 > 悬念提问 > 对比测试 > 身份代入 > 痛点直击 > 结果前置 > 场景代入。
- 认不准不硬判:没命中线索的台词进「未归类」交人工并进
flags。让采集的人自己归一次最准,他看过原视频。 - 热词分两类:词典命中的类别明确可直接用,机器抽取的高频片段标成候选待确认。
{pain}只用该站点同期采样里出现过的原词,采不到就留{{待填:pain}},不跨语言乱填。 - 台词是别人的素材,只用来提炼套路与用词:不照抄原句、不搬画面、不盗 BGM。
第二步 · 出分镜与提示词
python3 scripts/video_brief.py products.csv --styles market_styles.csv \
--hooks hook_patterns.csv --banned banned_words.csv \
--duration 15 --ratio 9:16,16:9 --hooks-per-sku 2 --speech-rate vi=3.5 \
--out storyboard.csv --out-md brief.md --out-xlsx brief.xlsx \
--out-json brief.json --quarantine brief_issues.csv
--out-xlsx 给四张工作表:素材总表 / 分镜 / 语速预算 / 问题清单。
素材文案里的 {{待填:字段}} 是刻意留出的创意位,必须补齐再进生成队列,脚本不替你编造卖点与场景。完整参数表见 video-production.md。
第三步 · 把提示词接到视频生成平台(可选)
用哪个大模型由用户定,脚本只把提示词按该平台的参数名装进请求,跑完提交 → 轮询 → 取回成片 → 记台账:
python3 scripts/video_render.py --list-providers # 1. 看平台、默认模型与环境变量
python3 scripts/video_render.py storyboard.csv --provider ark --check # 2. 验凭据,不花钱
python3 scripts/video_render.py storyboard.csv --provider ark --print-request # 3. 看实际请求体
python3 scripts/video_render.py storyboard.csv --provider ark --max-clips 8 --confirm \
--outdir renders --out renders.csv --out-xlsx renders.xlsx # 4. 真跑
预置 12 个平台(含不联网的离线演示 mock),换平台只改 --provider。
不加 --confirm 一个请求都不发;--max-clips(默认 10)是花钱硬上限;已成功且成片还在的镜头默认跳过,不重复付费。首帧图用 --first-frame-dir 给目录(认 素材名_镜头号.png / 素材名.png)。--out-xlsx 给生成台账与按状态分表(失败行标红底)。逐平台注意事项、参数会变的声明、花钱与断点规则见 video-production.md。
分镜与检查项
固定五段,第一镜永远是 3 秒钩子:钩子 → 痛点场景 → 产品演示 → 证明 → CTA。同一 SKU 至少出 2 个不同钩子的版本,素材之间只变一个变量(钩子类型 / 卖点顺序 / CTA),否则测不出结论。
video_brief.py 自动跑十项检查(首帧主体、开场禁忌、前 3 秒动态与字幕、口播语速、字幕长度、语种一致、钩子类型、本地化、禁用词),逐条规则与失败后果见 video-production.md。
多语种适配
语种认短代码(vi-VN)、英文名、中文名与平台后台的原生写法(Tiếng Việt、日本語、ภาษาไทย)。口播长度按语种折算:中日韩泰等按字符,英西葡越等按空格分词;--speech-rate vi=3.5 或风格库的「语速上限」列可按市场覆盖。
换语种不只要翻译:配音口音、字幕断行与排版方向、数字与货币写法、落地页承诺都要一起本地化。中文草稿只做工作语言预检,按目标语种重写后必须重跑一次才有真实结论。细则见 video-production.md。
风险与人工边界
| 等级 | 本阶段场景 | AI 权限 | 人工权限 |
|---|---|---|---|
| 高 | 命中合规禁用词、市场风格缺失、前 3 秒口播讲不完、首帧踩开场禁忌、要用换脸或数字人但授权 / 平台标注没落实 | 只出判定 + 修改建议 | 终审后才进生成与投放队列 |
| 中 | 字幕超单行长度、文案未本地化、素材含待填创意位、产品表与风格库语种冲突、采样里超过三成台词没归到套路 | 出结论 + 风险标注 | 抽样复核 |
| 低 | 素材命名、分镜排版、批量组合、格式转换、采样表里的空行与重复行 | 直接执行 | 事后抽查 |
外部能力的红线按「一件事一判断」:肖像权(数字人、换脸)、声音授权(声音克隆)、音乐与素材库的商用范围、去水印成片的版权——任意一项没落实,素材不进投放队列;平台标注政策会变,不确认就按 high 交人工。
与钱有关的边界同第三步:选哪个平台、跑多少条由用户确认,不加 --confirm 绝不提交,放量前先用 --max-clips 1-2 验证。
常见坑
- 形态选错是最贵的错:花大价钱做数字人,结果这个品类用户只信真人实测。
- 把品牌介绍放开头、前 3 秒讲参数、一条视频塞 5 个卖点,是最贵的三种浪费。
- 拿 AI 生成的画面当钩子:前 3 秒是决定成本的位置,别用最不可控的形态占住它。
- 去水印解析下来的成片直接投:平台原创度判定会命中,轻则不过审,重则影响账号。
- 把采样到的台词原句当脚本用:要的是套路与用词,不是别人的原话。
- 一条视频生成多个镜头通常不可用;钩子与落地页承诺不一致,点击来了也不转化。
输出契约
与其他跨境电商技能共用同一个 JSON 信封,便于跨阶段串联与事后追责:
{
"task": "video_brief",
"status": "ok | partial | blocked",
"confidence": 0.0,
"data": {},
"flags": [{ "level": "high | medium | low", "type": "", "detail": "", "action": "" }],
"need_human_review": false,
"sources": [{ "ref": "", "as_of": "" }],
"assumptions": [],
"audit": { "snapshot_at": "" }
}
status:ok输入齐全 /partial有缺失但结论可用 /blocked关键输入缺失、必须人工先介入。- 只要出现
high级 flag,need_human_review必须为true。 confidence口径:有high不超过 0.7,有medium不超过 0.85,还有待填位不超过 0.9,上限 0.95。
交付表格
要表格就给文件,不要只给结论。 三个脚本共用同一组参数名:
| 参数 | 产物 |
|---|---|
--out |
CSV 主表(UTF-8 BOM,Excel 双击中文不乱码) |
--out-xlsx |
Excel 工作簿,每个脚本的表在各自小节里列了 |
--out-md |
Markdown 报告,给人读的结论版 |
--out-json |
JSON 信封,给下游脚本与工单系统读 |
--quarantine |
问题清单 CSV:被拦下的素材 / 未归类台词 / 未生成镜头,不静默丢弃 |
.xlsx 由 scripts/sheetio.py 用标准库写出,不需要 openpyxl,Excel 与 WPS 都能直接打开。hot_hooks.py --template 路径 可单独下空白采样模板(表头与脚本字段永远同步),不跑统计直接退出。
作业习惯
- 先要数据再下结论;能算就不要估,能引用就不要复述。
- 结论固定附「支撑数据 + 判定规则 + 边界/反例」三段,而不是只给一个数。
flags比结论更重要:写清「我不确定什么、为什么不确认、需要谁确认」。- 术语保留英文缩写(ROAS、ACOS、TACOS、PO、MOQ、FBA),其余用中文。
上下游
- 上游:
ecom-selection-profit定下要推的 SKU 与价格。 - 下游:
ecom-ads-plan按素材编号编排出投放结构与测试节奏(素材变量怎么设计见该技能),ecom-roi-review复盘素材维度的表现。 - 投流侧(出价、预算、止损)与总控共享约定见
ecom-ads-plan、crossborder-ecom-ops。