Comfyui 工作流 - Controlnet

在使用 Stable Diffusion 时,你可能希望更精细地控制图像生成的过程,但仅仅依靠调整提示词可能效果不佳。本章将介绍几种常用的 ControlNet 使用方法,帮助你更好地掌控图像的生成。

原理简介

实际上,在我的高级教程中介绍的所有方法都属于“图生图”的范畴。它们都是通过向模型提供不同的图像信息,从而引导模型生成我们期望的画面。ControlNet 的作用在于,它能根据输入图像的结构信息来精确控制模型所生成的图像内容。这种结构信息可以是手绘草图、图像的蒙版,甚至是图像的边缘轮廓。借助 ControlNet,我们可以利用这些信息来更有效地控制图像生成。你可以根据具体需求选择不同的 ControlNet 模型,来实现对生成图像的不同方面的控制。

为了帮助你更好地理解 ControlNet 的使用方法,我们首先通过一张图示来直观地解释其工作原理:

如上图所示,当我们使用 ControlNet 时,首先将文本提示词和参考图像输入到 ControlNet 模型中。ControlNet 模型会据此生成一个潜在图像(latent image)。这个潜在图像会作为“条件信息”(Conditioning)和初始提示词,进一步输入到 Stable Diffusion 模型中,最终影响模型生成的图像结果。

Scribble ControlNet 工作流:草图控制

通过对原理的介绍,你应该已经能够初步推测出在 ComfyUI 中如何使用 ControlNet 了。不妨让我们尝试构建一个简单的 ControlNet 工作流 —— 利用简单的草图来进行图像控制。效果大致如下:

使用 ControlNet 后,模型生成的图像会依据你绘制的草图进行构建。从左侧的草图可以看出,这是一个非常随意的卡通人物轮廓,而右侧生成的图像则很好地符合草图的基本构图和人物特征(比如两只大耳朵)。

现在你对 Scribble ControlNet 已经有了初步的认识,接下来让我们一起看看如何搭建这个工作流。建议你先尝试自行搭建,这样能够加深理解和印象。

Pose ControlNet 工作流:姿势控制

一旦掌握了 ControlNet 工作流的构建方法,你就可以根据需要自由切换不同的 ControlNet 模型了。

之前的例子使用草图作为输入,这次我们尝试输入人物姿势。这样做的好处在于,你可以精确控制生成人物的姿态。 效果如下:

需要注意的是,我们不能像之前那样直接将人物图像输入 ControlNet 模型,而是需要先将图像转换为人物姿势信息,再将其输入 ControlNet 模型。当然,你也可以使用其他工具生成人物骨骼图,然后直接输入 ControlNet 模型。

因此,整个工作流的搭建过程与之前的草图控制工作流基本一致。唯一的区别在于“Load ControlNet Model”节点,我们需要加载 ControlNet Openpose 模型,并加载人物骨骼图:

Depth ControlNet 工作流:深度控制

ControlNet 的第三种应用是通过深度图来控制生成的图像。这种方法的优势在于,你可以借助深度图来控制生成图像的景深效果。例如:

这个工作流的搭建方式与之前的类似。你可以直接导入深度图,也可以使用插件生成深度图,然后将其输入 ControlNet 模型。 像这样:

相比姿势控制,深度控制提供了更丰富的景深信息。例如,我导入的图像是两个人正在打斗,一前一后站立。如果仅使用姿势控制,则比较难以生成这种具有前后景深关系的图像。

如果想使用插件生成深度图,就像姿势控制工作流那样,方法也很简单。只需将上述工作流中的 “DWPose Estimation” 节点替换为 “Zoe-Depth Map” 节点即可。

此外,还有另一种方法。你还可以借助一些 3D 工具来生成人物姿势或深度图。例如,https://app.posemy.art/ 就是这样一款工具。你可以在左上角(标记为 1)选择你想要的人物姿势,然后通过拖拽鼠标调整人物姿势,最后点击 “Export” 按钮(标记为 2)导出深度图(标记为 3),再将其导入 ComfyUI 中:

Canny ControlNet 工作流:边缘控制

ControlNet 的第四种应用是通过 Canny 边缘检测图来控制模型生成的图像。这种方法的优势在于,你可以使用 Canny 边缘图来控制生成图像的边缘轮廓,效果如下:

工作流的设置与之前的类似,只需将 ControlNet 模型替换为 Canny 模型即可。

感谢您的阅读!

欢迎点赞, 关注,及时获取最新文章,支持我的创作。

原文链接:,转发请注明来源!