Stable Diffusion-ControlNet详解

2023年04月27日18:26:32 发表评论 热度618 ℃

ControlNet是斯坦福大学研究人员开发的Stable Diffusion的扩展,使创作者能够轻松地控制AI图像和视频中的对象。

ControlNet可以概括为一种简单的稳定扩散微调方法。

它将根据边缘检测、草图处理或人体姿势等各种条件来控制图像生成

安装插件

在Stable Diffusion WebUI,可以通过下面的标签使用

Stable Diffusion-ControlNet详解

如果你没有看到这个标签,可以在最上方的 Extensions(插件)选项中的“从网址安装”进行安装。

Stable Diffusion-ControlNet详解

Stable Diffusion-ControlNet详解

安装网址

https://github.com/Mikubill/sd-webui-controlnet

或者

https://gitcode.net/ranting8323/sd-webui-controlnet

我所使用的秋叶aaaki整合包已经集成了ControlNet,可以在“已安装”中查看到。

Stable Diffusion-ControlNet详解

你可以通过单击“检查更新”,然后单击“应用并重新启动用户界面”的操作来更新ControlNet。

安装或者更新完后记得点击重启 WebUI。

Preprocessor 和Model 是ControlNet 的主要选项。

根据所需的输出,用户可以选择相应的控制方法。

每个预处理器都有自己的模型,模型的设计和命名都是一样的。但是它并不限制你混合和匹配所有的预处理器和模型,但是混合多了就会产生负面效果,所以最好使用更加匹配的模型并且越少越好。 下面我们介绍几个著名的 ControlNet,并在下面举例说明如何使用它。

 

1、Canny边缘检测

Canny通过使用边缘检测器创建高对比度区域的轮廓来检测输入图像。

https://pics0.baidu.com/feed/fc1f4134970a304e3767a029a59f5c8dc8175c7a.jpeg@f_auto?token=22f9449904403a03476d47b7de75fedd

 

2、Depth & Depth Leres

这个预处理器有助于生成输入图像的深度估计。深度通常用于控制图像内物体的空间定位。浅色区域意味着它离用户更近,而深色区域则离用户更远。

有时它会从图片中捕获了太多信息,可能会生成与原始图像略有不同的图像。

Stable Diffusion-ControlNet详解

 

3、HED (Holistically-Nested Edge Detection)

Hed可以在物体周围创建清晰和精细的边界,输出类似于Canny,但减少了噪声和更柔软的边缘。它的有效性在于能够捕捉复杂的细节和轮廓,同时保留细节特征(面部表情、头发、手指等)

Hed预处理器可用于修改图像的风格和颜色。

用于此预处理器的最佳模型是control_sd15_hed。

https://pics1.baidu.com/feed/3c6d55fbb2fb43167777e3d856f3bd2808f7d38f.jpeg@f_auto?token=0ab039c08bfda8ae1124ca6af8cda670

 

4、MLSD ( Mobile Line Segment Detection)

MLSD Preprocessor 最适合生成强有力的线条,这些线条能够检测出需要独特和刚性轮廓的建筑和其他人造作品。但是它不适用于处理非刚性或弯曲的物体

MLSD适用于生成室内布局或建筑结构,因为它可以突出直线和边缘。

用于此预处理器的最佳模型是control_sd15_mlsd

https://pics1.baidu.com/feed/728da9773912b31bab568638f34fcd71dab4e148.jpeg@f_auto?token=278d97b2d387327afb0177d1ca359898

 

5、Normal map

法线图使用了三种主要颜色(红、绿、蓝),通过不同的角度来精确定位物体的粗糙度和光滑程度它生成法线图的基本估计,可以保留相当多的细节,但可能会产生意想不到的结果,因为法线图完全来自图像,而不是在3D建模软件中构建的。

法线图有利于突出复杂的细节和轮廓,并且在定位对象方面也很有效,特别是在接近度和距离方面。“Normal Background Threshold”用于调整背景成分。设置一个更高的阈值可以移除背景的远处部分(将其混合成紫色)。降低阈值将命令AI保留甚至显示额外的背景元素。

用于此预处理器的最佳模型是control_sd15_normal

https://pics6.baidu.com/feed/faf2b2119313b07e8681cec178806a2896dd8c9a.jpeg@f_auto?token=a7afa39778fe805bfd7c9f640f6186cf

 

6、OpenPose

这个预处理器生成了一个基本的骨骼火柴人形象。 这种技术被广泛采用,因为多个 OpenPose 骨架可以组合成一个图像,这有助于引导稳定扩散生成多个一致的主题。 骨架图有很多关节点,每个点代表如下图所示

https://pics2.baidu.com/feed/500fd9f9d72a6059ccb023215d63cf90023bbac9.jpeg@f_auto?token=e1d601af846f29e92fab09311904ac43

要优化 OpenPose 的结果,建议上传一张人体图像(全身或半身)以及想要提取的姿势。

用于此预处理器的最佳模型是 control_sd15_openpose。

https://pics3.baidu.com/feed/aa18972bd40735fad2164deee306f4b80e240861.jpeg@f_auto?token=da6b7907116040934827052ede92469f

 

7、Scribble

涂鸦的目的是从简单的黑白线条画和草图生成图像。用户也可以使用“Canvas”选项创建特定大小的空白画布,用于手动素描(也可以直接上传图像)。如果草图和绘图由白色背景上的黑线组成,则需要选中“Invert Input Color”复选框。

用于这个预处理器的最佳模型是control_sd15_openpose。

https://pics4.baidu.com/feed/63d0f703918fa0ec941f703351c0a2e53c6ddb93.jpeg@f_auto?token=539dfead77d49bb51bcfd5b1fa11928f

 

8、Segmentation

分割预处理器检测并将上传的图像分割为同一图像内的段或区域。该模型在生成一组新的图像时,将detectmap图像应用于文本提示。

用于此预处理器的最佳模型是control_sd15_seg。

Stable Diffusion-ControlNet详解

https://pics2.baidu.com/feed/8b13632762d0f7037d6172577cadaa362497c5ca.jpeg@f_auto?token=06d801b32a8702962e00b2c154b5747e

以上就是常用的ControlNet类型了。

文中所提模型下载地址:

https://huggingface.co/lllyasviel/ControlNet/tree/main/models

Stable Diffusion-ControlNet详解

 

本文最后更新于:2023-05-08 17:56
瓜皮猪

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: