将视频制作工作流拆分为独立子步骤:分镜 → 图片提示词 → 生图 → 视频提示词 → 生视频 → 成片,每步由子Agent独立执行。引入prompts/目录统一管理提示词模板(分镜.md、图片提示词.md、视频提示词.md),通过account.json的storyboardPrompt/imageStylePrompt/videoStylePrompt字段引用。 变更内容: - 新增confirmed机制和pipeline.js confirm命令,生图后必须人工确认才能继续 - manifest schema改用shotDesc/narration/duration/directorRef替代旧字段 - 文件命名规则从keyword改为slug(从shotDesc/narration派生) - 删除旧的storyboard-rules.md和prompt-rules.md - pipeline.js脚本拆分为lib/目录下的独立模块(cmd-init/cmd-confirm/cmd-validate/phase-*) - 新增cmd-create-account支持一键创建带prompts目录的账号 - capcut_assemble支持narration字段替代text作为字幕源 - 新增.gitclaude/settings.json权限配置
5.8 KiB
5.8 KiB
账号系统规范
每个账号独立管理视觉风格、提示词策略和 CapCut 配置。 一个账号可以有多种视觉风格,每种风格是一个独立的 style 文件。
目录结构
accounts/ # 项目根目录下
├── _template/ # 新账号模板(复制此目录创建新账号)
│ ├── account.json
│ ├── prompts/ # 提示词模板目录(子 Agent 系统提示词)
│ │ └── .gitkeep
│ ├── references/ # 参考图目录
│ │ └── .gitkeep
│ └── styles/ # 风格文件目录(可多个)
│ └── .gitkeep
└── {account}/ # 用户创建的账号(目录名 = account.json 的 id,输出目录用 name 命名)
├── account.json
├── prompts/ # 提示词模板(账号专属)
│ ├── 分镜.md # 口播文案 → 分镜表
│ ├── 图片提示词.md # shotDesc → imagePrompt
│ └── 视频提示词.md # shotDesc → videoPrompt
├── references/ # 参考图(所有风格共用)
│ ├── ref_001.png
│ └── ref_002.png
└── styles/ # 风格文件(一个文件 = 一种视觉风格)
├── cyberpunk-character.md
├── dark-archive.md
└── neon-city.md
account.json 字段说明
{
"id": "tech-talk",
"name": "科技解说",
"description": "科技类短视频账号,深色背景,赛博朋克风格",
"imageModel": "gemini",
"videoModel": "kling",
"batchSize": 30,
"storyboardPrompt": "prompts/分镜.md",
"imageStylePrompt": "prompts/图片提示词.md",
"videoStylePrompt": "prompts/视频提示词.md",
"capcut": {
"effects": ["录制边框 III"],
"filter": "电影感:40",
"subtitleStyle": {
"fontSize": 36,
"color": "#FFFFFF",
"highlightColor": "#FF6B35",
"bold": true
},
"defaultBGM": "https://example.com/bgm_tech.mp3"
}
}
| 字段 | 类型 | 说明 |
|---|---|---|
id |
string | 账号唯一标识(与目录名一致) |
name |
string | 账号显示名 |
description |
string | 一句话描述 |
defaultFormat |
string | 默认画幅(9:16 / 16:9 / 1:1 / 4:3) |
imageModel |
string | 默认图片模型 |
videoModel |
string | 默认视频模型 |
batchSize |
number | 默认批量生成数量 |
storyboardPrompt |
string | 分镜提示词模板路径(相对于账号目录) |
imageStylePrompt |
string | 图片提示词模板路径(相对于账号目录) |
videoStylePrompt |
string | 视频提示词模板路径(相对于账号目录) |
capcut.effects |
string[] | CapCut 特效名称列表 |
capcut.filter |
string | CapCut 滤镜,格式 "名称:强度" |
capcut.subtitleStyle |
object | 字幕样式(字号、颜色、高亮色、加粗) |
capcut.defaultBGM |
string | 默认背景音乐 URL |
提示词模板(prompts/)
每个账号在 prompts/ 目录下维护三个子 Agent 提示词模板:
| 文件 | 用途 | Step |
|---|---|---|
分镜.md |
口播文案 → 分镜表(shotDesc/narration/duration/directorRef) | Step 1 |
图片提示词.md |
shotDesc + directorRef → imagePrompt | Step 2-A |
视频提示词.md |
shotDesc + directorRef → videoPrompt | Step 3-A |
这些文件定义了子 Agent 的角色、入参、出参、词库和示例。路径在 account.json 中以相对路径引用,Agent 读取 account.json 后自动定位。
与 style 文件的关系
- prompts/ — 子 Agent 的系统提示词(定义 HOW 生成提示词)
- styles/ — 视觉规则参考(定义 WHAT 风格应该长什么样:颜色、构图、禁止项)
- prompts 模板内部会引用 styles 中定义的色彩体系、构图规则等
风格文件(styles/)
每种视觉风格一个文件,文件名即风格名。文件内包含视觉规则参考。
风格文件结构
# 风格名称
一句话描述风格。
---
## 核心视觉要素
### 色调方案
### 构图模式
### 示例
### 模型参数(MJ/Gemini/Kling)
### 禁止项
风格文件命名
使用中文命名,直观识别:
赛博东方角色.md暗黑禁书档案.md霓虹城市.md水墨山水.md
创建新账号
一键创建(推荐)
node scripts/pipeline.js create-account \
--id military \
--name "军事账号" \
--desc "军事主题短视频,暗黑漫画风格" \
--video-model veo3-fast-frames \
--references ./ref1.png,./ref2.png
自动完成:创建目录 → 生成 account.json → 复制参考图 → 上传 OSS → 回写 URL → 生成风格骨架。
手动创建
- 复制
_template/目录,重命名为账号 ID - 编辑
account.json填写账号信息(含 prompts 路径) - 在
prompts/中放入提示词模板(从工作流程/草稿区复制) - 在
references/中放入参考图(所有风格共用) - 上传参考图到 OSS,URL 写入 account.json:
node scripts/oss-upload.js ../../accounts/{id}/references/{图片文件}- 将返回的 URL 写入
styles.{styleName}.references[].url
- 在
styles/中创建风格文件(至少一个)
校验账号
node scripts/pipeline.js validate-account --account military
检查:id 匹配、必填字段、prompts 模板存在、参考图完整性、风格文件存在、OSS URL 有效。
添加新风格
在账号的 styles/ 目录下新建 .md 文件即可,文件名即风格 ID。
Claude 调用时指定风格名,如 "用 cyberpunk-eastern-character 风格"。