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

附录 E 版本史

这本书之前是一个 Claude skill 仓库,五个大版本。外层的 git 已经删了,提交列表导出在 E-版本史-git导出.md。这里是每一版做了什么、留下了什么。

v0.1.0 — 原版:Krita 5.2.2 + tablet event 注入

往 canvas widget 里 sendEvent 伪造 QTabletEvent。坐标标定事先不可知(0.79–1.05),笔触只能落在第一层,saveAs 段错误,200–600 笔/分。

v1.0.0 — Krita 6 改造

Node.paintLine / paintPath 取代 event 注入。画在指定 node,pressure 驱动 brush engine,5300 笔/分。误判:把 base/top 建在根节点下测 clip,记成「inherit alpha 不生效」。

v1.1.0 — 语义图层

build(spec) 声明式建树、寻址、manifest、color label 第二索引。撤回 v1.0.0 的误判:clip 在 group 内生效。

v1.2.0 — 从已有插画复刻分层 .kra

segment.py 边界屏障分割(三种颜色分类都错)+ 部件内分档。PSNR 28.32。

v1.3.x — 边缘质量自动判定

measure.py:K90 / W / aliased / empty。修掉大气层的伤害(grain ≤ 8 / grade ≤ 24)。对标顶级插画:局部对比 p50 是最能分辨的指标(origin 13–16,平涂 0.5–0.7)。

anime-illustration v0.1.0 — 画师流程

金字塔(笔刷尺度递减,不是画布放大——栽过一次)、中灰 hard_light 塑造、归一化坐标。四次「量错对象」记进 pitfalls。

v2.0.0 — 可用性重构

./paint 统一入口,成品固定名字覆盖式更新(之前 47 个带时间戳的目录里只有 3 个是成品)。

v3.0.0 — 4K:精确残差取代色阶量化

Flat + multiply 残差 + screen 残差,逐位无损。38.53 dB。新坑:组不透传时 multiply 不跟组下面相乘;残差不是带限的(bicubic 过冲被 clip 削平成描边,anti-ringing clamp);加料要在对账之后(轮廓光一口气吃 10.8 dB);empty 在放大目标上是反的。

v4.0.0 — 8K / 矢量线稿 / 笔画日志

8192×12288 跑通(RSS 4.9 GB)。probes/probe_vector.py 5/5。Session(journal=True) + strokes.jsonl最贵的一次:三个修复(抽线稿 + 去抗锯齿 + 平滑 SDF)叠在一起比它们要修的问题糟 9 倍(38.53 → 24.99 dB),六轮才分清。partition of unity 在 alpha-over 上是错的;平滑 SDF 吃掉细长条。

v5.0.0 — 从复刻改成临摹(本书)

用户指出:v4 的日志 55 条全是 set_pixels,一笔没落;边缘是「奇妙锯齿」。诊断:整条流水线没有任何像素在 8K 上生成。

重做:矢量管边,笔画管里面。contour.py(从抗锯齿边解 α → 等值线 → 贝塞尔)、cel.py(嵌套色阶)、strokes.py(六种笔)、gauge.py(归一化 + 源图锚点)、Session.brush()、七个新探针。80,669 笔 / 写像素 2 次;阶梯指纹 2.23 → 0.78。

新记录 10 条坑(第 21 章第 34 章)。丢掉逐位无损残差和 38.74 dB——那是复刻的判据。

v5.1.0 — 「Krita 的能力只有 strokes 吗」

起因是一个问题。把 libkis 的 41 个类的方法表逐个对照代码,发现缺口比第七部记的还大, 而且缺的几块正好压在书里已经写下的限制上。六个新探针(附录 C)、 新增第 30 章,第八部顺延为 32/33/34。

赢的:FilterMask(Selection) 给出带羽化的非破坏局部 filter(过渡带 ≈ 1.5 × feather), 改写了第 29 章「filter 不受选区限制」ColorizeMask 无头能出 flats(三区面积 0.98); SelectionMask / FileLayer / CloneLayer 三样能随 .kra 交付;矢量层建完还能改 (setZIndex / setTransformation / setAntialiased);TransformMask 非破坏变换成立。

输的,同样有用:Scratchpad 上没有落笔 API,省撤销栈这条路不成立(但它是拿 gradient / pattern 光栅的唯一路);Preset 的 XML 能改能生效,但宽度系数表作废不了; 图层样式和调色板都进不了交付。

新记录 8 条静默失效、5 条不存在、3 条判错过的(第 31 章)。 探针方法论也补了三条:判据不能比被测对象更粗、判据要先算出自己的地板、量位移不要用重心。

v5.2.0 — 变成一本 mdBook

结构调整,没有新结论。SUMMARY.mdREADME.md(封面)、assets/ 全部搬进 src/ ——mdBook 看不见 src/ 外面的东西。仓库根上换了一个短的 README.md 当 GitHub 首页, 加了 book.tomlbook/ 不进 git。mdbook serve --open 本地看,mdbook build 出静态站点。

mdbook build 顺带成了一个新的校验工具:没列进 SUMMARY.md 的章节和断链它都会报。

之后

skill 这种形态取消,改成这本书。anime 风格停在第三轮(第 20 章),补全一部是设计稿(第三部)。