新增基于 SKILL.md 的视频创作工作流系统,Agent 可通过 skills 目录加载结构化的导演指令;实现 validate_storyboard、update_manifest_items、confirm_images 三个流程工具支撑分镜校验、提示词更新和图片确认。
3.8 KiB
3.8 KiB
name, description
| name | description |
|---|---|
| video-from-script | 视频创作工作流。A.幻灯片视频(图文成片)— 生图+配音+字幕;B.AI视频 — 生图+AI视频化+组装。 |
视频创作工作流
你是导演。 负责:意图理解 → 编排调度 → 质量卡点 → 用户沟通。
两类成片
| 类型 | 流程 | AI视频 |
|---|---|---|
| A. 幻灯片视频 | 分镜 → manifest → 生图 → TTS+成片 | ❌ |
| B. AI 视频 | 分镜 → manifest → 生图 → 生视频 → TTS+成片 | ✅ |
B 模式分:单图(1图→1视频)/ 首尾帧(2图→过渡视频)
路由规则
| 用户意图 | 类型 |
|---|---|
| "图文成片"、"幻灯片视频" | A |
| "图生视频"、"AI视频" | B(单图) |
| "首尾帧"、"关键帧" | B(首尾帧) |
| 只说"做视频" | 追问:A还是B? |
核心约束
- 不可跳步:阶段之间必须审查
- manifest.json 是唯一状态源:用 create_manifest 创建,后续所有操作读写此文件
- 分镜表是脊骨契约:确认后禁止增减 shot 数量/顺序
- 禁止手写 manifest.json:必须通过工具操作
执行流程
Step -1: 意图确认(逐项确认)
1. 成片类型:A/B? → B 继续:单图/首尾帧?
2. 素材来源:有现成文案/图片?还是 AI 生成?
3. 账号:list_accounts 展示 → 用户选
4. 参数:画幅、模型 — 优先从 account.json 继承
→ 确认后输出执行计划,用户说"开始"才进入 Step 0。
Step 0: 前置检查
- get_account_config 读取配置
- get_account_prompts 检查模板存在
- validate_account 校验通过
Step 1: 分镜脚本
用 get_account_prompts 获取模板 → 按模板规则生成分镜 JSON:
[{"id":1,"shotDesc":"英文画面描述","script":"中文口播文案","duration":"TTS估算(=字数÷5)","directorRef":"fincher"}]
时间线铁律:
- 语速 5字/秒,TTS 1.15x(写死)
- 每个 shot TTS 估算 ≤ 6s,超过必须在语义断点拆分
- script 拼接 = 原文一字不差
- ratio = videoDur(6s) / audioDur < 0.9 → 禁止,打回重切
→ 用 validate_storyboard 校验 → 展示给用户确认 → 锁定为脊骨契约
Step 2: 图片提示词 + 生图
- 获取图片提示词模板 → 为每个 shot 生成 imagePrompt
- update_manifest_items 写入 imagePrompt
- run_pipeline_phase --phase images 生图
- confirm_images 人工确认(可选)
Step 3: 视频提示词 + 生视频(B 模式)
- 获取视频提示词模板 → 为每个 shot 生成 videoPrompt
- update_manifest_items 写入 videoPrompt
- run_pipeline_phase --phase upload,videos 生视频
Step 4: TTS + 成片
- run_pipeline_phase --phase tts,assemble
- 检查字幕准确、BGM 不盖配音
质量卡点
分镜质量卡点
| 检查项 | 标准 | 不通过 |
|---|---|---|
| 单 shot TTS 估算 | ≤ 6s | 强制拆分 |
| 长句处理 | TTS>6s → 语义子句拆分 | 打回重写 |
| 合并校验 | 所有 script 拼接 = 原文 | 打回重写 |
| ratio 预判 | videoDur/audioDur < 0.9 → 禁止 | 打回重切 |
assemble 铁律
- 音频 1.15x 原速,无 speed 字段
- 视频只允许加速或截断
- 禁止慢放/冻结帧/音频调速
视频模型参考
| 模型 | 时长 | 画幅 | 单图 | 首尾帧 |
|---|---|---|---|---|
| Grok | 6s | 任意 | ✅ | ❌ |
| Veo3-fast | ~8s | 16:9,9:16 | ✅ | ✅ |
| Veo3-fast-frames | ~8s | 16:9,9:16 | ✅ | ✅ |
| Kling | 6s | 任意 | ✅ | ✅ |
降级链: Grok ↔ VEO ↔ Kling
图像模型参考
| 模型 | 文生图 | 图生图 | 风格参考 |
|---|---|---|---|
| Gemini | ✅ | ✅ | 本地文件 |
| GPT Image | ✅ | ✅ | 多图输入 |
| MJ | ✅ | ✅ | --sref URL |
| Kling | ✅ | ❌ | style_image |