Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

从扩散图到分层原画

diffusion-to-painting —— 把一张 AI 生成的平面图,变成一张每个像素都有来历的分层原画。

一张 diffusion 图看起来是画,但它不是画出来的:没有图层、没有笔触、放大就糊、边缘是像素格子。 这本书记录一条把它变成可交付原画的完整流程,以及沿途每一个被实测过的结论和踩过的坑:

一张 diffusion 图
  │
  ├─ 拆分   分割成语义部件, 从抗锯齿边解出亚像素边界, 切色阶, 轮廓矢量化
  ├─ 补全   被遮挡的部件补完整 (📐 设计稿, 未实现)
  ├─ 叠层   在 Krita 里按画师的图层顺序叠回去: 剪影矢量做底, 每个色阶自成一组
  ├─ 重绘   在每个色阶的形状里一笔笔画: 平涂 / 柔和过渡 / 排线 / 发丝 / 细节 / 线稿
  ├─ 记录   每一笔写进 strokes.jsonl, 可回放
  └─ 验收   归一到同一尺度, 以源图为锚, 量边、量色阶、量放大指纹

终点是一份 8192×12288 的 .kra:307 个节点、74 个矢量层、8 万笔,写像素只有 2 次(背景铺黑)。

怎么读

完整目录在左侧边栏。

状态标记

每章第一行有一个标记,这是本书的诚实性所在——没量过的东西不会混进量过的表里

标记含义
✅ 已验证有探针或实测数据,数字可复现
🧪 在做跑通了,但没有收敛到满意
📐 设计只有接口和验收标准,没跑过

仓库布局

book.toml         mdBook 配置
src/
  README.md       封面(本文件)
  SUMMARY.md      目录
  00-前言 … 99-附录   正文, 按流程分八部 + 附录
  assets/         对比图、参考画特写、中间产物
code/             配套代码: 分割 / 矢量化 / 规划笔画 / Krita 落笔 / 判据
probes/           探针: 每个回答一个「Krita 无头下到底行不行」的问题
paint             唯一入口脚本

环境

Fedora 44 · Krita 6.0.2.1(RPM)· PyQt6 · Xvfb · Python 3.14(numpy / scipy / scikit-learn / Pillow / matplotlib)。 Krita 5.x 没有 Node.paintLine,本书代码不兼容 5.x(第 26 章有说明)。

./paint setup      # 装 harness (独立 HOME, 不碰你自己的 Krita 配置)
./paint check      # 31 项自检
./paint trace      # 把 work/input/origin.png 临摹成 8K 分层原画, 约 8 分钟