Files
video-create/.claude/skills/video-from-script/references/account-creation.md
sion123 7d526d2b60 feat(video-pipeline): 重构多阶段生成管线并集成 CosyVoice TTS
- 重写 `phase-images`:改为并发 3 张并行生成,每个 item 完成立即写入 manifest,支持 MJ task ID 恢复
- 重写 `phase-videos`:先恢复已有 task ID 再提交新任务(并发 3),支持中断恢复
- 迁移 TTS 引擎:从 Qwen-TTS HTTP 接口切换为 CosyVoice WebSocket 接口,支持音色/语气参数透传
- 精简账号系统:移除 `styles/` 目录、`taskId` 过滤和 `--id` 正则校验,`references` 改为顶层字段
- 调整 `slugify`:限制中文字符 5 个、其他 10 个,避免文件名过长
- 更新文档:`manifest-schema.md` 中 `narration` 改为完整原文案,`account-creation.md` 新增 TTS 配置项
- 配置更新:默认 TTS 模型切换为 `cosyvoice-v3.5-plus`,新增 `localAudio` 参数
2026-05-01 00:44:18 +08:00

195 lines
7.0 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 模板 + 风格注入,生成完整的账号配置。
---
## 创建流程
```
用户说"创建账号"/"新账号"
Phase 1: 账号身份(必须)
Phase 2: 内容 DNA必须
Phase 3: 视觉身份必须3种输入方式
Phase 4: 技术配置(有默认值,可跳过)
汇总确认 → 生成文件 → 校验
```
---
## 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 → 账号内容理解.内容气质 |
**注入规则**
- 角色定义改为"专精{Q3}类口播文案转化为{Q6}画面的分镜导演"
- 新增「账号内容理解」节(仅供子 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技术配置有默认值
| # | 问题 | 默认值 | 说明 |
|---|------|--------|------|
| 10 | 视频运动偏好? | 克制慢速 | 注入视频.md → 运动风格基调 |
| | 选项:克制慢速 / 流畅中速 / 快速激烈 | | |
| 11 | 画幅? | 9:16 | account.json 的 defaultFormat |
| 12 | 生图模型? | gemini | account.json 的 imageModel |
| 13 | 视频模型? | veo3-fast | account.json 的 videoModel |
| 14 | 参考图文件? | 无 | 用户稍后放入 references/ 目录Agent 上传 OSS 回写 URL |
| 15 | TTS 音色? | config.json 全局 ttsVoice | account.json 的 ttsVoice留空用全局默认 |
| 16 | TTS 语气指令? | 无 | account.json 的 ttsInstruction描述期望的语气风格 |
**运动偏好 → 视频提示词映射**
| 用户选择 | 运动风格基调 |
|---------|-------------|
| 克制慢速 | 克制优于激烈,慢优于快,张力优于美感,隐忍优于爆发 |
| 流畅中速 | 流畅自然,节奏跟随文案情绪,张弛有度,不刻意制造压迫 |
| 快速激烈 | 快节奏推进,冲击力优先,镜头运动幅度大,情绪外放 |
---
## 汇总确认
问答结束后Agent 输出汇总表让用户确认:
```
## 账号创建确认
### 基本信息
- 名称:{name}
- 描述:{description}
- 目录accounts/{id}/
### 内容方向
- 核心方向:{Q3}
- 目标受众:{Q4}
- 内容气质:{Q5}
### 视觉风格
- 基调:{Q6}
- 画风:{Q7}
- 色彩:{Q8 摘要}
- 质感:{Q9}
### 技术配置
- 运动:{Q10}
- 画幅:{Q11}
- 生图模型:{Q12}
- 视频模型:{Q13}
- TTS音色{Q15}
- TTS语气{Q16}
确认 "开始" → 创建账号
修改 → 调整后重新输出
```
---
## 生成规则
### 文件创建
确认后Agent 按以下顺序生成:
1. **创建目录结构**
```
accounts/{id}/
├── account.json
├── prompts/
│ ├── 分镜.md
│ ├── 图片提示词.md
│ └── 视频提示词.md
└── references/ # 参考图目录(用户稍后放入)
```
2. **生成 account.json**
- 从 `_template/account.json` 复制骨架
- 填入 id、name、description、模型、画幅等
3. **生成分镜.md**
- 读取 `_template/prompts/通用分镜.md`
- 在角色定义中注入 Q3 内容方向
- 新增「账号内容理解」节Q3+Q4+Q5
- 新增「宏观视觉风格方向」节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}`