10 候选工具
📐 设计 —— 以下没有一个跑过。列出来是为了下一步有的选。
本机环境
- GPU:RTX 5070 Ti,16 GB 显存
- ComfyUI 已在
Krita/ComfyUI/(与本书同级目录) - 系统 Python 3.14:numpy / scipy / scikit-learn / Pillow / matplotlib;没有 torch(ComfyUI 有自己的环境)
候选
| 工具 | 类型 | 适合 | 顾虑 |
|---|---|---|---|
| ComfyUI + SD/SDXL inpainting | 生成式 | 大面积、有语义的补全(躯干、裙子) | 会发明结构;风格可能漂;要写 workflow JSON 并走 HTTP API |
| LaMa | 非生成式(FFT 卷积) | 小面积、纹理延续(头发、布料) | 不理解语义,大面积会糊;模型要单独装 |
| 自己写:最近邻 + 按流向外推 | 纯 numpy | 极小面积(expand 那种几像素的缝) | 只能延续,不能补形状 |
推荐的组合:LaMa 先补,ComfyUI 只在 LaMa 的输出通不过验收(第 9 章第 4 条)时接手。理由是 LaMa 不发明东西,验收更容易过;生成模型留给真的需要语义的地方。
ComfyUI 接口(待验)
ComfyUI 的调用方式是把 workflow JSON POST 到 http://127.0.0.1:8188/prompt,轮询 /history/<id> 拿输出。要写的东西:
- 一个 inpainting workflow 模板:加载图 + mask → inpaint → 输出
code/complete.py:按第 9 章的输入组装 context + mask,调 API,收输出,做验收- 一个探针
probes/probe_inpaint.py:拿一个人为遮挡的部件(把Skin_Arm从躯干上抠掉)跑一遍,量第 9 章的五条验收,记录耗时和显存
先做探针,再做模块。 这是本书的规矩:没量过的东西不进流程。
风格约束
补全区必须和可见区同一张画。对生成模型来说这意味着:
- 条件里给足 context(周边 32px 不够的话加到 64px)
- prompt 不描述内容,只描述风格(“flat anime shading, cel”),内容由 context 决定
- 输出按
tiers_p的颜色做归档校正(第 9 章第 3 条),把漂掉的颜色拉回来