ControlNet是一种稳定的扩散模型,可以复制构图和人体姿势。经验丰富的StableDiffusion用户知道生成想要的精确姿势有多么困难。一切都是随机的就像扩散一样。ControlNet解决了这个问题。它功能强大且用途广泛,可让你将其与任何StableDiffusion模型一起使用。 在本文中,我们将介绍有关ControlNet所需的一切:它是什么、如何在AUTOMATIC1111中安装和使用它、每个设置的含义以及一些常见用例。 推荐:用NSDT场景设计器快速搭建3D场景。1、什么是控制网? ControlNet是一种改进的稳定扩散模型。稳定扩散模型的最基本形式是文本到图像。它使用文本提示作为引导图像生成的条件。ControlNet增加了一个条件。让我向你展示两个ControlNet示例:(1)边缘检测和(2)人体姿势检测。边缘检测 在下面所示的工作流程中,ControlNet获取额外的输入图像并使用Canny边缘检测器检测其轮廓。检测到的边缘被保存为控制图,然后作为文本提示之外的额外条件输入到ControlNet模型中。 从输入图像中提取特定信息(在本例中为边缘)的过程称为注解(在研究文章中)或预处理(在ControlNet扩展中)。人体姿态检测 你可能已经猜到,边缘检测并不是预处理图像的唯一方法。Openpose是一种快速关键点检测模型,可以提取人体姿势,如手、腿和头部的位置。请参见下面的示例。 下面是使用OpenPose的ControlNet工作流程。使用OpenPose从输入图像中提取关键点,并将其保存为包含关键点位置的控制图。然后将其作为额外条件与文本提示一起提供给StableDiffusion。图像是根据这两个条件生成的。 使用Canny边缘检测和Openpose有什么区别?Canny边缘检测器提取主题和背景的边缘。它倾向于更忠实地翻译场景。你可以看到跳舞的男人变成了女人,但轮廓和发型都很相似。 OpenPose仅检测关键点,因此图像生成更加自由,但遵循原始姿势。在上面的示例中,它生成了一个左脚指向侧面的女人跳起来,这与原始图像和Canny边缘示例中的图像不同。原因是OpenPose的关键点检测没有指定脚的方向。2、可用的ControlNet模型 现在让我们看看ControlNet模型可以做什么。当我解释如何使用ControlNet扩展时,你将确切地了解它们的作用。2。1OpenPose检测器 OpenPose检测人体关键点,例如头部、肩膀、手等的位置。它对复制人体姿势很有用,但对其他细节(例如服装、发型和背景)没有帮助。 2。2Canny边缘检测器 Canny边缘检测器是一种通用的老式边缘检测器。它提取图像的轮廓。它对于保留原始图像的构图很有用。 2。3直线检测器 ControlNet可与MLSD(移动线段检测)一起使用,这是一种快速直线检测器。它对于提取具有直边的轮廓非常有用,例如室内设计、建筑物、街景、相框和纸张边缘。 2。4HED边缘检测器 HED(整体嵌套边缘检测)是一种边缘检测器,擅长像真人一样生成轮廓。根据ControlNet的作者,HED适用于重新着色和重新设计图像。 2。5涂鸦 Controlnet还可以将你涂鸦的东西变成图像! 2。6其他模型 其他可用的控制网模型包括:HumanPose使用OpenPose检测关键点。语义分割根据从输入图像中提取的分割图生成图像。深度贴图与稳定扩散v2中的深度到图像一样,ControlNet可以从输入图像推断出深度图。ControlNet的深度图比StableDiffusionv2的分辨率更高。法线贴图法线贴图指定对象表面的3D方向。这是在由多边形构成的低分辨率表面上伪造纹理的常用方法。当然,你所拥有的只是一个2D输入图像。法线贴图是从深度贴图计算出来的。3、安装StableDiffusionControlNet 让我们来看看如何在AUTOMATIC1111中安装ControlNet,AUTOMATIC1111是一种流行且功能齐全(且免费!)的StableDiffusionGUI。我将使用这个扩展,它是事实上的标准,来启用ControlNet。 如果你已经安装了ControlNet,则可以跳至下一节以了解如何使用它。3。1在GoogleColab中安装ControlNet 在我们的快速入门指南中,通过一键式稳定扩散Colab笔记本可以轻松使用ControlNet。 在Colab笔记本的扩展部分,选中ControlNet。 按播放按钮启动AUTOMATIC1111。就可以了!3。2在WindowsPC或Mac上安装ControlNet 你可以在WindowsPC或Mac上将ControlNet与AUTOMATIC1111结合使用。如果你尚未安装AUTOMATIC1111,请按照这些文章中的说明进行安装。 如果您已经安装了AUTOMATIC1111,请确保您的副本是最新的。 要安装ControlNet扩展,请转至扩展选项卡并选择可用子选项卡。按loadfrom按钮。 在新出现的列表中,找到扩展名为sdwebuicontrolnet的行。按安装。 重新启动AUTOMATIC1111webui。 如果扩展安装成功,你将在txt2img选项卡中看到一个名为ControlNet的新可折叠部分。它应该位于脚本下拉菜单的正上方。 这表示扩展安装成功。 ControlNet的作者发布了一些预训练的ControlNet模型,可以在这个页面上找到。 WebUI社区托管半精度版本的ControlNet模型,其文件大小更小。它们下载速度更快,存储更容易,为什么不呢?你可以在这里找到它们。 要使用这些模型,请下载模型文件并将它们放在扩展的模型文件夹中。模型文件夹的路径是stablediffusionwebuiextensionssdwebuicontrolnetmodels 不需要下载所有模型。如果这是你第一次使用ControlNet,可以直接下载openpose模型。4、在AUTOMATIC1111中使用ControlNet 你将在本节中学习使用扩展的一个简单示例。稍后将看到每个设置的详细说明。 你应该安装ControlNet扩展以跟上本节的内容,可以通过查看下面的ControlNet部分进行验证。 按右侧的插入符号以展开ControlNet面板。它显示了控制旋钮的完整部分和图像上传画布。 我将使用下图向你展示如何使用ControlNet。你可以使用下载按钮下载图像以按照教程进行操作。 4。1文本到图像设置 ControlNet需要与稳定扩散模型一起使用。在StableDiffusion检查点下拉菜单中,选择要与ControlNet一起使用的模型。选择v15prunedemaonly。ckpt以使用v1。5基础模型。 在txt2image选项卡中,编写提示和可选的否定提示以供ControlNet使用。我将使用下面的提示。 提示: fullbody,ayoungfemale,highlightsinhair,dancingoutsidearestaurant,browneyes,wearingjeans 否定提示: disfigured,ugly,bad,immature 设置图像生成的图像大小。我将为我的演示图像使用宽度512和高度776。请注意,图像大小是在txt2img部分中设置的,而不是在ControlNet部分中设置的。 GUI应该如下所示。 4。2ControlNet设置 现在我将讨论需要在ControlNet面板中执行的操作。 首先将图像上传到图像画布。 选中启用复选框。 你将需要选择预处理器和模型。Preprocessor只是前面提到的annotator的不同名称,比如OpenPosekeypointdetector。让我们选择openpose作为预处理器。 所选的ControlNet模型必须与预处理器一致。对于OpenPose,你应该选择controlopenposefp16作为模型。 ControlNet面板应如下所示。 就这样。现在按生成开始使用ControlNet生成图像。 你应该看到生成的图像遵循输入图像的姿势。最后一张图像直接来自预处理步骤。在这种情况下,它是检测到的关键点。 这是使用ControlNet的基础知识!完成后,取消选中启用复选框以禁用ControlNet扩展。 原文链接:http:www。bimant。comblogstablediffusioncontrolnet