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

1 一图流:拆 → 补 → 叠 → 画 → 验

✅ 已验证(补全那一步除外,📐)

                 origin.png (1024×1536)
                        │
        ┌───────────────┴───────────────┐
        │  拆分  trace_prepare.py       │   裸 python, 不需要 Krita, 约 2.5 分钟
        │   4  segment.regions → 15 部件 │
        │   5  alpha_from_image → 亚像素 α│
        │   6  cel.levels → 2–5 档色阶   │
        │   7  contour.trace → 贝塞尔    │
        │  17–21 strokes.* → 8 万笔计划  │
        └───────────────┬───────────────┘
                        │  plan.json + strokes.jsonl
        ┌───────────────┴───────────────┐
        │  补全  (📐 未实现)             │   被遮挡的部件补完整
        └───────────────┬───────────────┘
                        │
        ┌───────────────┴───────────────┐
        │  叠层 + 重绘  job_trace.py     │   Krita 无头, 约 5 分钟
        │  12–14 建 307 节点的图层树     │
        │  27  逐笔 paintPath / paintLine│
        └───────────────┬───────────────┘
                        │  final.kra + final.png + strokes.jsonl(日志)
        ┌───────────────┴───────────────┐
        │  验收  gauge.py               │   归一到 2508px, 以源图为锚
        └───────────────────────────────┘

两步,中间是文件

流程被刻意切成两个进程

进程干什么耗时
1 读画python3分割、解 α、切色阶、矢量化、规划笔画~2.5 分钟
2 落笔Krita(xvfb)建图层树、加矢量、逐笔画、存盘~5 分钟

切开的理由:迭代参数时不用每次起 Krita。第一步产出 plan.json(曲线)和 strokes.jsonl(笔画计划),还有一张 1x 的 preview.png——规划器自己模拟出来的成品,不起 Krita 就能看个大概。第二步只是照着画。

./paint trace 把两步串起来,末尾自动打印判据。

分工:矢量管边,笔画管里面

整条流程的核心主张只有一句:

矢量层  负责边            解析级平滑, 分辨率无关
笔画    负责边以内的一切   平涂 / 柔和过渡 / 排线 / 发丝 / 细节 / 线稿

边为什么不能用笔画?因为笔画是光栅的,在 8K 上画一条边,边的形状取决于笔刷的形状,而不是取决于源图。矢量曲线是从源图的抗锯齿边解出来的(第 5 章),位置准到亚像素,而且 8x / 16x / 100x 都一样光滑。

里面为什么不能用矢量?因为矢量填出来是死平的一块。人画的东西有笔触、有过渡、有排线、有发丝——这些是笔画的事。

两者在 Krita 里的结合点是 clip:矢量层做组底定义形状,笔画层 setInheritAlpha(True) 裁到它。笔可以随便涂出界,边永远是那条曲线(第 13 章)。

一次跑下来的数字

origin.png 为例,最终成品:

画布8192×12288(8x)
部件15
色阶组73(每部件 2–5 档)
图层节点307,其中矢量层 74
贝塞尔607 环 / 20,495 控制点
笔画80,669 笔 / 99,755 次落笔调用
写像素2 次(背景铺黑)
耗时读画 ~150s + 落笔 217s + 存盘 ≈ 8 分钟
.kra323 MB

判据(全部归一到 2508px 再量,第 32 章):

判据源图bicubic ×8本流程
8px 阶梯指纹(放大痕迹)6.192.230.78
梯度 p99(边锐不锐)41.639.336.9(源图的 89%)
8 级量化色数(层次)290028001840(63%)
低频 likeness(降到 256 宽比)33.57 dB
全图最暗像素(0,0,0)(0,0,0)(0,0,0)

阶梯指纹 2.23 → 0.78 是主结果:放大痕迹没了。边的锐度 36.9 低于纯矢量阶段的 78.9——笔画在软化边,这是第五部末尾明确留下的账。

8K 原尺寸 1:1 眼部特写。左:bicubic ×8(能看到阶梯和糊)。中:只有矢量层(边是真曲线)。右:落完 8 万笔。