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

7.0 KiB
Raw Blame History

账号创建流程

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}