首页AI 新闻
【Stable Diffusion进阶教程】ControlNet v1.1:完整指南
22

【Stable Diffusion进阶教程】ControlNet v1.1:完整指南

AI知识学习小助手
AI知识学习小助手
2023-08-04 14:23

ControlNet 是一种Stable Diffusion模型,可让您从参考图像复制构图或人体姿势。

经验丰富的Stable Diffusion用户知道生成您想要的精确成分是多么困难。这些图像是随机的。你所能做的就是玩数字游戏:生成大量图像并选择你喜欢的一张。

借助 ControlNet,Stable Diffusion用户终于可以精确控制拍摄对象的位置和外观!

在这篇文章中,您将了解有关 ControlNet 所需的一切。

  • 什么是控制网
  • 如何在 Windows、Mac 和 Google Colab 上安装 ControlNet
  • 设置和一些常见用例。

什么是控制网?

ControlNet 是一种用于控制稳定扩散模型的神经网络模型。您可以将 ControlNet 与任何稳定扩散模型一起使用。

使用稳定扩散模型的最基本形式是文本到图像。它使用文本提示作为指导图像生成的条件,以便您生成与文本提示匹配的图像。

除了文本提示之外,ControlNet 还添加了一项条件。ControlNet 中的额外调节可以采取多种形式。

让我向您展示 ControlNet 功能的两个示例:通过 (1) 边缘检测和 (2) 人体姿势检测控制图像生成。

边缘检测示例

如下图所示,ControlNet 获取额外的输入图像并使用 Canny 边缘检测器检测其轮廓。然后将包含检测到的边缘的图像保存为控制图。它被输入 ControlNet 模型作为文本提示的额外条件。

具有 Canny 边缘调节功能的稳定扩散 ControlNet。

从输入图像中提取特定信息(在本例中为边缘)的过程称为注释(在研究文章中)或预处理(在 ControlNet 扩展中)。

人体姿态检测示例

边缘检测并不是图像预处理的唯一方法。Openpose是一种快速人体关键点检测模型,可以提取人体姿势,例如手、腿和头部的位置。请参阅下面的示例。

使用 Openpose 通过人体姿势检测注释的输入图像。

以下是使用 OpenPose 的 ControlNet 工作流程。使用 OpenPose 从输入图像中提取关键点,并将其保存为包含关键点位置的控制图。然后将其与文本提示一起作为额外条件馈送到Stable Diffusion。图像是根据这两个条件生成的。

使用 Canny 边缘检测和 Openpose 有什么区别?Canny 边缘检测器可提取拍摄对象和背景的边缘。它往往会更忠实地翻译场景。你可以看到跳舞的男人变成了女人,但轮廓和发型都保留了。

OpenPose仅检测人体关键点,如头部、手臂等位置。图像生成更加自由,但遵循原始姿势。

上面的例子生成了一个左脚指向侧面的女人跳起来,与原始图像和 Canny Edge 例子中的图像不同。原因是OpenPose的关键点检测没有指定脚的方向。

安装Stable Diffusion ControlNet

(针对 ControlNet v1.1 更新了说明)

让我们逐步了解如何在AUTOMATIC1111中安装 ControlNet ,这是一种流行且功能齐全(并且免费!)的稳定扩散 GUI。我们将使用这个扩展,它是使用 ControlNet 的事实上的标准。

如果您已经安装了 ControlNet,则可以跳至下一部分以了解如何使用它。

在 Google Colab 中安装 ControlNet

通过我们的快速入门指南中的一键稳定扩散 Colab 笔记本,可以轻松使用 ControlNet 。

在Colab 笔记本的扩展部分中,选中ControlNet

播放按钮启动 AUTOMATIC1111。就是这样!

在 Windows PC 或 Mac 上安装 ControlNet

您可以在Windows PCMac上将 ControlNet 与 AUTOMATIC1111 结合使用。如果您尚未安装 AUTOMATIC1111,请按照这些文章中的说明进行操作。

如果您已经安装了 AUTOMATIC1111,请确保您的副本是最新的。

安装 ControlNet 扩展 (Windows/Mac)

  1. 导航到 扩展 页面。

2. 选择 从 URL 安装 选项卡。

3. 将以下 URL 放入 扩展存储库 字段的 URL 中。

https://github.com/Mikubill/sd-webui-controlnet  单击 “安装” 按钮。

