docs(video-from-script): 重构技能文档并优化图片生成脚本

- 简化并重组 SKILL.md 文档,清晰划分两类成片流程(幻灯片视频/AI视频)
- 移除冗余的 ASCII 图表和重复内容,使文档更具可读性
- 更新路由规则和示例,与新的分类标准保持一致
- 重构质量卡点部分,使其更简洁并明确检查标准
- 优化 phase-images.js 中的 MJ 图片生成函数,传递完整的 manifest 对象以供参考
This commit is contained in:
2026-05-01 22:38:43 +08:00
parent 8f17eb34e0
commit b6ec208bcc
4 changed files with 320 additions and 330 deletions

View File

@@ -82,9 +82,11 @@ source outside the frame begins its slow rotation
## 四、切割规则
### 4.1 切割优先级
切割分两层:第一层按语义场景做宏观切分(两种模式通用),第二层按气口做微观切分(视频成片专用)。
以「语义场景单元」为第一切割依据,不按句号机械切割。
### 4.1 第一层:语义场景切割(两种模式通用)
以语义场景转折为切割依据,不按句号机械切割。
| 切割信号 | 判断标准 |
|----------|---------|
@@ -92,10 +94,57 @@ source outside the frame begins its slow rotation
| 场景转换 | 叙述空间或时间发生变化 |
| 主体变化 | 叙述对象或视角切换 |
| 节奏重音 | 强调句、停顿感强、关键意象出现 |
| 语义完整 | 该段表达一个完整观点或例子 |
| 字数上限 | 视频成片每段 22 字左右;图文成片每段 50 字左右 |
| 语义完整(仅图文) | 该段表达一个完整观点或例子 |
### 4.2 时长控制
### 4.2 第二层:气口切割(视频成片专用)
**视频成片在完成语义场景切割后,必须在每个语义场景内部进行第二轮气口切割。**
核心法则:以朗读时的自然换气停顿(气口)为切割点,将长句拆为多个连续 Shot。每个 Shot 的 `script` 是原文在该气口的**逐字截取片段**——不是摘要、不是改写、不是提炼。连续 Shot 的 `script` 拼接后必须完整还原原句,一字不落。
**气口即切割点:**
- 逗号(,)— 第一优先切割点
- 自然停顿 — 朗读时逻辑换气处
- 从句边界 — "当……的时候""不是……而是""因为……所以"的分界处
- 禁止在词语中间切割
**字数约束:**
- 单段 822 字。目标 1518 字(最舒适的朗读气口)
- 超过 22 字的从句,继续在下一个逗号处切开
- 不足 8 字的碎片合并到相邻段
**连续关系处理:**
- 同属一个原句的连续 Shot`directorRef` 保持同一位导演,画面构图持续递进
- 连续从句 Shot 的 `keyword` 可选填,只在完整句的最后一个 Shot 必填,避免花字过密
- 相邻帧允许同景别(视频运动本身提供变化)
**示例——原文 52 字长句:**
> 原文:「当你开始把别人的评价体系当作自己的坐标系,你已经把人生方向盘交给了后排乘客。」
正确切割:
| Shot | script | 字数 |
|------|--------|------|
| N | 当你开始把别人的评价体系, | 12 |
| N+1 | 当作自己的坐标系, | 9 |
| N+2 | 你已经把人生方向盘交给了后排乘客。 | 16 |
→ 三个 script 拼接 = 完整原文,连标点都不少。
**禁止行为:**
- ❌ 把 52 字原句摘要成一句 22 字的改写
- ❌ 丢弃原文的论证、例子、细节来"节省字数"
- ❌ 跨语义场景合并——气口切割只在同一个语义场景内部进行
### 4.3 字数上限速查
| 模式 | 每段字数 | 说明 |
|------|---------|------|
| 图文成片 | 50 字左右 | 一帧讲透一个观点 |
| 视频成片 | 822 字 | 气口自然长度,长句必须拆为连续 Shot |
### 4.4 时长控制
- **图文成片:** 每条 Shot 4-10 秒,跟随旁白节奏,完整表达一个观点
- **视频成片:** 每条 Shot 3-7 秒,目标 5 秒,匹配视频片段长度
@@ -325,7 +374,7 @@ undone
```
**字段说明**
- `script`:该段的**完整原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词
- `script`:该段的**原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词。**视频模式:长句必须拆为 N 个连续 Shot每个 Shot 的 script 是该句在该气口的逐字片段——所有连续 Shot 的 script 按顺序拼接后,必须等于原始口播文案的完整句,连标点符号都不能少一个。**
- `keyword`:该段的**氛围关键词**可选2-6 个字,以花字效果叠加在画面中央增强冲击力。提炼该段最核心的意象/概念,偏向名词或动名词,有画面感。无合适关键词时省略该字段
## 九、启动指令与自检
@@ -347,8 +396,13 @@ undone
> 如果这帧图片喂给视频模型,它知道往哪个方向动吗?
> 答案是「不知道」→ **重写**
**视频成片文本完整性自检(输出完整 JSON 后必做):**
> 把所有 shot 的 `script` 按 id 顺序拼接,等于原始口播文案吗?
> 答案是「不等于」→ **重做气口切割,禁止摘要**
**其他规则:**
- `directorRef` 必须填写,不得为空,下游依赖此字段执行风格
- 按语义单元切割,每段表达一个完整观点或例子
- **视频成片:每个 shot 不要求表达完整观点,气口片段即可;连续 shot 拼接后才构成完整语义**
- 若用户未提供完整口播文案,提示补充,不得凭空生成

View File

@@ -186,9 +186,11 @@ the geometry did.
## 七、切割规则
### 6.1 切割优先级
切割分两层:第一层按语义场景做宏观切分(两种模式通用),第二层按气口做微观切分(视频成片专用)。
以「语义场景单元」为第一切割依据,不按句号机械切割。
### 7.1 第一层:语义场景切割(两种模式通用)
以语义场景转折为切割依据,不按句号机械切割。
| 切割信号 | 判断标准 |
|---------|---------|
@@ -196,10 +198,57 @@ the geometry did.
| 场景转换 | 叙述空间或时间发生变化 |
| 主体变化 | 叙述对象或视角切换 |
| 节奏重音 | 强调句、停顿感强、关键意象出现 |
| 语义完整 | 该段表达一个完整观点或例子 |
| 字数上限 | 视频成片每段 22 字左右;图文成片每段 50 字左右 |
| 语义完整(仅图文) | 该段表达一个完整观点或例子 |
### 6.2 时长控制
### 7.2 第二层:气口切割(视频成片专用)
**视频成片在完成语义场景切割后,必须在每个语义场景内部进行第二轮气口切割。**
核心法则:以朗读时的自然换气停顿(气口)为切割点,将长句拆为多个连续 Shot。每个 Shot 的 `script` 是原文在该气口的**逐字截取片段**——不是摘要、不是改写、不是提炼。连续 Shot 的 `script` 拼接后必须完整还原原句,一字不落。
**气口即切割点:**
- 逗号(,)— 第一优先切割点
- 自然停顿 — 朗读时逻辑换气处
- 从句边界 — "当……的时候""不是……而是""因为……所以"的分界处
- 禁止在词语中间切割
**字数约束:**
- 单段 822 字。目标 1518 字(最舒适的朗读气口)
- 超过 22 字的从句,继续在下一个逗号处切开
- 不足 8 字的碎片合并到相邻段
**连续关系处理:**
- 同属一个原句的连续 Shot`directorRef` 保持同一位导演,画面构图持续递进
- 连续从句 Shot 的 `keyword` 可选填,只在完整句的最后一个 Shot 必填,避免花字过密
- 相邻帧允许同景别(视频运动本身提供变化)
**示例——原文 52 字长句:**
> 原文:「当你开始把别人的评价体系当作自己的坐标系,你已经把人生方向盘交给了后排乘客。」
不对。正确切割:
| Shot | script | 字数 |
|------|--------|------|
| N | 当你开始把别人的评价体系, | 12 |
| N+1 | 当作自己的坐标系, | 9 |
| N+2 | 你已经把人生方向盘交给了后排乘客。 | 16 |
→ 三个 script 拼接 = 完整原文,连标点都不少。
**禁止行为:**
- ❌ 把 52 字原句摘要成一句 22 字的改写
- ❌ 丢弃原文的论证、例子、细节来"节省字数"
- ❌ 跨语义场景合并——气口切割只在同一个语义场景内部进行
### 7.3 字数上限速查
| 模式 | 每段字数 | 说明 |
|------|---------|------|
| 图文成片 | 50 字左右 | 一帧讲透一个观点 |
| 视频成片 | 822 字 | 气口自然长度,长句必须拆为连续 Shot |
### 7.4 时长控制
- **图文成片:** 每条 Shot 4-10 秒,跟随旁白节奏,完整表达一个观点
- **视频成片:** 每条 Shot 3-7 秒,目标 5 秒,匹配视频片段长度
@@ -352,7 +401,7 @@ something that cannot be undone
```
**字段说明**
- `script`:该段的**完整原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词。包含论证、例子、细节,不是金句
- `script`:该段的**原文逐字摘取,一字不改**。原文怎么写就怎么贴,禁止改写、提炼、摘要、概括、换词。包含论证、例子、细节,不是金句。**视频模式:长句必须拆为 N 个连续 Shot每个 Shot 的 script 是该句在该气口的逐字片段——所有连续 Shot 的 script 按顺序拼接后,必须等于原始口播文案的完整句,连标点符号都不能少一个。**
- `keyword`:该段的**氛围关键词**2-6 个字,以花字效果叠加在画面中央增强冲击力。规则:
- 提炼该段最核心的意象/概念,不是复述文案
- 偏向名词或动名词,有画面感:"权力""沉默""位置""逐帧拆""审视"
@@ -476,5 +525,10 @@ something that cannot be undone
> 如果这帧图片喂给视频模型,它知道往哪个方向动吗?
> 答案是「不知道」→ **重写**
**视频成片文本完整性自检(输出完整 JSON 后必做):**
> 把所有 shot 的 `script` 按 id 顺序拼接,等于原始口播文案吗?
> 答案是「不等于」→ **重做气口切割,禁止摘要**
directorRef 必须填写,不得为空,下游依赖此字段执行风格
按语义单元切割,每段表达一个完整观点或例子
**视频成片:每个 shot 不要求表达完整观点,气口片段即可;连续 shot 拼接后才构成完整语义**