Files
video-create/.claude/skills/video-from-script/references/account-creation.md
sion123 6097a809bf refactor(video-pipeline): 移除 segments 机制,改为整段音频合成
移除 TTS 阶段逐句切分及 segments 数组逻辑,统一为整段音频合成。
CapCut 字幕切分由组装阶段按字符比例分配,简化音频上传、
时间线构建和字幕生成流程,减少冗余处理分支。
2026-05-02 02:31:55 +08:00

375 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 账号创建流程
> Agent 通过结构化问答收集信息,基于通用 prompt 模板 + 风格注入,生成完整的账号配置。
>
> **10 维度账号画像**:账号定位 → 目标受众 → 内容气质 → 视觉基调 → 画风质感 → 色彩体系 → 镜头运动 → 声音身份 → 文字呈现 → 节奏律动
---
## 创建流程
```dot
digraph creation_flow {
rankdir=TB
node [shape=box style=rounded fontsize=11]
edge [arrowsize=0.7]
start [label="\"创建账号\"/\"新账号\"" shape=ellipse style=filled fillcolor="#E3F2FD"]
p1 [label="Phase 1\n账号定位必须"]
p2 [label="Phase 2\n内容DNA必须"]
p3 [label="Phase 3\n视觉身份必须"]
p4 [label="Phase 4\n成片风格可跳过" style=filled fillcolor="#E8F5E9"]
check [label="爆款自检" shape=diamond style=filled fillcolor="#FFF3E0"]
confirm [label="汇总确认"]
gen [label="生成文件"]
val [label="校验"]
start -> p1 -> p2 -> p3 -> p4
p4 -> check -> confirm -> gen -> val
}
```
---
## Phase 1账号定位
| # | 问题 | 必填 | 说明 |
|---|------|------|------|
| 1 | 账号名称? | ✅ | 用作目录名和显示名(中文即可,如"军事账号" |
| 2 | 一句话描述? | ✅ | 写入 account.json 的 description |
**输出**:确定目录名(= id和 account.json 的 id/name/description。
---
## Phase 2内容 DNA
| # | 问题 | 必填 | 注入位置 |
|---|------|------|---------|
| 3 | 核心内容方向?如:历史权谋、科技解说、情感故事、美食文化 | ✅ | 分镜.md → 角色定义 + 账号内容理解.核心方向 |
| 4 | 目标受众30岁男性、18-25岁女性 | ✅ | 分镜.md → 账号内容理解.目标受众 |
| 5 | 内容气质?用 2-3 个关键词描述,如:冷峻洞察、温暖治愈、犀利反讽 | ✅ | 分镜.md → 账号内容理解.内容气质 |
| 5.6 | 目标情绪回路?(选填)如:好奇→震惊→领悟,或平静→压迫→释放 | ❌ | 分镜.md → 账号内容理解.情绪回路 |
**注入规则**
- 角色定义改为"专精{Q3}类口播文案转化为{Q6}画面的分镜导演"
- 新增「账号内容理解」节Q3+Q4+Q5+Q5.6,仅供子 Agent 理解上下文,不输出到分镜表)
---
## Phase 3视觉身份
| # | 问题 | 必填 | 注入位置 |
|---|------|------|---------|
| 6 | 整体视觉基调?如:暗黑压迫、明亮温暖、冷冽极简、赛博霓虹 | ✅ | 分镜.md → 宏观视觉风格方向.整体基调 |
| 7 | 画风写实摄影、漫画、水墨、水彩、油画、赛博朋克、3D渲染 | ✅ | 图片.md → 画风与质感 + 固定风格词尾 |
| 8 | 色彩倾向?(三选一) | ✅ | 图片.md → 色彩体系 + 固定风格词尾 |
| | A. 拖入参考图 → AI 分析提取色彩/质感 | | |
| | B. 文字描述(如"深蓝为主,金色点缀" | | |
| | C. 直接给色值(如"主色 #0A0A0A" | | |
| 9 | 质感/纹理?如:丝网印刷做旧、颗粒胶片、光滑数字、纸张纹理 | ❌ | 图片.md → 画风与质感 |
**色彩提取规则Q8 选 A 时)**
1. 分析参考图的 dominant colors提取 3-4 个核心色
2. 分配角色:主色(大面积) / 辅色(中间调) / 点缀色(高光焦点) / 禁止色(与风格冲突的色系)
3. 输出色值 + 使用规则
**固定风格词尾生成规则**
- 根据 Q7+Q8+Q9 生成 3 个模型版本的风格词尾
- MJ 版:英文逗号短语 + `--ar` + `--style raw --q 2 --v 6.1`
- Gemini 版:英文自然语言句子
- Kling 版:中文描述
**分镜.md 宏观视觉风格方向**
- 整体基调Q6
- 风格大类Q7
- 人物气质:从 Q5 + Q6 推导
- 场景基调:从 Q6 推导
- 禁止出现Q6 + Q7 的反面(如暗黑风 → 禁止明亮轻快)
---
## Phase 4成片风格有默认值
### 维度 7镜头运动
| # | 问题 | 默认值 | 说明 |
|---|------|--------|------|
| 10 | 视频运动偏好? | 克制慢速 | 注入视频.md → 运动风格基调 |
| | 选项:克制慢速 / 流畅中速 / 快速激烈 | | |
| 11 | Ken Burns 镜头动画? | 开启(按导演风格) | 图片成片时为每张图添加慢速缩放/平移,消除幻灯片感。选项:关闭 / 默认 / 自定义 |
**Ken Burns 推荐表**(未配置时自动按导演风格匹配):
| 内容气质 | 缩放速率 | 平移 | 效果 |
|---------|---------|------|------|
| 沉稳/克制/叙事 | 0.4-0.6 %/秒 | 无 | 几乎无感的缓慢推进(类似纪录片) |
| 均衡/节奏/科普 | 0.6-0.8 %/秒 | 微弱 | 稳定匀速推进,适合中长片段 |
| 冲击/激烈/权谋 | 0.8-1.0 %/秒 | 轻微 | 明显的推镜头,强化压迫感 |
| 唯美/治愈/风景 | 0.3-0.5 %/秒 | 强烈0.3-0.6 /秒) | 缓慢平移+微缩放,展示画面纵深 |
> Q11 选"自定义"时Agent 应询问缩放速率偏好(快/中/慢)和平移方向偏好(固定/左右/上下),生成对应的 kenBurns 配置。
> 选"默认"时根据 Q5 内容气质 + Q10 运动偏好自动匹配上表。
> 视频模式自动跳过 Ken Burns视频本身已有运动
### 维度 8声音身份
| # | 问题 | 默认值 | 说明 |
|---|------|--------|------|
| 12 | TTS 音色? | config.json 全局 ttsVoice | account.json 的 ttsVoice留空用全局默认 |
| 13 | TTS 语气指令? | 无 | account.json 的 ttsInstruction描述期望的语气风格 |
| 14 | 背景音乐偏好? | 无 | account.json 的 capcut.defaultBGM。提供 URL 或描述风格Agent 辅助查找 |
**TTS 语气指令示例**
- 军事/权谋:"用沉稳有力的男性声音朗读,语速偏慢,带历史厚重感"
- 科技/科普:"用清晰理性的男性声音朗读,语速适中,专业但亲和"
- 情感/治愈:"用温柔柔和的女性声音朗读,语速偏慢,有感染力"
### 维度 9文字呈现
| # | 问题 | 默认值 | 说明 |
|---|------|--------|------|
| 15 | 关键字氛围词? | 开启(默认样式) | 画面中央大字叠加,增强冲击力。选项:关闭 / 默认样式 / 描述期望效果 |
| | 期望的花字风格?(选填) | 按账号风格推荐 | 根据视觉基调推荐,见下方花字推荐表 |
| 16 | 字幕风格偏好? | 默认白字 | 底部口播字幕。选项:默认白字 / 高亮关键词 / 描述期望 |
**字幕风格推荐表**
| 账号风格 | 推荐配色 | 字号 | 特效 |
|---------|---------|------|------|
| 暗黑/军事 | 白色 + 橙红高亮 | 24 | 淡入淡出 |
| 科技/赛博 | 白色 + 青蓝高亮 | 22 | 淡入淡出 |
| 情感/治愈 | 白色 + 暖黄高亮 | 24 | 淡入淡出 |
| 简约/知识 | 白色 + 无高亮 | 22 | 淡入淡出 |
### 维度 10节奏律动
| # | 问题 | 默认值 | 说明 |
|---|------|--------|------|
| 17 | 滤镜? | 无 | account.json 的 capcut.filter格式 `滤镜名:强度`(如 `质感电影:40`)。见下方滤镜推荐表 |
| 18 | 转场偏好? | 默认闪白 | account.json 的 capcut.transitions。见下方转场推荐表 |
| 19 | 画幅? | 9:16 | account.json 的 defaultFormat |
| 20 | 生图模型? | gemini | account.json 的 imageModel |
| 21 | 视频模型? | veo3-fast | account.json 的 videoModel |
| 22 | 参考图文件? | 无 | 用户稍后放入 references/ 目录Agent 上传 OSS 回写 URL |
**花字效果推荐表**92 种免费效果,按风格分类):
| 账号风格 | 推荐花字 | 备选 |
|---------|---------|------|
| 暗黑/军事/权谋 | 暗黑潮酷黑色花字 | 潮酷 黑色紫光、简约白色黑边花字 |
| 潮酷/街头/潮流 | 潮酷 白色橙边 | 超酷发光镂空花字、潮酷橙色 |
| 科技/赛博 | 赛博朋克未来科技感立体发光花字 | 蓝色镂空发光花字、炫彩发光花字 |
| 简约/商务/知识 | 简约白色黑边花字 | 简约白色花字、简约黑色描边立体花字 |
| 清新/生活/治愈 | 小清新 白色 | 清新蓝色发光花字、梦幻粉色发光立体花字 |
| 复古/港风 | 复古 红色 | 红色朦胧港风复古花字、书法墨环图案花字 |
| 综艺/娱乐 | 综艺 白色黑边 | 立体综艺花字、综艺 橙色 |
> Agent 可调用 `get_text_effects` API 获取完整列表92 种免费 + 更多 VIP
> Q17 选"默认样式"时Agent 根据账号风格从上表自动匹配。
**滤镜推荐表**(免费滤镜,格式 `滤镜名:强度`,强度 0-100
| 账号风格 | 推荐滤镜 | 备选 |
|---------|---------|------|
| 暗黑/军事/权谋 | 暗调氛围:40 | 暗夜:50、质感暗调:35 |
| 电影/叙事 | 质感电影:40 | 情感电影:35、情绪电影:30 |
| 复古/怀旧 | 暗调复古电影:40 | 复古工业:45 |
| 科技/赛博 | 质感暗调:30 | — |
| 清新/生活 | 质感电影:25 | 情感电影:20 |
| 纪录/人文 | 质感电影:30 | 情绪电影:25 |
> 留空则不加滤镜。Agent 可调用 CapCut Mate API 获取完整滤镜列表。
**转场推荐表**(免费转场,`duration` 单位微秒,推荐 100000-300000
| 转场名 | 效果 | 适用场景 |
|--------|------|---------|
| 闪白 | 明闪过渡,节奏强 | 暗黑/军事/冲击类(默认推荐) |
| 闪白 II | 明闪变体,稍柔和 | 潮酷/街头 |
| 闪黑 | 暗闪过渡,压抑感 | 沉重/悬疑/结尾 |
| 溶解 | 画面缓慢交融 | 唯美/叙事/情感 |
| 叠化 | 经典淡入淡出 | 通用/纪录片 |
| 色彩溶解 | 带色彩过渡的溶解 | 艺术/创意 |
> 默认配置使用「闪白」+ 按位置变体hook 闪白、body 溶解、closing 闪黑),可直接采用默认。
> Agent 可调用 CapCut Mate API 获取完整转场列表。
**运动偏好 → 视频提示词映射**
| 用户选择 | 运动风格基调 |
|---------|-------------|
| 克制慢速 | 克制优于激烈,慢优于快,张力优于美感,隐忍优于爆发 |
| 流畅中速 | 流畅自然,节奏跟随文案情绪,张弛有度,不刻意制造压迫 |
| 快速激烈 | 快节奏推进,冲击力优先,镜头运动幅度大,情绪外放 |
---
## 爆款潜力自检(生成前必检)
Agent 在汇总确认前,先做以下快速自检。任何一项为 ❌ 时建议用户补充:
| 检查项 | 通过标准 |
|--------|---------|
| 差异化定位 | Q2 描述能让用户说清"为什么看这个号而不是别的" |
| 情绪价值 | Q5.6 有明确的情绪回路,不是"好看"而是"看完有感觉" |
| 视觉记忆点 | Q7+Q8 色彩/画风能在信息流中一眼认出 |
自检结果展示给用户:全部 ✅ → 进入汇总确认;有 ❌ → 建议补充后再继续(用户可强制跳过)。
---
## 汇总确认
问答结束后Agent 按 10 维度输出汇总表让用户确认:
```
## 账号创建确认10 维度)
### 维度 1-2定位 + 受众
- 名称:{name}
- 描述:{description}
- 目录accounts/{id}/
- 目标受众:{Q4}
### 维度 3内容气质
- 核心方向:{Q3}
- 内容气质:{Q5}
- 情绪回路:{Q5.6 或"未指定"}
### 维度 4-6视觉基调 + 画风 + 色彩
- 基调:{Q6}
- 画风:{Q7}
- 色彩:{Q8 摘要}
- 质感:{Q9}
### 维度 7镜头运动
- 视频运动:{Q10}
- Ken Burns{Q11 开启/关闭,速率}
### 维度 8声音身份
- TTS音色{Q12}
- TTS语气{Q13}
- BGM{Q14}
### 维度 9文字呈现
- 关键字氛围词:{Q15 开启/关闭,花字风格}
- 字幕风格:{Q16}
### 维度 10节奏律动
- 滤镜:{Q17}
- 转场:{Q18}
- 画幅:{Q19}
- 生图模型:{Q20}
- 视频模型:{Q21}
确认 "开始" → 创建账号
修改 → 调整后重新输出
```
---
## 生成规则
### 文件创建
确认后Agent 按以下顺序生成。
**数据注入全景图**
```dot
digraph injection {
rankdir=LR
node [shape=box fontsize=10]
subgraph cluster_qa {
label="Q&A 收集"
style=dashed
q12 [label="Q1-Q2\n定位"]
q3_56 [label="Q3-Q5.6\n内容DNA"]
q6_9 [label="Q6-Q9\n视觉身份"]
q10_11 [label="Q10-Q11\n镜头运动"]
q12_14 [label="Q12-Q14\n声音"]
q15_16 [label="Q15-Q16\n文字"]
q17_22 [label="Q17-Q22\n节奏"]
}
subgraph cluster_out {
label="输出文件"
style=dashed
account [label="account.json"]
storyboard [label="分镜.md"]
image [label="图片提示词.md"]
video [label="视频提示词.md"]
}
q12 -> account
q3_56 -> storyboard
q6_9 -> storyboard
q6_9 -> image
q10_11 -> video
q10_11 -> account [label="kenBurns" style=dashed]
q12_14 -> account
q15_16 -> account
q17_22 -> account
}
```
> 每个 Q 答案都有明确的消费者文件,无死数据。
**生成步骤**
1. **创建目录结构**
```
accounts/{id}/
├── account.json
├── prompts/
│ ├── 分镜.md
│ ├── 图片提示词.md
│ └── 视频提示词.md
└── references/ # 参考图目录(用户稍后放入)
```
2. **生成 account.json**
- 从 `_template/account.json` 复制骨架
- 填入 id、name、description、模型、画幅等
- Q15 选关闭时删除 `keywordStyle` 节;选自定义花字时更新 `textEffect` 字段
- Q16 选自定义时更新 `subtitleStyle` 的 color/highlightColor/fontSize
- Q17 填入 `capcut.filter`(格式 `滤镜名:强度`
- Q18 填入 `capcut.transitions` 配置
- Q11 选关闭时设 `kenBurns.enabled=false`;选自定义时按推荐表生成 `byDirector` 配置
- Q14 填入 `capcut.defaultBGM`URL
3. **生成分镜.md**
- 读取 `_template/prompts/通用分镜.md`
- 在角色定义中注入 Q3 内容方向
- 新增「账号内容理解」节Q3+Q4+Q5+Q5.6 情绪回路)
- 新增「宏观视觉风格方向」节Q6+Q7+推导)
- 保留通用骨架切割规则、导演构图词库、shotDesc 写法规范、输入输出格式、质量自检
4. **生成图片提示词.md**
- 读取 `_template/prompts/通用图片.md`
- 新增「账号视觉基础风格」节Q7+Q8+Q9
- 替换「固定风格词尾」占位内容为具体风格词MJ/Gemini/Kling 三版)
- 保留通用骨架角色定义、入参权重、导演光影词库、imagePrompt 结构、构图原则、输入输出、质量自检
5. **生成视频提示词.md**
- 读取 `_template/prompts/通用视频.md`
- 新增「账号运动风格基调」节Q10 映射)
- 保留通用骨架:角色定义、入参权重、导演运动词库、三层运动设计、模型语法规范、输入输出、质量自检
### Prompt 生成原则
- **骨架不动**:切割规则、导演词库、写法规范、输出格式、质量自检等通用方法论完整保留,不做修改
- **只注入风格**:在通用骨架的固定位置插入账号专属内容
- **三个 prompt 风格一致**:分镜定义的视觉方向 → 图片提示词执行光影 → 视频提示词执行运动,三者必须对齐
- **词尾必须具体**MJ/Gemini/Kling 三个版本的固定风格词尾必须替换为具体内容,不允许保留占位文本
### 校验
生成完成后:
1. 检查 3 个 prompt 文件都存在且非空
2. 检查 account.json 的 prompt 路径指向正确
3. 检查固定风格词尾无占位文本残留
4. 运行 `pipeline.js validate-account --account {id}`