5. 等待表示扩展已安装的确认消息。

6. 重新启动 AUTOMATIC1111。

7. 访问 ControlNet 模型 页面。

8. 下载所有模型文件(文件名以 结尾 .pth)。

(如果不想全部下载,可以暂时下载最常用的openposecanny模型。)

9. 将模型文件放入 ControlNet 扩展的models 目录中。

stable-diffusion-webui\extensions\sd-webui-controlnet\models 重新启动 AUTOMATIC1111 webui。

如果扩展安装成功,您将在txt2img选项卡中看到一个名为ControlNet的新可折叠部分。它应该位于脚本下拉菜单的正上方。

这表明扩展安装成功。

安装 T2I 适配器

T2I 适配器是神经网络模型,用于为扩散模型的图像生成提供额外的控制。它们在概念上与 ControlNet 类似,但设计不同。

T2I 适配器模型(来源)。

A1111 ControlNet 扩展可以使用 T2I 适配器。您需要在此处下载模型。获取文件名如下的文件t2iadapter_XXXXX.pth

许多 T2I 适配器的功能与 ControlNet 模型重叠。我只会介绍以下两个。

将它们放入 ControlNet 的模型文件夹中。

stable-diffusion-webui\extensions\sd-webui-controlnet\models 更新 ControlNet 扩展

ControlNet 是一个经过快速发展的扩展。发现您的 ControlNet 副本已过时的情况并不罕见。

仅当您在 Windows 或 Mac 上本地运行 AUTOMATIC1111 时才需要更新。该站点的 Colab 笔记本始终运行最新的 ControlNet 扩展。

要确定您的 ControlNet 版本是否是最新的,请将 txt2img 页面上 ControlNet 部分中的版本号与最新版本号进行比较。

选项 1:从 Web-UI 更新

更新 ControlNet 扩展的最简单方法是使用 AUTOMATIC1111 GUI。

  1. 转到扩展页面。
  2. “已安装”选项卡中,单击“检查更新”
  3. 等待确认消息。
  4. 完全关闭并重新启动 AUTOMATIC1111 Web-UI。

选项 2:命令行

如果您熟悉命令行,则可以使用此选项来更新 ControlNet,这样您就可以放心,Web-UI 不会执行其他操作。

步骤 1:打开终端应用程序(Mac) 或PowerShell应用程序 (Windows)。

步骤 2:导航至 ControlNet 扩展的文件夹。(如果您安装在其他地方,请相应调整)

cd stable-diffusion-webui/extensions/sd-webui-controlnet

步骤 3:通过运行以下命令更新扩展。

git pull 使用 ControlNet – 一个简单的例子

现在您已经安装了 ControlNet,让我们来看一个使用它的简单示例!稍后您将看到每个设置的详细说明。

您应该安装 ControlNet 扩展才能遵循本节。您可以通过查看下面的 ControlNet 部分进行验证。

按右侧的插入符号以展开 ControlNet 面板。它显示了控制旋钮的完整部分和图像上传画布。

我将通过下图向您展示如何使用ControlNet。您可以使用下载按钮下载图像以按照教程进行操作。

下载 文本转图像设置

ControlNet 需要与稳定扩散模型一起使用。在稳定扩散检查点下拉菜单中,选择要与 ControlNet 一起使用的模型。选择v1-5-pruned-emaonly.ckpt使用v1.5 基本模型

txt2image选项卡中,编写一个提示,并可选地编写一个供 ControlNet 使用的否定提示。我将使用下面的提示。

提示词:

全身,年轻女性,头发亮点,在餐厅外跳舞,棕色眼睛,穿着牛仔裤

负面提示:

毁容、丑陋、不好、不成熟 设置图像生成的图像大小。我将在演示图像中使用宽度 512 和高度 776。请注意,图像大小是在 txt2img 部分中设置的,而不是在 ControlNet 部分中设置的

GUI 应该如下所示。

控制网络设置

现在让我们转到 ControlNet 面板。

首先,将图像上传到图像画布。

选中启用复选框

您将需要选择一个预处理器和一个模型。预处理器只是前面提到的注释器的不同名称,例如 OpenPose 关键点检测器。让我们选择openpose 作为 Preprocessor

所选的 ControlNet 模型必须与预处理器一致。对于 OpenPose,您应该选择control_openpose-fp16 作为模型

ControlNet 面板应如下所示。

