ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成 - SharpCJ
内容提要
本文介绍了ComfyUI中ControlNet的基本使用,通过姿态控制和局部重绘两个示例讲解了相关节点的使用。ControlNet是一个控制预训练图像扩散模型的神经网络,可以用于控制生成图像的内容。ControlNet的使用场景非常多,可以用于控制人物姿势、室内装修设计等。文章还介绍了ControlNet的官方地址和如何使用ControlNet进行图像生成。
延伸解读
ControlNet 模型与基础大模型的版本匹配
文章强调 ControlNet 模型必须与基础大模型版本对应,例如 SD1.5 的基础模型需搭配 SD1.5 版本的 ControlNet 模型,否则运行会报错。对于 SDXL,可使用集成了 12 种类型的 union 模型,但需通过设置 UnionControlNet 类型节点选择具体类型。这提醒读者在下载模型时务必注意版本兼容性,避免因不匹配导致工作流失败。
局部重绘中的常见问题与解决
在局部重绘示例中,作者遇到生成图像一片漆黑的问题,原因是 inpaint 预处理器输出的图像不能直接输入 ControlNet 应用节点,需要先转换为 RGB。文章特别指出应使用 WAS 插件下的图像到 RGB 节点,其他插件的类似节点可能不生效。这提示读者在遇到异常时检查图像格式转换环节,并注意插件的具体实现差异。
ControlNet 强度与介入时机的调节
ControlNet 应用高级节点提供了强度、开始时间和结束时间参数。强度越大,生成图像越贴近参考效果,但并非越高越好,例如光影文字效果中强度过大会导致文字过于明显而限制风景发挥。开始和结束时间控制 ControlNet 介入去噪过程的时机,范围 0 到 1。实际使用中需根据生成效果反复调整这些参数。
ControlNet 堆简化多条件控制
当需要同时使用多个 ControlNet 类型时,依次串联节点会导致工作流冗长。文章介绍了 ControlNet 堆节点,它支持最多三个 ControlNet 一起控制,整合了模型加载器,并提供开关、强度、介入时间等参数。如果三个不够,还可以继续串联。这为复杂控制需求提供了更简洁的节点管理方式。
Q&A
ControlNet是什么,它的主要功能是什么?
ControlNet是一个控制预训练图像扩散模型的神经网络,主要用于通过输入调节图像来控制生成图像的内容。
如何安装ControlNet插件?
可以通过安装ComfyUI-Advanced-ControlNet插件来添加ControlNet节点,如果使用的ComfyUI整合包自带ControlNet节点,则无需额外安装。
ControlNet的使用场景有哪些?
ControlNet可以用于控制人物姿势、室内装修设计、以及根据涂鸦草图生成图像等多种场景。
如何使用ControlNet进行局部重绘?
局部重绘需要创建遮罩,并使用ControlNet的inpaint类型模型对遮罩区域进行重绘。
ControlNet的强度参数有什么作用?
ControlNet的强度参数决定了生成图像时参考效果的贴近程度,值越大,生成的图像越接近参考效果。
ControlNet的官方地址是什么?
ControlNet的官方地址是:https://github.com/lllyasviel/ControlNet。