这节课我们来讲“预处理”。
🍉什么是预处理?为什么必须做预处理?
简单来说,预处理就是把你输入的原始图片,转换成 ControlNet 模型在训练时 “看得懂” 的格式。
这是因为 ControlNet 模型(比如 Canny)在训练阶段,是通过 “图像对” 来学习的。以 Canny 模型为例,它学习的是 ** 原始图像(左侧)和对应的轮廓图像(中间)** 之间的对应关系。
如果不做预处理,直接把原始图片喂给模型,它就无法正确提取到需要的特征,自然也就达不到理想的控制效果。
🎯 为什么直接用原图效果差?
因为我们输入的是原始图片,而不是模型训练时用的轮廓图,所以生成效果自然会很差。
✨ 预处理的简便方法
你完全不用去学 Photoshop 这类复杂工具,在 ComfyUI 里就可以直接用预处理器来完成图像转换。它会自动把原始图片转换成模型需要的格式,比如把照片变成 Canny 轮廓图。
1.Canny预处理器节点
进行图像的预处理:

⚠️ 重要提醒
预处理器和 ControlNet 模型是配套使用的,不能随意混用。
比如我们现在用的是 Canny 模型,就必须搭配 Canny 预处理器。如果换用其他 ControlNet 模型(如 Depth、OpenPose),也要选择对应的预处理器。
它们之间是多对一的对应关系(多个预处理器可能对应一个模型),但不能跨类型混用,否则会完全达不到控制效果。

其中,“预览图像” 这个节点只是用来让你查看预处理后的图像效果的,它不会对最终的图像生成结果产生任何影响。
运行一下:

请重点观察两个红框标注的节点输出:
- 预处理后的图像,应该是清晰的轮廓图,这才是 Canny 模型能接受的标准输入格式。
- 最终生成的图像,和参考图在结构、轮廓上变得非常相似。


但我想,如果只是做成这样,和最终的效果相差依然很大,问题出在哪里呢?
因为空的太厉害,所以我们需要适当降低强度,降低到多少合适呢?这个就跟模型,图像本身都相关了。
2.ControlNet权重
这里我们尝试降低权重到0.3。

生成的效果:



这样就合理多了。
但是只能这样了吗?当然不是,ControlNet还可以多个模型一起使用,增强控制效果。
注意:补充一句,ControlNet也不是连接越多越好,需要根据实际情况来控制。
3.多ControlNet混用
这里我们连接一个tile的ControlNet。

⚠️ 重点提醒
请留意框线标注的节点连线方式,以及模型的选择是否正确。
你会发现,在 ComfyUI 中串联多个 ControlNet 模型是比较容易的,不同模型的输入也各不相同。例如 tile 模型,只需要直接输入原始图片即可。
💡 小技巧:修正发色
如果发现生成图像的发色被意外改变,最简单的解决方法就是在正向提示词中增加描述发色的关键词,比如 black hair(黑发),这样就能精准控制发色了。

最后输出:


⚠️ 补充说明
关于图像清晰度和灰度的问题,在后续学习到 VAE(变分自动编码器)相关内容时,会有更完善的调整方法,这里暂时先不展开讲解。
本节课的工作流可以网盘下载

链接: https://pan.baidu.com/s/1u-kWkOOXg_mGN5njOx-eyg 提取码: wfp3
课程小结
到这里,我们已经学会了边发现问题、边解决问题的核心思路。
那么,这类基础的问题解决思路还有哪些呢?
下节课,我们会继续讲解:
- 如何找到 ComfyUI 最基础的工作流
- 如何进行高效的自学