就这样。现在按“生成”开始使用 ControlNet 生成图像。

您应该看到生成的图像遵循输入图像的姿势。最后一张图像直接来自预处理步骤。在本例中,它是检测到的关键点。

就这样。现在按“生成”开始使用 ControlNet 生成图像。

您应该看到生成的图像遵循输入图像的姿势。最后一张图像直接来自预处理步骤。在本例中,它是检测到的关键点。

完成后,取消选中启用复选框以禁用 ControlNet 扩展。

这是使用 ControlNet 的基础知识!

剩下的就是理解

  • 可用的预处理器有哪些(有很多!)
  • 控制网络设置

预处理器和模型

使用 ControlNet 的第一步是选择预处理器。打开预览很有帮助,这样您就可以了解预处理器正在做什么。预处理完成后,原始图像将被丢弃,仅预处理后的图像将用于 ControlNet。

要打开预览:

  1. 选择允许预览
  2. (可选)选择“像素完美”。ControlNet 将使用您在文本到图像中指定的图像高度和宽度来生成预处理图像。
  3. 单击“预处理器”下拉菜单旁边的爆炸图标

某些控制模型可能对图像影响太大。如果您发现颜色问题或其他伪影,请减少控制权重。

选择正确的型号

选择预处理器后,您必须选择正确的模型。

很容易辨别 v1.1 中使用的正确模型。您所需要做的就是选择与预处理器具有相同起始关键字的模型。

例如:

预处理器

模型

深度_xxxx

控制_xxxx_深度

线性_xxxx

控制_xxxx_线性

openpose_xxxx

control_xxxx_openpose

开放姿势

有多个 OpenPose 预处理器。

OpenPose可检测人体关键点,例如头、肩膀、手的位置等。它对于复制人体姿势非常有用,而无需复制服装、发型和背景等其他细节。

所有 openpose 预处理器都需要与ControlNet 模型下拉菜单中的openpose模型一起使用。

OpenPose 预处理器是:

  • OpenPose:眼睛、鼻子、眼睛、颈部、肩膀、肘部、手腕、膝盖和脚踝。
  • OpenPose_face:OpenPose + 面部细节
  • OpenPose_hand : OpenPose + 手和手指
  • OpenPose_faceonly:仅面部细节
  • OpenPose_full:以上所有

开放姿势

OpenPose 是基本的 OpenPose 预处理器,可检测眼睛、鼻子、眼睛、颈部、肩膀、肘部、手腕、膝盖和脚踝的位置。

OpenPose_face

OpenPose_face 执行 OpenPose 处理器执行的所有操作,但会检测其他面部细节。

它对于复制面部表情很有用。

示例图像:

仅 OpenPose_face

OpenPose面部仅检测面部而不检测其他关键点。这对于仅复制面部而不是其他关键点很有用。

请参阅下面从文本到图像的示例。身体不受约束。

OpenPose_hand

OpenPose_hand 将关键点检测为 OpenPose 以及手和手指。

示例图像:

OpenPose_full

OpenPose 全面检测 openPose 面部和 openPose 手所做的一切。

示例图像:

平铺重采样

平铺重采样模型用于向图像添加细节。它通常与放大器一起使用,同时放大图像。

请参阅ControlNet Tile Upscaling方法。

参考

参考是一组新的预处理器,可让您生成与参考图像类似的图像。图像仍会受到稳定扩散模型和提示的影响。

参考预处理器不使用控制模型。您只需要选择预处理器,而不需要选择模型。(事实上​​,选择参考预处理器后,模型下拉菜单将被隐藏。)

