新增基于 SKILL.md 的视频创作工作流系统,Agent 可通过 skills 目录加载结构化的导演指令;实现 validate_storyboard、update_manifest_items、confirm_images 三个流程工具支撑分镜校验、提示词更新和图片确认。
128 lines
3.8 KiB
Markdown
128 lines
3.8 KiB
Markdown
---
|
||
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 |
|