MangaFlow 工作流图
arXiv: 2605.28173 · 东京大学 / 港科大(广州) · 2026.05
1. 完整六阶段管线
graph LR A["📝 故事提示词<br/>Story Prompt"] --> B["📋 阶段一<br/>故事规划<br/>页面·分镜·章节"] B --> C["🧠 阶段二<br/>故事章节记忆<br/>场景/角色/物件引用"] C --> D["🎨 阶段三<br/>布局智能体<br/>3源输入 + Π校正"] D --> E["🖼️ 阶段四<br/>分镜渲染<br/>参考条件生成"] E --> F["📖 阶段五+六<br/>页面合成+文字<br/>气泡/旁白/思考框"] F --> G["📘 漫画页输出<br/>Manga Pages"] C -.->|章节引用馈送| E D -.->|布局几何| E style A fill:#1e293b,stroke:#334155,color:#e2e8f0 style B fill:#312e81,stroke:#4338ca,color:#c7d2fe style C fill:#166534,stroke:#16a34a,color:#bbf7d0 style D fill:#9d174d,stroke:#db2777,color:#fbcfe8 style E fill:#b45309,stroke:#f59e0b,color:#fde68a style F fill:#0e7490,stroke:#06b6d4,color:#cffafe style G fill:#1e293b,stroke:#38bdf8,color:#7dd3fc
管线说明
| 阶段 | 名称 | 输入 | 输出 | 核心机制 |
|---|---|---|---|---|
| 1 | 故事规划 | 故事提示词 | 页面/分镜/章节分解 | LLM 结构化分解 |
| 2 | 章节记忆 | 章节分解结果 | 场景/角色/物体引用 Mₖ | 结构化存储,同章节复用 |
| 3 | 布局控制 | 3种布局源 | Lᵢ = {面板区域} | Π 确定性校正 + 自反思 |
| 4 | 分镜渲染 | 布局 + 章节引用 | 逐面板视觉内容 | 参考条件图像生成 |
| 5+6 | 合成+文字 | 渲染分镜 | 完整漫画页 | 气泡/旁白/思考框 |
2. 故事章节记忆结构
graph TB subgraph 故事分解 S["📕 完整故事<br/>Story"] -->|分解| SEC1["s₁: 章节1<br/>description + scene"] S -->|分解| SEC2["s₂: 章节2<br/>description + scene"] S -->|分解| SEC3["sₖ: 章节k<br/>description + scene"] end subgraph 记忆存储 SEC1 --> M1["🧠 M₁<br/>desc + scene-ref<br/>char-refs[ ]<br/>object-refs[ ]<br/>profiles"] SEC2 --> M2["🧠 M₂<br/>desc + scene-ref<br/>char-refs[ ]<br/>object-refs[ ]<br/>profiles"] SEC3 --> M3["🧠 Mₖ<br/>desc + scene-ref<br/>char-refs[ ]<br/>object-refs[ ]<br/>profiles"] end subgraph 分镜复用 M1 --> P1["🖼️ 分镜 1-a<br/>复用 M₁ 角色/场景"] M1 --> P2["🖼️ 分镜 1-b<br/>复用 M₁ 角色/场景"] M2 --> P3["🖼️ 分镜 2-a<br/>复用 M₂ 角色/场景"] M3 --> P4["🖼️ 分镜 k-a<br/>复用 Mₖ 角色/场景"] end P1 & P2 --> PAGE1["📖 第1页"] P3 --> PAGE2["📖 第2页"] P4 --> PAGEK["📖 第k页"] style S fill:#1e293b,stroke:#38bdf8,color:#7dd3fc style SEC1 fill:#312e81,stroke:#4338ca,color:#c7d2fe style SEC2 fill:#312e81,stroke:#4338ca,color:#c7d2fe style SEC3 fill:#312e81,stroke:#4338ca,color:#c7d2fe style M1 fill:#166534,stroke:#16a34a,color:#bbf7d0 style M2 fill:#166534,stroke:#16a34a,color:#bbf7d0 style M3 fill:#166534,stroke:#16a34a,color:#bbf7d0 style P1 fill:#b45309,stroke:#f59e0b,color:#fde68a style P2 fill:#b45309,stroke:#f59e0b,color:#fde68a style P3 fill:#b45309,stroke:#f59e0b,color:#fde68a style P4 fill:#b45309,stroke:#f59e0b,color:#fde68a style PAGE1 fill:#0e7490,stroke:#06b6d4,color:#cffafe style PAGE2 fill:#0e7490,stroke:#06b6d4,color:#cffafe style PAGEK fill:#0e7490,stroke:#06b6d4,color:#cffafe
记忆设计要点
- 章节定义: sₖ = (描述, 场景, 角色列表, 关键物件列表)
- 记忆结构: Mₖ = (描述, 场景引用, 角色引用数组, 物件引用数组, 结构化档案)
- 复用机制: 同一章节的所有分镜共享 Mₖ → 角色形象/场景背景保持一致
- 跨章节隔离: 不同章节有独立记忆 → 场景切换时引用自动更新
3. 布局控制流程
graph TB subgraph 输入源 A["✋ 手动布局规格<br/>Manual Spec"] --> MERGE["📥 布局源合并"] B["📸 参考漫画提取<br/>Reference Extraction"] --> MERGE C["🤖 智能体生成<br/>Agent Generation"] --> MERGE end MERGE --> AGENT["🎨 布局智能体<br/>Layout Agent<br/>初始布局生成"] AGENT --> PI["🔧 Π 确定性投影校正<br/>Projection Correction"] subgraph 校正规则 PI --> C1["✓ 面板数量校验"] PI --> C2["✓ 重叠区域检测"] PI --> C3["✓ 边界越界检查"] PI --> C4["✓ 空白区域填充"] end PI --> REFLECT{"🔄 自反思<br/>Self-Reflection"} REFLECT -->|未通过| AGENT REFLECT -->|通过 ✓| FINAL["✅ 最终布局 Lᵢ<br/>{panel regions}"] FINAL --> RENDER["🖼️ 分镜渲染"] style A fill:#1e293b,stroke:#94a3b8,color:#e2e8f0 style B fill:#1e293b,stroke:#94a3b8,color:#e2e8f0 style C fill:#1e293b,stroke:#94a3b8,color:#e2e8f0 style MERGE fill:#312e81,stroke:#4338ca,color:#c7d2fe style AGENT fill:#9d174d,stroke:#db2777,color:#fbcfe8 style PI fill:#4a044e,stroke:#a21caf,color:#e879f9 style C1 fill:#1e293b,stroke:#475569,color:#94a3b8 style C2 fill:#1e293b,stroke:#475569,color:#94a3b8 style C3 fill:#1e293b,stroke:#475569,color:#94a3b8 style C4 fill:#1e293b,stroke:#475569,color:#94a3b8 style REFLECT fill:#9d174d,stroke:#db2777,color:#fbcfe8 style FINAL fill:#166534,stroke:#16a34a,color:#bbf7d0 style RENDER fill:#b45309,stroke:#f59e0b,color:#fde68a
布局控制要点
- 三种输入源并行: 手动规格、参考漫画布局提取、LLM 智能体自主生成 —— 任意组合
- Π 确定性投影: 数学校正函数,保证布局几何合法性(面板数、无重叠、在边界内)
- 自反思迭代: 布局智能体审视自身输出,不合格则重新生成 → 质量闭环
- 布局即一等变量: Lᵢ 作为显式几何变量传递到渲染阶段,完全可编辑/可检查
参考: MangaFlow 论文输入记录