有 3 个参考预处理器。

  1. 参考 adain通过自适应实例标准化进行风格转移。(
  2. 仅供参考:将参考图像直接链接到注意层。
  3. 参考adain+attn:以上的组合。

选择要使用的这些预处理器之一。

下面是一个例子。

使用 CLIP 询问器猜测提示。

粉红色头发、穿着机器人套装的女人,科幻、Artgerm、赛博朋克风格、赛博朋克艺术、复古未来主义

毁容、丑陋、不好、不成熟 型号:Protogen v2.2

参考阿丹

仅供参考

我想说,如果你扭转我的手臂,仅供参考效果最好。

精明的

Canny 边缘检测器是一种通用的老式边缘检测器。它提取图像的轮廓。它对于保留原始图像的构图很有用。

预处理器模型下拉菜单中选择要使用的canny

生成的图像将遵循轮廓。

深度

深度预处理器从参考图像中猜测深度信息。

  • Depth Midas:经典的深度估计器。也用于官方 v2深度图像模型。
  • Depth Leres:更多细节,但也倾向于渲染背景。
  • Depth Leres++:更多细节。
  • Zoe:细节程度介于 Midas 和 Leres 之间。

参考图片:

深度图:

迈达斯

莱雷斯

莱雷斯++

佐伊

提示和否定提示:

复古未来主义的女人 毁容、丑陋、不好、不成熟

您可以看到生成的图像遵循深度图 (Zoe)。

与更详细的Leres++比较:

线条艺术

线条艺术呈现图像的轮廓。它试图将其转换为简单的绘图。

有一些线条艺术预处理器。

  • 动漫线条艺术:动漫风格的线条
  • 线条艺术动漫降噪:动漫风格的线条,细节较少。
  • 线条艺术写实:写实风格的线条。
  • 粗线条:写实风格的线条,重量较重。

与线稿控制模型一起使用。

下面的图像是在“控制权重”设置为 0.7 的情况下生成的。

线条艺术动漫

线条艺术动漫降噪

线条艺术写实

粗线艺术

MLSD

M-LSD(移动线段检测)是一种直线检测器。它对于提取具有直边的轮廓非常有用,例如室内设计、建筑物、街景、相框和纸张边缘。

曲线将被忽略。

法线贴图

法线贴图指定表面的方向。对于 ControlNet,它是一个图像,指定每个像素所在表面的方向。图像像素代表表面面向的方向,而不是颜色值。

法线贴图的用法与深度贴图类似。它们用于传输参考图像的 3D 合成。

法线贴图预处理器:

普通迈达斯

与 Midas 深度图一样,Midas 法线贴图非常适合将主体与背景隔离。

正常裴

Bae 法线贴图倾向于在背景和前景中渲染细节。

涂鸦

涂鸦预处理器将图片变成涂鸦,就像手绘的一样。

  • Scribble HED整体嵌套边缘检测(HED) 是一种边缘检测器,擅长生成像真人一样的轮廓。据 ControlNet 的作者称,HED 适合对图像进行重新着色和重新设计样式。
  • Scribble Pidinet像素差异网络(Pidinet) 检测曲线和直线边缘。其结果与 HED 类似,但通常会产生更清晰的线条和更少的细节。
  • Scribble xdogEX倾向差分高斯XDoG )是一种边缘检测方法技术调整xDoG 阈值并观察预处理器输出非常重要。

所有这些预处理器都应与涂鸦控制模型一起使用。

涂鸦 HED

HED 产生粗糙的涂鸦线。

涂鸦皮内特

Pidit 往往会产生粗线条,细节很少。它非常适合复制没有细节的电路板轮廓。

涂鸦xDoG

通过调整XDoG 阈值可以控制细节水平,使 xDoG 成为用于创建涂鸦的多功能预处理器。

分割

分割预处理器标记参考图像中的对象类型

下面是一个正在运行的分段处理器。

建筑物、天空、树木、人和人行道都标有不同的预定义颜色。

您可以在此处的颜色图中找到ufade20kofade20k的对象类别和颜色。

有几个分段选项

请注意,ADE20k 和 COCO 分割的颜色图是不同的。

您可以使用分段预处理器来传输对象的位置和形状。

下面使用具有相同提示和种子的这些预处理器

未来城市,树木,建筑物,赛博朋克

UniFormer ADE20k (ufade20k)

Uniformer 在此示例中准确地标记了所有内容。

OneFormer ADE20k ( ofade20k )

在这种情况下,OneFormer 的噪点较多,但不会影响最终图像。

前COCO (ofcoco)

OneFormer COCO 的表现类似,但有一些标签错误。

细分是一项强大的技术。您可以进一步操作分割图以将对象放置在精确的位置。使用ADE20k 的颜色图

随机播放

随机预处理器搅动输入图像。让我们看看随机播放的实际效果。

与Shuffle控制模型一起,Shuffle预处理器可用于传输参考图像的配色方案。

输入图像:

洗牌预处理器:

与其他预处理器不同,Shuffle 预处理器是随机的。它将受到您的种子价值的影响。

将 Shuffle 预处理器与 Shuffle 控制模型结合使用。Shuffle 控制模型可以与或不与 Shuffle 预处理器一起使用。

