MangaFlow 六阶段方法论

流水线总览

flowchart TB
    subgraph 输入
        X[故事文本 x]
    end

    subgraph 阶段1[阶段1: 故事规划]
        P1[故事规划智能体]
        S[故事单元 S = s1..sK]
    end

    subgraph 阶段2[阶段2: 故事单元记忆]
        P2[记忆构建]
        M[单元记忆 Mk]
    end

    subgraph 阶段3[阶段3: 版面控制]
        P3A[手动规格]
        P3B[参考提取]
        P3C[智能体生成]
        L0[初始布局 L_i]
        REFLECT[布局自我反思]
        PI[确定性投影 Π]
        L[修正后布局]
    end

    subgraph 阶段4[阶段4: 面板渲染]
        REF[构建引用 Ri,j]
        RENDER[渲染器 R]
        I[面板图像 Ii,j]
    end

    subgraph 阶段5[阶段5: 页面合成]
        COMPOSE[合成智能体]
        PAGE[完整页面]
    end

    subgraph 阶段6[阶段6: 文字植入]
        TEXT[文字智能体]
        FINAL[最终漫画页面]
    end

    X --> P1
    P1 --> S
    S --> P2
    P2 --> M
    M --> REF
    P3A --> L0
    P3B --> L0
    P3C --> L0
    L0 --> REFLECT
    REFLECT --> PI
    PI --> L
    L --> COMPOSE
    REF --> RENDER
    RENDER --> I
    I --> COMPOSE
    L --> COMPOSE
    COMPOSE --> PAGE
    PAGE --> TEXT
    TEXT --> FINAL

阶段1: 故事规划(Story Planning)

目标

将故事文本 分解为结构化的故事单元序列。

数学形式

其中每个故事单元 是一个四元组:

字段含义示例
单元描述”主角在校园天台与对手对峙”
场景标识”校园天台——黄昏”
出场角色集合{主角, 对手}
关键物品集合{栏杆, 书包}

智能体职责

故事规划智能体通过 LLM 理解故事结构,识别场景切换点(scene boundaries),决定每个单元的语义边界。关键决策包括:

  • 场景切换时创建新单元
  • 角色进入/退出场景时更新角色集合
  • 叙事节奏变化时调整单元粒度

阶段2: 故事单元记忆(Story Section Memory)

目标

为每个故事单元构建独立的视觉引用记忆,保证跨面板一致性。

数学形式

其中:

组件类型说明
文本单元描述(复用阶段1)
图像场景参考图像(通过 T2I 生成或检索)
图像集合每个出场角色的参考图像(角色表)
图像集合关键物品的参考图像
结构化文本角色档案(外貌、服装、姿态等结构化描述)

关键设计决策

作用域限定:面板 (第 页第 面板)仅访问其所属单元的记忆 ,而非全部故事上下文。这带来两个好处:

  1. 注意力集中:渲染时只参考当前场景相关的视觉元素
  2. 一致性保证:同一角色在同一单元内的多次出现共享同一 图像

记忆构建流程

故事单元 s_k
  ├── 场景描述 → T2I 生成 → R_scene
  ├── 角色列表 → 角色图像检索/生成 → R_char
  ├── 物品列表 → 物品图像检索/生成 → R_obj
  └── 角色描述 → 结构化提取 → profiles_k

阶段3: 版面控制(Layout Control)

目标

为每一页生成显式的面板布局几何变量。

数学形式

版面 定义第 页的面板区域集合:

每个面板区域表示为边界框:

其中 为左上角坐标, 为宽高(归一化到 )。

三种布局来源

来源符号描述
手动规格用户直接指定面板坐标和尺寸
参考提取从现有漫画页面提取布局结构
智能体生成LLM 根据故事内容自动生成布局

布局自我反思

智能体生成布局后进入反思循环:

批评维度包括:

  • 面板比例是否合理(避免极端长宽比)
  • 阅读流是否自然(左→右,上→下)
  • 大面板是否对应关键情节
  • 整体视觉平衡

确定性投影 Π

反思后的布局 进入确定性修正:

Π 执行以下检查(全部为确定性规则):

  1. 面板数量检查 是否等于故事规划指定的面板数

    • 若不足:插入默认尺寸面板
    • 若超出:裁剪多余面板
  2. 重叠检查

    • 若存在重叠:等比例收缩或平移至不重叠
  3. 边界检查

    • 若越界:裁剪至有效区域
  4. 空白检查 的覆盖率不低于阈值

    • 若有大面积空白:均匀扩展面板填充

Π 的设计哲学:不追求”最优”布局,只保证”可行”布局。类似编译器中的类型检查——不通过则拒绝进入渲染。


阶段4: 引用条件面板渲染(Reference-Conditioned Panel Rendering)

目标

使用单元记忆中的视觉引用,渲染每个面板。

数学形式

首先为面板 (第 页、第 面板)构建引用:

从单元记忆 中选取与当前面板相关的引用。例如:

  • 面板描述提到角色A → 引入
  • 面板场景为”天台” → 引入
  • 面板涉及物品”书包” → 引入

然后渲染:

其中 是渲染器(如 FLUX.2 或 Gemini 2.5 Flash Image), 为面板尺寸。

渲染器无关性

是可替换的模块:

同一流水线、同一引用输入,不同 产生不同视觉风格。


阶段5: 页面合成(Page Composition)

目标

将渲染好的面板按布局合成到完整页面。

数学形式

其中:

  • 为第 页的所有面板图像
  • 为第 页的布局(定义每个面板的位置和尺寸)

执行:

  1. 根据 中的 放置到页面画布的对应位置
  2. 添加面板间隔线(gutter)
  3. 调整面板边缘(可选的效果处理)

阶段6: 文字植入(Lettering)

目标

在合成的页面上添加对话气泡、旁白框和思考气泡。

智能体职责

文字智能体接收:

  • 页面图像
  • 该页各面板的对话内容(对话文本、说话者身份)
  • 面板布局信息

执行操作:

  1. 气泡类型选择

    • 对话 → 椭圆形气泡 + 尖角指向说话者
    • 内心独白/思考 → 云朵形气泡
    • 旁白 → 矩形叙述框
  2. 气泡定位

    • 根据面板内空白区域自动选择位置
    • 避免遮挡关键视觉元素(角色面部、重要物品)
    • 遵循阅读顺序排列多气泡
  3. 文字排版

    • 日式漫画:竖排(上→下,右→左)
    • 其他:根据语言选择横排/竖排
    • 字号和间距根据气泡大小自适应

最终输出


完整流水线汇总

输入故事文本 ,输出漫画页面序列

相关链接