什么是 Preprocessor?

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

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

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


控制图像的真面目

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

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


必要的自定义节点

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


经常被使用的 Preprocessor

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

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

Workflows经常被使用的 Preprocessor
canny_canny_edge.json

Canny

  • 🟩 Canny
  • 🟨 Canny Edgy
hed_soft_edge.json

SoftEdge / HED

  • 🟩 HED Soft-Edge
realistic_anyline_lineart.json

Lineart

  • 🟩 Realistic Lineart
  • 🟨 AnyLine Lineart
depth_anything_v2.json

Depth

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

Normal

  • 🟩 DSINE
m_lsd.json

MLSD

  • 🟩 M-LSD Lines
openpose_dwpose.json

Pose

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

SDPose

judian17/ComfyUI-SDPose-OOD

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