下图是 ControlNet Shuffle 预处理器和 Shuffle 模型(与上一节相同的提示)。配色方案大致遵循参考图像。

下图仅适用于 ControlNet Shuffle 模型(预处理器:无)。图像构图更接近原图。配色方案与随机排列类似。

供您参考,下图是在没有 ControlNet 的情况下具有相同提示的图像。配色方案截然不同。

色格T2I适配器

彩色网格 T2i 适配器预处理器将参考图像缩小 64 倍,然后将其扩展回原始大小。最终效果是局部平均颜色的网格状斑块。

原始参考图:

使用 t2ia_color_grid 进行预处理:

然后,预处理后的图像可以与 T2I 颜色适配器 ( ) 控制模型一起使用t2iadapter_color

图像生成将在空间上松散地遵循配色方案。

一个现代的客厅

增加 ControlNet 权重以使其更紧密地跟随。

您还可以为此 T2I 颜色模型使用预处理器 None。

在我看来,它与image-to-image非常相似。

剪辑视觉式 T2I 适配器

t2ia_style_clipvision将参考图像转换为 CLIP 视觉嵌入。此嵌入包含有关图像内容和风格的丰富信息。

您将需要使用控制模型t2iadapter_style_XXXX

看看这个惊人的风格转移的实际效果:

参考图片:

T2I 适配器 – CLIP 愿景:

科幻女孩

以下是关闭 ControlNet 时会生成的提示信息。

该功能与Reference ControlNet非常相似,但我对 T2IA CLIP 视觉的评价更高。

ControlNet 修复

ControlNet 修复可让您在修复中使用高降噪强度来生成较大的变化,而不会牺牲整个图片的一致性。

例如,我使用了现实人物的提示。

型号:HenmixReal v4

年轻女子的照片, 突出头发, 坐在餐厅外, 穿着裙子, 边缘照明, 工作室照明, 看着相机, 单反相机, 超品质, 锐焦, 锐利, 自由度, 胶片颗粒, Fujifilm XT3, 晶莹剔透, 8K UHD 、高细节光泽眼睛、高细节皮肤、皮肤毛孔 负面提示

毁容、丑陋、不良、不成熟、卡通、动漫、3D、绘画、黑白 我有这张图像,想通过修复来重新生成脸部。

如果我用高去噪强度(> 0.4)修复脸部,结果可能会在全局上不一致。下面是去噪强度为1的未绘制图像。

ControlNet Inpainting 是您的解决方案。

要使用 ControlNet 修复:

  1. 最好使用生成图像的相同模型。在txt2img页面生成图像后,单击发送到Inpaint,将图像发送到Img2img页面的Inpaint选项卡。

2. 使用画笔工具在要重新生成的区域上创建遮罩。如果您不熟悉修复,请参阅初学者教程。

3. 将修复区域设置为仅遮罩。(全图也有效)

4. 将降噪强度设置为 1。(如果没有 ControlNet,通常不会将其设置这么高。)

5. 在ControlNet部分设置以下参数。您无需上传参考图像。

启用:是

预处理器Inpaint_global_harmonious

型号:ControlNet

6. 按“生成”开始修复。

现在,即使在最大去噪强度 (1) 下,我也能得到与全局图像一致的新面孔!

目前,有 3 个修复预处理器

  • Inpaint_global_harmonious:提高全局一致性并允许您使用高去噪强度。
  • Inpaint_only:不会更改未遮罩的区域。与 AUTOMATIC1111 中的 Inpaint_global_harmonious 相同。
  • Inpaint_only+lama :用lama模型处理图像。它往往会产生更干净的结果,并且有利于物体去除。

原图

修复+喇嘛用于物体移除的 Inpaint+lama 模型。使用了一个空提示。

所有 ControlNet 设置说明

您会在 ControlNet 扩展中看到很多设置!当您第一次使用它时,它可能有点令人生畏,但让我们逐一介绍它们。

这将是一次深入的探索。如果需要的话,休息一下并去洗手间……

输入控制

图像画布:您可以将输入图像拖放到此处。您还可以单击画布并使用文件浏览器选择文件。输入图像将由“预处理器”下拉菜单中选定的预处理器进行处理。将创建控制图。

写入图标:使用白色图像创建新画布,而不是上传参考图像。它用于直接创建涂鸦。

