优化脚本

This commit is contained in:
Azmat@qq.com
2026-08-21 10:28:35 +08:00
parent 6c588a7fee
commit c2d3a786a3
23 changed files with 1461 additions and 287 deletions
@@ -2,6 +2,7 @@
> 全自动 / 一句话模式读。根据商品所属品类,调整语气与卖点侧重。
> 不确定品类时,按商品功能就近归类;都不沾就用"通用"原则(讲场景痛点 + 真实使用感)。
> **示例旁白只学语气,禁止把例句里的假商品/假卖点抄进正文。** 正文必须用输入给的商品名和卖点原词。
每个品类给:**语气** / **卖点侧重** / **常用露出** / **违规雷区** / **示例旁白**。
@@ -13,11 +13,11 @@
- [ ] `presentation_format` ∈ `{口播, 短剧, Vlog}`,且与输入一致(输入没给则自选并如实填写)。
- [ ] `video_structure` ∈ `{痛点解决, 前后对比, 测评验证, 场景种草}`,同上。
- [ ] **组合合法**:不是「短剧 × 测评验证」(唯一禁用组合,见 `playbooks/combo-matrix.md`)。
- [ ] `total_duration` 是 **5–60 之间 5 的倍数**。
- [ ] **每个 `segment.duration` 是 4–15 之间的整数**(15 是下游出片硬上限,越界直接出不了片)。
- [ ] `total_duration` 是 **15 / 30 / 45 / 60**。
- [ ] **每个 `segment.duration` 必须是 15**。
- [ ] **`sum(segments[].duration) == total_duration`**,逐个加一遍,差一秒都不行。
- [ ] `segment_count == len(segments)`;`index` 从 0 连续递增无跳号。
- [ ] 镜数落在 `ceil(total_duration/15)` 到 `floor(total_duration/4)` 区间内。
- [ ] 镜数 **等于** `total_duration / 15`。
- [ ] 每个 `segment.role` ∈ `{钩子, 痛点, 卖点, CTA}`。
- [ ] 首镜 `role == 钩子`;末镜收 CTA(独立 CTA 镜,或末镜旁白末尾含明确行动指令)。
- [ ] `entities` 每项 `type` ∈ `{character, scene, product}`,`id` 全局唯一。
@@ -46,10 +46,11 @@
## C. 旁白红线扫描(逐镜)
- [ ] **每镜 `narration` ≤ `duration × 3.5` 字,且绝不超过 55 字**(逐镜按自己的秒数数一遍,别凭感觉。
4 秒镜 ≤14 字、8 秒镜 ≤28 字、15 秒镜 ≤52 字,对照表见 `methodology.md`)。
- [ ] 每镜 `visual` 含「景别/运镜 + 一个画面变化」,不是一句静态动作;能撑满这一镜的秒数
(≥8 秒的镜约 40–70 字;4–6 秒的短镜可以更短,但景别必须写清)。
- [ ] **每镜 `narration` ≤ `duration × 3.5` 字,且绝不超过 55 字**(15 秒镜 ≤52 字)。
- [ ] **口播 15 秒镜旁白 ≥ 36 字**(写作目标 38–47 字,2–4 句)。禁止一句 20 字收工;口播禁止整镜无声。
- [ ] **秒级分镜**:每镜 `visual` 至少 3 条 `0-3s:景别,动作`,从 0 接到 15s;15 秒内至少切两次景别。
- [ ] **商品原词**:旁白/对白出现了输入给出的至少一个勾选卖点原词;商品名全片点名 1–2 次即可,其余镜写描述/卖点细节,没有用空话替换。
- [ ] 每镜 `visual` 能撑满 15 秒(至少 72 字),写清手/商品/容器的空间关系和真实用法,不是一句静态动作。
- [ ] 口语化,无书面腔/AI 腔("综上""不仅…而且""值得一提"等已清除)。
- [ ] **违规词扫描**:无医疗功效词(治疗/根治/抗癌/消炎/排毒/速效…)。
- [ ] **绝对化用语扫描**:无 最/第一/唯一/100%/国家级/永久/绝对/史上 等。
@@ -24,30 +24,18 @@
## 二、时长 → 镜数 → 黄金结构映射(关键)
### 2.1 时长规则(不再是固定四档,也不再每镜等长)
### 2.1 时长规则(每镜固定 15 秒)
- **总时长**由输入给定:**5–60 秒之间、5 秒一档**(5/10/15/…/60)。未指定时默认 30。
- **单镜时长 4–15 秒**,这是下游出片模型的硬上限,**任何一镜都不许超过 15 秒、不许低于 4 秒**。
- **每镜时长可以不一样。** 该长的镜(讲卖点、举证)就给足,该短的镜(空镜、转场、一句钩子)就压短。
别再机械均分。
- **总时长**由输入给定:**15 / 30 / 45 / 60**。未指定时默认 30。
- **每镜时长固定 15 秒**,这既是主流程产品规则,也是下游出片模型的硬上限。
- 镜数直接由总时长决定:15 秒 → 1 镜,30 秒 → 2 镜,45 秒 → 3 镜,60 秒 → 4 镜。
- **不要**写成 8/10/12 这种不等长,也**不要**自行加减镜。15 秒要靠画面变化和一句完整意思撑满,不是靠切碎镜头。
- 所有 `segments[].duration` 相加**必须精确等于** `total_duration`。
### 2.2 镜数怎么定
镜数不是算出来的,是**按表现形式的节奏定**的。先取该形式的推荐单镜时长,再用总时长去除:
| 表现形式 | 推荐单镜时长 | 理由 |
| ---- | ---- | ---- |
| **口播** | 10–15 秒 | 说完一个完整意思需要时间,切太碎话会断 |
| **短剧** | 6–10 秒 | 靠切换制造节奏,镜头长了拖沓 |
| **Vlog** | 5–8 秒 | 碎片拼贴感,镜头短、数量多 |
`segment_count ≈ total_duration / 推荐单镜时长`,向最接近的整数取整,
然后**必须**落在 `ceil(total_duration/15)` 到 `floor(total_duration/4)` 这个区间内。
例:口播 30 秒 → 30/12 ≈ 2.5 → 3 镜(如 12+10+8)。
  短剧 45 秒 → 45/8 ≈ 5.6 → 6 镜(如 8+7+9+7+8+6)。
  Vlog 30 秒 → 30/6.5 ≈ 4.6 → 5 镜(如 6+6+7+6+5)。
