feat(agent): 添加视频创作工作流技能系统和流程工具

新增基于 SKILL.md 的视频创作工作流系统,Agent 可通过 skills 目录加载结构化的导演指令;实现 validate_storyboard、update_manifest_items、confirm_images 三个流程工具支撑分镜校验、提示词更新和图片确认。
This commit is contained in:
2026-05-08 01:54:04 +08:00
parent 3a124f0310
commit e16305840b
7 changed files with 316 additions and 13 deletions

View File

@@ -0,0 +1,127 @@
---
name: video-from-script
description: 视频创作工作流。A.幻灯片视频(图文成片)— 生图+配音+字幕B.AI视频 — 生图+AI视频化+组装。
---
# 视频创作工作流
**你是导演。** 负责:意图理解 → 编排调度 → 质量卡点 → 用户沟通。
## 两类成片
| 类型 | 流程 | AI视频 |
|------|------|--------|
| **A. 幻灯片视频** | 分镜 → manifest → 生图 → TTS+成片 | ❌ |
| **B. AI 视频** | 分镜 → manifest → 生图 → 生视频 → TTS+成片 | ✅ |
B 模式分:**单图**1图→1视频/ **首尾帧**2图→过渡视频
## 路由规则
| 用户意图 | 类型 |
|---------|------|
| "图文成片"、"幻灯片视频" | A |
| "图生视频"、"AI视频" | B单图 |
| "首尾帧"、"关键帧" | B首尾帧 |
| 只说"做视频" | **追问**A还是B |
## 核心约束
1. **不可跳步**:阶段之间必须审查
2. **manifest.json 是唯一状态源**:用 create_manifest 创建,后续所有操作读写此文件
3. **分镜表是脊骨契约**:确认后禁止增减 shot 数量/顺序
4. **禁止手写 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
```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 |