mit einem Klick
manga-workflow
// 完整的端到端工作流程,将小说转换为视频。使用场景:(1) 用户运行 /manga-workflow 命令,(2) 用户想开始新的视频项目,(3) 用户想继续现有项目。按顺序编排所有其他 skill,并在每个阶段设置审核检查点。
// 完整的端到端工作流程,将小说转换为视频。使用场景:(1) 用户运行 /manga-workflow 命令,(2) 用户想开始新的视频项目,(3) 用户想继续现有项目。按顺序编排所有其他 skill,并在每个阶段设置审核检查点。
| name | manga-workflow |
| description | 完整的端到端工作流程,将小说转换为视频。使用场景:(1) 用户运行 /manga-workflow 命令,(2) 用户想开始新的视频项目,(3) 用户想继续现有项目。按顺序编排所有其他 skill,并在每个阶段设置审核检查点。 |
完整的端到端工作流程,将小说转换为视频。
系统支持两种内容模式,通过 project.json 中的 content_mode 字段切换:
| 模式 | content_mode | 画面比例 | 默认时长 | Agent |
|---|---|---|---|---|
| 说书+画面(默认) | narration | 9:16 竖屏 | 4 秒 | novel-to-narration-script |
| 剧集动画 | drama | 16:9 横屏 | 8 秒 | novel-to-storyboard-script |
开始
│
├─ 新项目? ──────────────────┐
│ │
│ 1. 创建项目目录 │
│ 2. 将小说复制到 source/ │
│ 3. 创建 project.json │
│ 4. 选择 content_mode │
│ └─────────────────────────┘
│
├─ 检查项目状态 (project.json)
│ │
│ ├─ 没有剧本?
│ │ ├─ narration 模式 → novel-to-narration-script agent(3 步)
│ │ └─ drama 模式 → novel-to-storyboard-script agent(4 步)
│ │ └─► 审核 ──┐
│ │
│ ├─ 没有确认线索? ───► 确认 clues 列表 ──► 更新 project.json ──┐
│ │
│ ├─ 没有人物设计? ────► /generate-characters ──► 审核 ──┐
│ │
│ ├─ 没有线索设计? ────► /generate-clues ──► 审核 ──┐
│ │
│ ├─ 没有分镜图? ──────► /generate-storyboard ──► 审核 ──┐
│ │
│ ├─ 没有视频? ────────► /generate-video ──► 审核 ──┐
│ │
│ └─ 准备合成? ───────► /compose-video ──► 完成!
项目概述:上传源文件后,系统会自动分析小说内容并生成项目概述(故事梗概、题材类型、核心主题、世界观设定)。概述信息会保存到
project.json的overview字段,供后续 Agent 参考。
新项目:
projects/{名称}/ 及子目录(含 clues/、drafts/)project.json 初始文件narration(默认)或 dramasource/现有项目:
projects/ 中的项目project.json 中的项目状态根据 content_mode 调用不同的 Agent(使用 Opus 模型):
使用 Task 工具调用 novel-to-narration-script agent:
segment_breakproject.jsonsegments 结构剧本输出:
drafts/episode_{N}/step1_segments.mddrafts/episode_{N}/step2_character_clue_tables.mdscripts/episode_N.json(使用 segments 数组)使用 Task 工具调用 novel-to-storyboard-script agent:
segment_breakproject.jsonscenes 结构剧本输出:
drafts/episode_{N}/step1_normalized_script.mddrafts/episode_{N}/step2_shot_budget.mddrafts/episode_{N}/step3_character_clue_tables.mdscripts/episode_N.json(使用 scenes 数组)审核检查点:Agent 完成后,展示剧本摘要和线索列表,等待确认。
数据分层说明:
project.jsoncharacters_in_segment/scene 和 clues_in_segment/scene 名称列表project.json 读取角色/线索信息在 agent 完成后:
importance 级别(major/minor)project.json 中的 clues 字段审核检查点:确认线索列表完整。
调用 /generate-characters:
characters/project.json审核检查点:展示每个人物,允许重新生成。
调用 /generate-clues:
importance='major' 的线索生成设计图(16:9 横屏)clues/project.json审核检查点:展示每个线索设计图,允许重新生成。
调用 /generate-storyboard:
| 模式 | 流程 | 画面比例 |
|---|---|---|
| narration | 直接生成分镜图 | 9:16 竖屏 |
| drama | 两步:多宫格 → 单独场景图 | 16:9 横屏 |
storyboards/审核检查点:展示每张分镜图,允许重新生成。
调用 /generate-video:
| 模式 | 画面比例 | 默认时长 | Prompt 内容 |
|---|---|---|---|
| narration | 9:16 竖屏 | 4 秒 | 仅对话,无旁白 |
| drama | 16:9 横屏 | 8 秒 | 对话 + 旁白 + 音效 |
videos/ 和 output/--resume)审核检查点:预览每个视频,允许重新生成。
调用 /compose-video:
segment_break 标记)output/随时检查项目状态:
from lib.project_manager import ProjectManager
pm = ProjectManager()
# 加载项目元数据
project = pm.load_project("my_project")
print(project['status'])
# 同步并更新状态
pm.sync_project_status("my_project")
在剧本中添加 clues_in_segment 或 clues_in_scene 字段:
{
"segment_id": "E1S3",
"characters_in_segment": ["姜月茴"],
"clues_in_segment": ["玉佩", "老槐树"],
"image_prompt": { ... },
"video_prompt": { ... }
}
生成分镜时,线索参考图会自动加入 API 调用。
pm.add_clue(
"my_project",
name="玉佩",
clue_type="prop", # 或 "location"
description="翠绿色祖传玉佩...",
importance="major"
)
工作流可以中断后恢复:
project.json 记录项目整体状态/manga-workflow 即可继续使用 Gemini API 生成 JSON 剧本。使用场景:(1) 用户运行 /generate-script 命令,(2) 已完成 Step 1/2 需要生成最终剧本。读取 step1_segments.md 和 project.json,调用 gemini-3-flash-preview 生成符合 Pydantic 模型的 JSON 剧本。
使用 Gemini 图像生成 API 为视频生成人物设计图。使用场景:(1) 用户需要为项目生成人物参考图,(2) 用户运行 /generate-characters 命令,(3) 剧本中有人物没有 character_sheet 路径。生成一致的人物设计用于分镜和视频生成。
使用 Gemini 图像生成 API 为视频生成线索设计图。使用场景:(1) 用户需要为项目生成线索参考图,(2) 用户运行 /generate-clues 命令,(3) project.json 中有 importance='major' 的线索没有 clue_sheet 路径。生成一致的线索设计用于分镜和视频生成。
使用 Gemini 图像 API 生成分镜图。说书模式直接生成分镜图,剧集动画模式使用两步流程。使用场景:(1) 用户运行 /generate-storyboard 命令,(2) 剧本中有场景没有分镜图,(3) 用户想在视频生成前预览场景。
使用 Veo 3.1 API 为每个场景独立生成视频片段,以分镜图作为起始帧,然后使用 ffmpeg 拼接。使用场景:(1) 用户运行 /generate-video 命令,(2) 剧本中有场景没有 video_clip 路径,(3) 用户想将分镜图转换为视频。
使用 ffmpeg 进行视频后期处理。使用场景:(1) 用户运行 /compose-video 命令,(2) 需要添加背景音乐、片头片尾,(3) 需要合并多个 episode 的视频。主要用于后期处理,视频连贯性由 generate-video 的连续模式保证。