相机图标:使用设备的相机拍摄照片并将其用作输入图像。您需要授予浏览器访问相机的权限。

选型

启用:是否启用 ControlNet。

低 VRAM:适用于 VRAM 小于 8GB 的​​ GPU。这是一个实验性功能。检查 GPU 内存是否不足,或者想要增加处理的图像数量。

允许预览:选中此选项可启用参考图像旁边的预览窗口。我建议您选择此选项。使用“预处理器”下拉菜单旁边的爆炸图标可以预览预处理器的效果。

Preprocessor:预处理器(在研究文章中称为注释器),用于对输入图像进行预处理,例如检测边缘、深度和法线贴图。None使用输入图像作为控制图。

模型:要使用的 ControlNet 模型。如果您选择了预处理器,通常会选择相应的模型。ControlNet 模型与在 AUTOMATIC1111 GUI 顶部选择的稳定扩散模型一起使用。

控制体重

在预处理器和模型下拉菜单下方,您将看到三个滑动条,可让您调节控制效果:控制权重开始结束控制步骤

我将用下图来说明控制权重的效果。这是一个女孩坐着的图像。

但在提示中,我会要求生成一个站着的女人。

全身,年轻女性,头发亮点,站在餐厅外,蓝眼睛,穿着裙子,侧光 权重:控制图相对于提示的重视程度。它类似于提示中的关键字权重,但适用于控制图。

以下图像是使用 ControlNet OpenPose 预处理器和 OpenPose 模型生成的。

重量1

重量0.5

重量0.3

重量0.1

正如您所看到的,Controlnet 权重控制控制图相对于提示的遵循程度。权重越低,ControlNet 对图像遵循控制图的要求就越少。

启动 ControlNet 步骤:首先应用 ControlNet 步骤。0 表示第一步。

结束 ControlNet 步骤:ControlNet 步骤结束。1表示最后一步。

让我们将起始步骤固定为 0 并更改结束 ControlNet 步骤,看看会发生什么。

结束 ControlNet 步骤:1

结束 ControlNet 步骤:0.3

结束 ControlNet 步骤:0.2

结束 ControlNet 步骤:0.1

由于初始步骤设置了全局组合(采样器在每个步骤中消除了最大量的噪声,并且从潜在空间中的随机张量开始),因此即使您仅将 ControlNet 应用到少至 20% 的位置,也会设置姿势第一个采样步骤。

相反,更改结束 ControlNet 步骤的影响较小,因为全局组合是在开始步骤中设置的。

控制方式

平衡:ControlNet 适用于采样步骤中的调节非调节。这是标准操作模式。

我的提示更重要: ControlNet 的效果在 U-Net 注入的实例中逐渐减小(一个采样步骤中有 13 个实例)。最终效果是您的提示比 ControlNet 具有更大的影响力。

ControlNet 更重要:在无调节时关闭 ControlNet。实际上,CFG 规模还充当 ControlNet 效果的乘数。

如果您不完全理解它们的实际工作原理,请不要担心。选项标签准确地说明了效果。

调整大小模式

调整大小模式控制当输入图像或控制图的大小与要生成的图像的大小不同时要执行的操作。如果这些选项具有相同的宽高比,则无需担心它们。

我将通过设置文本到图像来生成横向图像来演示调整大小模式的效果,而输入图像/控制图是纵向图像。

Just Resize:独立缩放控制图的宽度和高度以适合图像画布。这将改变控制图的纵横比

女孩现在需要向前倾斜,以便她仍在画布内。您可以使用此模式创建一些有趣的效果。

控制图

生成的图像只需调整大小即可缩放控制图以适合图像画布。

裁剪和调整大小:使图像画布适合控制图。裁剪控制图,使其与画布大小相同。

因为控制图在顶部和底部被裁剪,所以我们的女孩也是如此。

控制图

生成的图像裁剪和调整大小使图像画布适合并裁剪控制图。

调整大小和填充:使整个控制图适合图像画布。使用空值扩展控制图,使其与图像画布的大小相同。

与原始输入图像相比,侧面有更多的空格。

控制图

生成的图像调整大小和填充使整个控制图适合图像画布并扩展控制图。

好的,现在(希望)您知道所有设置。让我们探讨一些使用 ControlNet 的想法。

多个控制网络

您可以多次使用 ControlNet 来生成图像。让我们来看一个例子。

型号:Protogen v2.2

提示