镜数**不是按表现形式估算的**,就是 `total_duration / 15`。
表现形式只影响这一镜里怎么拍(口播把 15 秒说完一件事;短剧在 15 秒里完成一次冲突/对白交换;Vlog 用镜内空镜+细节撑满),**不改变镜数**。
### 2.3 role 按镜数分配
@@ -102,22 +90,23 @@
## 五、旁白红线(硬规则,违反即不合格)
- **口语化**:像真人对着镜头唠嗑,不准书面腔 / 不准 AI 腔("综上所述""不仅…而且""值得一提的是"全禁)。
- **`narration` 字数按这一镜的秒数算**:出片模型在镜内直接发声,可懂语速上限约 **3.5 字 / 秒**。
**每镜 `narration` ≤ `duration × 3.5` 字,且任何情况下不超过 55 字。**
对照表(写作目标再留 10% 缓冲,宁可短不要卡满):
- **必须用商品原词**:输入给了商品名、品牌、卖点,就用这些词,不许改成「补水/好用/值得买」这种空卖点。品类示例句只是语气参考。
- **`narration` 字数按这一镜的秒数算**:出片模型在镜内直接发声。
可懂语速上限约 **3.5 字 / 秒**,口播下限约 **2.4 字 / 秒**(再短镜头空一半)。
**每镜上限 `duration × 3.5` 字,且不超过 55 字。口播 15 秒镜还有下限 36 字。**
| 单镜时长 | 字数上限 | 写作目标 |
| ---- | ---- | ---- |
| 4 秒 | 14 字 | ≤ 12 字 |
| 5 秒 | 17 字 | ≤ 15 字 |
| 6 秒 | 21 字 | ≤ 19 字 |
| 8 秒 | 28 字 | ≤ 25 字 |
| 10 秒 | 35 字 | ≤ 31 字 |
| 12 秒 | 42 字 | ≤ 38 字 |
| 15 秒 | 52 字 | ≤ 47 字 |
| 单镜时长 | 下限 | 字数上限 | 写作目标 |
| ---- | ---- | ---- | ---- |
| 4 秒 | — | 14 字 | ≤ 12 字 |
| 5 秒 | — | 17 字 | ≤ 15 字 |
| 6 秒 | — | 21 字 | ≤ 19 字 |
| 8 秒 | — | 28 字 | ≤ 25 字 |
| 10 秒 | — | 35 字 | ≤ 31 字 |
| 12 秒 | — | 42 字 | ≤ 38 字 |
| 15 秒 | **36 字** | 52 字 | **38–47 字,2–4 句** |
**短镜不要硬塞长句** —— 装不下就把这句拆到下一镜,或者干脆让这镜没有旁白(纯画面)。
总时长很短、一镜要装多功能时尤其要狠删,先保 CTA 不被砍。
主流程每镜都是 15 秒:**要说满,不要宁可短。** 一句 20 字撑不满镜头。
留白靠句间停顿和画面,不靠少写字。只有 Vlog 才允许个别镜纯画面无声。
- **不浮夸、不空喊**:卖点要给具体理由,不堆形容词。
- **违规词禁令**(电商广告法红线,一律不写):
- **医疗功效类**:治疗 / 根治 / 疗效 / 抗癌 / 消炎 / 杀菌(无证) / 排毒 / 速效 / 抑制 ××病 …
@@ -126,3 +115,22 @@
- 替换策略:用"帮助""更""不少人反馈""上脸清爽"等柔性、主观化表达替代。
> 自检阶段必须逐镜扫一遍违规词,命中即改写。详见 `checklist.md`。
---
## 六、15 秒场内的秒级分镜(硬规则)
主流程一场就是 15 秒。15 秒里**必须再切 3–5 刀**,写进 `visual`,下游故事板和视频只认这段。
```
0-3s:近景,人看镜头或看向场景,先立住环境和情绪
3-8s:手部入画,开始使用商品(写清容器、材质、液体/膏体状态)
8-12s:商品特写,用法过程可见
12-15s:拉回人物,使用后的反应
```
- 第一条从 **0 秒**起,最后一条接到 **15s**。
- 每一条写:景别 + 谁 + 手从哪来 + 商品/容器什么样 + 这一拍在变什么。
- 15 秒内至少切 **两次景别**(近景 / 特写 / 手持跟拍…)。
- 商品用法必须真实:茶要热水和蒸汽,不要把茶包丢进冷白开;手不要悬浮。
- 允许另给 `beats:[{start,end,shot_size,action}]`,但 `visual` 仍要能折成上面这种多行文本。
@@ -48,6 +48,8 @@
最弱的一格,因为口播是「对镜说话」,天然打断场景沉浸。
- **必须弱化对镜**:人在场景里自然活动,偶尔看向镜头,不要全程盯着
- 台词改成自言自语的语气,不要介绍腔
- **每镜仍要说满 36–47 字**:写具体时刻、动作、使用感,不要一句商品名就收
- 商品名全片点名 1–2 次,其余镜用卖点原词和场景细节
- 如果商品本身氛围属性强(香氛、饮品),优先考虑改用 Vlog
### 短剧 × 痛点解决 ★ 最强组合
@@ -100,9 +102,9 @@
| 结构 | 最短可用 | 原因 |
| ---- | ---- | ---- |
| 痛点解决 | 15 秒 | 痛点一句、卖点一句、CTA 一句,勉强够 |
| 前后对比 | 10 秒 | 前后两镜就能成立,最抗压缩 |
| 测评验证 | 20 秒 | 举证需要时间,低于 20 秒证据不足 |
| 场景种草 | 20 秒 | 氛围需要铺陈,太短像随机片段 |
| 痛点解决 | 15 秒 | 1 镜也能压进钩子+卖点+CTA |
| 前后对比 | 15 秒 | 前后对比至少要撑满一镜 |
| 测评验证 | 30 秒 | 举证需要时间,1 镜证据不足 |
| 场景种草 | 30 秒 | 氛围需要铺陈,太短像随机片段 |
低于该结构的最短时长时,优先保住「钩子 + 结构核心 + CTA」三件,其余全砍。
@@ -51,11 +51,11 @@
## 五、节奏与单镜时长
- **单镜 6–10 秒**(短剧靠切换制造节奏,镜头长了就拖)
- 一镜一个动作或一次对话交换,**别在一镜里塞完整对话**
- **单镜固定 15 秒**(短剧用镜内动作和对白交换撑满这 15 秒,不要靠切很多短镜)
- 一镜一次冲突或一次对话交换,**别在一镜里塞完整三幕**
- 有对白的镜,每句 `line` ≤ 25 字(两个人说话,总量还是受 55 字限制)
**推荐总时长 45 秒。** 短剧需要装下三幕,低于 30 秒会讲不完整;
**推荐总时长 45 秒(3 镜)。** 短剧需要装下三幕,低于 30 秒会讲不完整;
超过 60 秒在电商场景下性价比开始下降。
---
@@ -49,11 +49,12 @@
## 四、节奏与单镜时长
- **单镜 10–15 秒**(口播里说完一个完整意思需要时间,切太碎会让话说不完整)
- 一句话讲一件事,**一镜讲一到两句话**
- 语速按 **3.5 字 / 秒** 估:12 秒的镜 ≈ 42 字,别超
- **单镜固定 15 秒**(口播里说完一个完整意思需要时间;15 秒靠景别切换和手部动作撑满,不要切碎)
- 一句话讲一件事,**一镜 2–4 句短句**,禁止一句收工
- **visual 按秒拆 3–5 刀**,写成 `0-3s:近景……` / `3-8s:手持……` / `8-12s:特写……` / `12-15s:拉回……`
- 语速按 **2.4–3.5 字 / 秒** 估:15 秒镜 **36–52 字**,写作目标 **38–47 字**
**推荐总时长 30 秒。** 口播超过 45 秒完播率掉得很快,除非是测评验证这种
**推荐总时长 30 秒(2 镜)。** 口播超过 45 秒完播率掉得很快,除非是测评验证这种
需要举证的结构。
---
@@ -55,11 +55,11 @@ Vlog 的镜头必须有**手持感和生活质感**,这是它的可信度来
## 五、节奏与单镜时长
- **单镜 5–8 秒**(Vlog 是碎片拼贴,镜头短、数量多)
- 允许有 4–5 秒的纯空镜,用来换时间段
- **单镜固定 15 秒**(Vlog 的碎片感靠镜内空镜、手部细节、光线变化,不靠把镜子切到 5 秒)
- 允许镜内有一段纯画面(旁白留空或只留半句)
- 不需要每镜都说话,**画面自己会讲**
**推荐总时长 30 秒。** Vlog 靠氛围,时长太短装不下时间感(低于 20 秒会像随机片段),
**推荐总时长 30 秒(2 镜)。** Vlog 靠氛围,时长太短装不下时间感(低于 30 秒会像随机片段),
太长又超出电商场景的耐心。
---
@@ -40,12 +40,14 @@
场景种草的说服力来自细节密度。每条脚本至少铺三样:
- **光**:晨光 / 夕照 / 台灯 / 烛光 —— 光决定情绪,必须明确写进 `visual`
- **光**:晨光 / 夕照 / 台灯 / 烛光 —— 光决定情绪,必须写进每一条秒级分镜
- **声音**:水沸 / 键盘 / 雨 / 风 —— 写进 `visual` 提示环境音
- **触感**:蒸汽、毛毯的绒、杯壁的温度 —— 让画面有温度
- **时间**:具体到时刻(清晨六点 / 下午三点 / 睡前)
- **陪衬物**:书、猫、外卖盒、耳机 —— 让场景像真的有人生活
`visual` 不要写成一段氛围散文,按秒切开:先立场景,再让商品被使用着入场。
---
## 四、商品怎么出场
@@ -77,10 +79,12 @@
## 六、台词分寸
- 语气是**自述或旁白**,轻、慢、留白
- 语气是**自述或旁白**,轻、慢;留白靠**句间停顿和画面**,不靠少写字
- **不讲参数、不讲价格、不讲功效** —— 这些会立刻把观众从场景里踢出来
- 可以整镜无声,让环境音和画面说话
- **口播 × 场景种草禁止整镜无声**:每镜仍要说满 36–47 字(2–4 句自述),像在场景里自言自语
- **Vlog** 才可以个别镜无声,让环境音和画面说话
- CTA 要软:「链接放下面了」而不是「快去抢」
- 商品名全片点名 1–2 次,其余镜写时刻、动作、使用感、卖点原词
---