# 账号系统规范 > 每个账号独立管理视觉风格、提示词策略和 CapCut 配置。 > 视觉风格直接内嵌在 prompts/*.md 中,无需单独的 styles/ 目录。 --- ## 目录结构 ``` accounts/ # 项目根目录下 ├── _template/ # 新账号模板(含通用 prompt 模板) │ ├── account.json │ ├── prompts/ # 通用提示词模板(生成账号 prompt 的基础) │ │ ├── 通用分镜.md │ │ ├── 通用图片.md │ │ └── 通用视频.md │ └── references/ # 参考图目录 │ └── .gitkeep └── {account}/ # 用户创建的账号(目录名 = account.json 的 id) ├── account.json ├── prompts/ # 账号专属提示词(基于通用模板 + 风格注入生成) │ ├── 分镜.md # 口播文案 → 分镜表 │ ├── 图片提示词.md # shotDesc → imagePrompt │ └── 视频提示词.md # shotDesc → videoPrompt └── references/ # 参考图(生图时作为参考输入) ├── ref_001.png └── ref_002.png ``` --- ## account.json 字段说明 ```json { "id": "tech-talk", "name": "科技解说", "description": "科技类短视频账号,深色背景,赛博朋克风格", "imageModel": "gemini", "videoModel": "kling", "batchSize": 30, "storyboardPrompt": "prompts/分镜.md", "imageStylePrompt": "prompts/图片提示词.md", "videoStylePrompt": "prompts/视频提示词.md", "references": [ { "file": "ref_001.png", "url": "https://oss.../ref_001.png" } ], "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 | 视频提示词模板路径(相对于账号目录) | | `references` | array | 参考图列表,每项含 file(本地文件名)和 url(OSS 公网地址) | | `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 后自动定位。 ### 生成方式 账号的 prompts 基于 `_template/prompts/通用*.md` 生成: - 通用模板提供**方法论骨架**(切割规则、导演词库、写法规范、输出格式、质量自检) - 创建账号时通过 Q&A 收集风格信息,注入到骨架的固定位置 - 详细流程见 [account-creation.md](account-creation.md) --- ## 参考图(references/) 参考图用于生图时的风格引导(Gemini 图生图 / MJ --sref)。 ### 管理流程 1. 用户将参考图放入 `accounts/{id}/references/` 目录 2. Agent 上传到 OSS:`node scripts/oss-upload.js accounts/{id}/references/{图片文件}` 3. 将返回的 URL 写入 account.json 的 `references` 数组 --- ## 创建新账号 ### Q&A 创建(推荐) 用户说"创建账号"或"新账号"时,Agent 按 [account-creation.md](account-creation.md) 的结构化问答流程执行: 1. 逐项询问:账号身份 → 内容 DNA → 视觉身份 → 技术配置 2. 基于通用模板 + 用户回答生成 3 个 prompt 文件 + account.json 3. 校验完整性 ### CLI 创建(辅助) ```bash node scripts/pipeline.js create-account \ --id military \ --name "军事账号" \ --desc "军事主题短视频,暗黑漫画风格" \ --video-model veo3-fast-frames \ --references ./ref1.png,./ref2.png ``` 自动完成:创建目录 → 生成 account.json → 复制参考图 → 上传 OSS → 回写 URL。 **注意**:CLI 创建只生成目录结构和 account.json 骨架,prompt 文件仍需通过 Q&A 流程或手动创建。 ### 校验账号 ```bash node scripts/pipeline.js validate-account --account military ``` 检查:id 匹配、必填字段、prompts 模板存在、参考图完整性、OSS URL 有效。