什么是 Preprocessor?

像火柴人或深度图那样在 ControlNet 使用的“控制用图像”,该怎么准备呢?
如果是像 Canny 那样单纯的边缘还可以,但每次都手绘深度图是不现实的。

因此,将从参考图像自动制作火柴人・深度图・线稿・法线贴图等的处理,在 ControlNet 业界为方便起见统称为 “Preprocessor(预处理器)”

并不是有一个进行这些全部的技术,而是姿势推定・深度推定・线稿抽出等,分别有别的技术。


控制图像的真面目

虽说手绘很难,但请记住“是可以手绘的”。

控制用图像不是特殊的数据型,只是单纯的 RGB 图像
用黑色涂满深度图中碍事的部分,或只重画姿势图像的手臂改变姿势也没关系。


必要的自定义节点

基本上,只要有这个就足够了。


经常被使用的 Preprocessor

在这里介绍实际上使用频率高的技术。
虽然在性能方面也有更好的东西,但重视简便・轻量・易用性选出了这些。

如果是用于 ControlNet 的程度,不需要那么极端的精度。

Canny

  • 🟩 Canny
  • 🟨 Canny Edgy

SoftEdge / HED

  • 🟩 HED Soft-Edge

Lineart

  • 🟩 Realistic Lineart
  • 🟨 AnyLine Lineart

Depth

  • 🟩 Depth Anything V2
    • 虽然现在开发到了 V3,但如果是 ControlNet 用途的话 V2 就足够了。

Normal

  • 🟩 DSINE

MLSD

  • 🟩 M-LSD Lines

Pose

  • 🟩 OpenPose
  • 🟨 DWPose
    • 虽然经常被作为 OpenPose 的上位互换对待,但有不擅长背影这个明确的弱点。请根据状况与 OpenPose 并用。

SDPose

judian17/ComfyUI-SDPose-OOD

  • 🟩 SDPose
    • OpenPose 因为非常不擅长动物和动漫插图,所以如果不顺利的时候请尝试这边。