坐着的宇航员,外星球 负面提示:

毁容的, 变形的, 丑陋的 该提示生成具有多种构图的图像。

假设我想独立控制宇航员和背景的构图。为此,我们可以使用多个(在本例中为 2 个)ControlNet。

我将使用此参考图像来固定宇航员的姿势。

ControlNet 0的设置:

  • 启用:是
  • 预处理器:OpenPose
  • 型号:control_xxxx_openpose
  • 调整大小模式:调整大小和重新填充(因为我的原始参考图像是纵向的)

我将使用以下参考图像作为背景。

深度模型非常适合此目的。您将想要使用哪个深度模型和设置来提供您想要的深度图。

ControlNet 1的设置:

  • 启用:是
  • 控制重量:0.45
  • 预处理器:深度_zeo
  • 型号:control_XXXX_深度
  • 调整大小模式:裁剪并调整大小

现在我可以独立控制主体和背景的构图:

尖端:

  • 如果其中之一不起作用,请调整 ControlNet 权重。
  • 如果您有与最终图像不同尺寸的参考图像,请注意调整大小模式。

使用 ControlNet 的一些想法

复制人体姿势

也许 ControlNet 最常见的应用是复制人体姿势。这是因为通常很难控制姿势……直到现在!输入图像可以是稳定扩散生成的图像,也可以是从真实相机拍摄的图像。

开放姿势模型

要使用 ControlNet 传输人体姿势,请按照说明在 AUTOMATIC1111 中启用 ControlNet。使用以下设置。

预处理器:openpose

型号:control_…._openpose

确保您已选中启用

这里有一些例子。

示例 1:从图像复制姿势

作为一个基本示例,让我们复制以下图像中一位女士欣赏树叶的姿势。

使用各种模型和提示,您可以显着改变内容但保持姿势不变。

梦幻般的真实模型

Anything v3 模型

梦想塑造者模型

Anything v3 模型

示例 2:重新混合电影场景

你可以将《低俗小说》中标志性的舞蹈场景改造成公园里的一些瑜伽练习。

这是具有相同的提示,但使用Inkpunk Diffusion model。(您需要在提示中添加激活关键​​字nvinkpunk )

使用 ControlNet 对图像进行风格化

使用提示

以下是v1.5模型,但有不同的提示来实现不同的风格。使用具有各种预处理的 ControlNet。最好进行试验,看看哪一种效果最好。

像素艺术,精明

3D渲染,Canny

黑白,HED

水彩,普使用模型

您还可以使用模型来风格化图像。下面是使用提示“贝多芬的绘画”与Anythingv3DreamShaperOpenJourney模型生成的。

任何东西 v3

梦想塑造者

开放之旅

墨朋克扩散

使用 Magic Pose 控制姿势

有时您可能无法找到具有您想要的确切姿势的图像。您可以使用Magic Poser图片来源)等软件工具创建自定义姿势。

第1步:访问Magic Poser网站

步骤2:移动模型的关键点来定制姿势。

步骤 3:按预览。截取模型的屏幕截图。您应该得到如下图所示的图像。

Magic Poser 中的人体姿势。

步骤 4:使用 OpenPose ControlNet 模型。选择您选择的模型和提示来生成图像。

下面是使用1.5 模型DreamShaper模型生成的一些图像。在所有情况下,姿势都被很好地复制了。

室内设计理念

您可以使用稳定扩散 ControlNet 的直线检测器 MLSD 模型来生成室内设计创意。以下是 ControlNet 设置。

预处理器:mlsd

型号: MLSD

从任何室内设计照片开始。我们以下面这个为例。

提示词:

获奖客厅

型号:稳定扩散 v1.5

以下是一些产生的设计想法。

或者,您可以使用深度模型。它将强调保留深度信息,而不是直线。

预处理器:深度迈达斯

型号: 深度

生成的图像:

稳定扩散深度模型和 ControlNet 之间的区别

Stability AI 是 Stable Diffusion 的创建者,发布了深度图像模型。它与 ControlNet 有很多相似之处,但也有重要的区别。

我们先来说说相似之处。

  1. 它们都是稳定扩散模型……
  2. 它们都使用两种条件(预处理的图像和文本提示)。
  3. 他们都使用MiDAS来估计深度图。

