# Ecom Video Creative

> 跨境电商多模态广告素材生产技能。三步：先定素材形态（实拍口播 / 数字人 / AI 生成 / 混剪 / 素材库剪辑 / 图文）与各自的合规红线，再按周期采样爆款前 3 秒台词、提炼黄金三秒的套路与热词、产出可追加进钩子库的候选，最后按产品定义 × 市场风格库 × 钩子模板库批量产出分镜脚本、文生视频/图生视频提示词（Seedance、Veo、Sora、Kling、即梦等）与配音字幕，并按前三秒留存法则逐条检查钩子强度、首帧主体、开场禁忌、字幕长度、口播语速与禁用词。支持英语、西语、葡语、越南语、日语、泰语、阿拉伯语等任意目标语种（内置 53 个语种）。提示词可直连用户选定的视频生成大模型（火山方舟、通义万相、可灵、海螺、Veo、Sora、Runway、Luma、Replicate、fal 等 12 个）出真实镜头片段，脚本负责组装请求、提交轮询、取回成片与记台账。涉及「这个品该做哪种素材」「最近什么样的开场容易火」「给这个产品出广告脚本」「前三秒怎么留住人」「数字人/混剪/去水印能不能用」「素材本地化到越南语/日语/泰语」「这个钩子行不行」「把提示词接到视频生成接口出片」这类请求时使用。

- Skill: `xianglouw/ecom-video-creative` (Agent Skill, multi-file: 17 files)
- Install (CLI): `npx skillmds@latest add xianglouw/ecom-video-creative`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xianglouw/ecom-video-creative/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: xianglouw (https://skillmd.com/u/xianglouw)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/xianglouw/ecom-video-creative

---


# 阶段 4 · 多模态广告素材生产

产品链接上线后，用文生图 / 图生图 / 图生视频 / 配音等模型批量产出**符合产品定义与目标市场习惯**的广告素材。核心是前三秒留存：**前 3 秒留不住人，后面拍得再好也没有播放机会**。

四步走。第零步和第一步可以省（赶时间就直接出分镜），但**每换一个品类、或每过两周，重跑一次第一步**：

| 步骤 | 解决什么 | 用什么 |
|---|---|---|
| 第零步 · 定形态 | 这条素材该做成实拍 / 数字人 / AI 生成 / 混剪 / 素材库 / 图文 | [creative-stack.md](references/creative-stack.md) |
| 第一步 · 挖钩子 | 这个周期什么样的开场留得住人、该市场在用什么词 | `hot_hooks.py` + [hook-sampling.md](references/hook-sampling.md) |
| 第二步 · 出分镜与提示词 | 落成可投产的分镜、提示词、字幕与口播稿 | `video_brief.py` |
| 第三步 · 可选直连出片 | 把提示词交给用户选定的视频生成大模型 | `video_render.py` |

**参考文档**：[creative-stack.md](references/creative-stack.md) 形态判定与外部能力红线；[video-production.md](references/video-production.md) 分镜骨架、前三秒检查项、多语种细则与生成侧；[hook-sampling.md](references/hook-sampling.md) 采样口径（给采集的人看）。

## 输入

- **产品表**：SKU、投放市场、类目、目标人群、卖点、证明材料、CTA 利益点、售价、币种、目标语种。
- **市场风格库**：站点 → 语种、平台、节奏、画面风格、出镜者、场景、调性、禁忌元素、语速上限、来源。**地区人群与媒体风格一律取自这张表，本技能不编造地区习惯与平台偏好**；缺哪个市场就标 `high`。
- **钩子模板库**：钩子编码、类型、首帧要求、口播模板、字幕模板、留存说明。
- **禁用词表 / 动作词表**（可选）：合规禁用词、首帧可用动作词。
- **爆款采样表**（可选，跑周期热词才要）：平台、站点、语种、类目、前 3 秒台词、表现数据、作品、采集日期。空白模板用 `hot_hooks.py --template 采样表.csv` 下，填法见 [hook-sampling.md](references/hook-sampling.md)。

## 怎么跑

前三步都只做本地确定性计算，不调模型、不花钱。

### 第零步 · 定素材形态

不跑脚本，按 [creative-stack.md](references/creative-stack.md) 的顺序问一遍：有样品有出镜人吗 → 要口播没人出镜吗 → 只缺场景空镜吗 → 手上素材只差换钩子吗 → 缺氛围 B-roll 吗 → 平台是不是刷图文的。

形态决定成本、周期与能上的平台，**选错最贵**；定完还要看它的合规红线（数字人标注、声音克隆授权、换脸默认不做）。

### 第一步 · 挖本周期钩子与热词

```bash
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。

### 第二步 · 出分镜与提示词

```bash
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](references/video-production.md)。

### 第三步 · 把提示词接到视频生成平台（可选）

**用哪个大模型由用户定**，脚本只把提示词按该平台的参数名装进请求，跑完提交 → 轮询 → 取回成片 → 记台账：

```bash
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](references/video-production.md)。

## 分镜与检查项

固定五段，第一镜永远是 3 秒钩子：**钩子 → 痛点场景 → 产品演示 → 证明 → CTA**。同一 SKU 至少出 2 个不同钩子的版本，素材之间只变一个变量（钩子类型 / 卖点顺序 / CTA），否则测不出结论。

`video_brief.py` 自动跑十项检查（首帧主体、开场禁忌、前 3 秒动态与字幕、口播语速、字幕长度、语种一致、钩子类型、本地化、禁用词），逐条规则与失败后果见 [video-production.md](references/video-production.md)。

## 多语种适配

语种认短代码（`vi-VN`）、英文名、中文名与平台后台的原生写法（`Tiếng Việt`、`日本語`、`ภาษาไทย`）。口播长度按语种折算：中日韩泰等按字符，英西葡越等按空格分词；`--speech-rate vi=3.5` 或风格库的「语速上限」列可按市场覆盖。

**换语种不只要翻译**：配音口音、字幕断行与排版方向、数字与货币写法、落地页承诺都要一起本地化。中文草稿只做工作语言预检，按目标语种重写后必须重跑一次才有真实结论。细则见 [video-production.md](references/video-production.md)。

## 风险与人工边界

| 等级 | 本阶段场景 | AI 权限 | 人工权限 |
|---|---|---|---|
| 高 | 命中合规禁用词、市场风格缺失、前 3 秒口播讲不完、首帧踩开场禁忌、要用换脸或数字人但授权 / 平台标注没落实 | 只出判定 + 修改建议 | 终审后才进生成与投放队列 |
| 中 | 字幕超单行长度、文案未本地化、素材含待填创意位、产品表与风格库语种冲突、采样里超过三成台词没归到套路 | 出结论 + 风险标注 | 抽样复核 |
| 低 | 素材命名、分镜排版、批量组合、格式转换、采样表里的空行与重复行 | 直接执行 | 事后抽查 |

**外部能力的红线按「一件事一判断」**：肖像权（数字人、换脸）、声音授权（声音克隆）、音乐与素材库的商用范围、去水印成片的版权——任意一项没落实，素材不进投放队列；平台标注政策会变，不确认就按 `high` 交人工。

**与钱有关的边界**同第三步：选哪个平台、跑多少条由用户确认，不加 `--confirm` 绝不提交，放量前先用 `--max-clips 1-2` 验证。

## 常见坑

- 形态选错是最贵的错：花大价钱做数字人，结果这个品类用户只信真人实测。
- 把品牌介绍放开头、前 3 秒讲参数、一条视频塞 5 个卖点，是最贵的三种浪费。
- 拿 AI 生成的画面当钩子：前 3 秒是决定成本的位置，别用最不可控的形态占住它。
- 去水印解析下来的成片直接投：平台原创度判定会命中，轻则不过审，重则影响账号。
- 把采样到的台词原句当脚本用：要的是套路与用词，不是别人的原话。
- 一条视频生成多个镜头通常不可用；钩子与落地页承诺不一致，点击来了也不转化。

## 输出契约

与其他跨境电商技能共用同一个 JSON 信封，便于跨阶段串联与事后追责：

```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`](../ecom-selection-profit/) 定下要推的 SKU 与价格。
- 下游：[`ecom-ads-plan`](../ecom-ads-plan/) 按素材编号编排出投放结构与测试节奏（素材变量怎么设计见该技能），[`ecom-roi-review`](../ecom-roi-review/) 复盘素材维度的表现。
- 投流侧（出价、预算、止损）与总控共享约定见 [`ecom-ads-plan`](../ecom-ads-plan/)、[`crossborder-ecom-ops`](../crossborder-ecom-ops/)。