差异是

  1. 图像深度模型是 v2 模型。ControlNet 可与任何 v1 或 v2 型号一起使用。这一点很重要,因为 v2 模型非常难以使用。人们很难产生好的图像。ControlNet 可以使用任何v1 模型这一事实不仅为v1.5 基础模型开辟了深度调节,而且还为社区发布的数千个特殊模型提供了深度调节。
  2. ControlNet 更加通用。除了深度之外,它还可以通过边缘检测、姿态检测等进行调节。
  3. ControlNet 的深度图比深度图像的分辨率更高。

ControlNet 是如何工作的?

如果不解释 ControlNet 的底层工作原理,本教程就不完整。

ControlNet 的工作原理是将可训练的网络模块附加到稳定扩散模型的U-Net (噪声预测器)的各个部分。稳定扩散模型的权重被锁定,以便它们在训练过程中保持不变。训练期间仅修改附加模块。

研究论文中的模型图很好地总结了这一点。最初,附加网络模块的权重均为零,使得新模型能够利用经过训练和锁定的模型。

在训练期间,每个训练图像都会提供两个条件。(1) 文本提示,以及 (2)控制图,例如 OpenPose 关键点或 Canny 边缘。ControlNet 模型学习根据这两个输入生成图像。

每种控制方法都是独立训练的。

更多读物

转载自查看原文
合集导航
合集
# 1 【Stable Diffusion进阶教程】After Detailer:自动修复面面部
# 2 【Stable Diffusion进阶教程】如何运行 SDXL 模型
# 3 【Stable Diffusion进阶教程】加速Stable Diffusion
# 4 【Stable Diffusion进阶教程】Stable Diffusion中控制光照的 3 种方法
# 5 【Stable Diffusion进阶教程】在Stable Diffusion中放大图像的 3 种方法(ControlNet 平铺放大、SD 放大、AI 放大)
# 6 【Stable Diffusion进阶教程】负面提示如何发挥作用?
# 7 【Stable Diffusion进阶教程】Stable Diffusion如何发挥作用?
# 8 【Stable Diffusion进阶教程】Stable Diffusion工作流程(分步示例)
# 9 【Stable Diffusion进阶教程】Stable Diffusion2中的图像深度:您需要了解的一切
# 10 【Stable Diffusion进阶教程】区域提示器:控制Stable Diffusion中的图像合成
# 11 【Stable Diffusion进阶教程】如何使用Stable Diffusion (Deforum) 制作视频
# 12 【Stable Diffusion进阶教程】Stable Diffusion SDXL Beta 模型
# 13 【Stable Diffusion进阶教程】Stable Diffusion采样器:综合指南
# 14 【Stable Diffusion进阶教程】Midjourney 与 Stable Diffusion您应该选择哪一个?
# 15 【Stable Diffusion进阶教程】什么是超网络以及您应该了解的超网络
# 16 【Stable Diffusion进阶教程】如何在Stable Diffusion中使用嵌入
# 17 【Stable Diffusion进阶教程】如何使用Stable Diffusion将照片卡通化
# 18 【Stable Diffusion进阶教程】如何使用 Dreambooth 将任何东西放入Stable Diffusion(Colab 笔记本)
# 19 【Stable Diffusion进阶教程】如何使用AI图像放大器来改善细节
# 20 【Stable Diffusion进阶教程】WebUI AUTOMATIC1111:初学者指南
# 21 【Stable Diffusion进阶教程】什么是 LoRA 模型以及如何在 AUTOMATIC1111 中使用它们
# 22 【Stable Diffusion进阶教程】ControlNet v1.1:完整指南
# 23 【Stable Diffusion进阶教程】如何使用 Stable Diffusion AI 对图像进行风格化
# 24 【Stable Diffusion进阶教程】利用图像 AI 生成时尚创意的 4 种方法
# 25 【Stable Diffusion进阶教程】使用Stable Diffusion制作动画 GIF(分步)
# 26 【Stable Diffusion进阶教程】AI 图像中的常见问题及其解决方法
# 27 【Stable Diffusion进阶教程】使用这些简单的提示技巧微调您的 AI 图像
# 28 【Stable Diffusion进阶教程】如何通过Stable Diffusion修复去除多余的肢体
# 29 【Stable Diffusion进阶教程】如何使用outpainting来扩展图像
# 30 【Stable Diffusion进阶教程】如何在 Google Colab 上运行稳定扩散 (AUTOMATIC1111)
 

全部讨论

no data来都来了,坐下聊聊