文章分类

热门文章

iMyShare,公众号:神秘的热心网友 关注微信公众号

定期分享神兵利器,优质资源,精品学习资料,实用互联网小技巧!

Stable Diffusion进阶教程!超详细的 ControlNet 实用指南

MeetUp
2023-07-03
1944
0

前往网站首页查看更多精彩内容👉https://imyshare.com/


一、什么是ControlNet(内控网)?​

广义:​

  1. ControlNet 是一种稳定的扩散模型,可让您从参考图像复制构图或人体姿势
  2. 借助 ControlNet,Stable Diffusion 用户终于可以精确地控制对象的位置和外观!

 

狭义:​

  1. ControlNet 是一种用于控制 Stable Diffusion 模型的神经网络模型
  2. 您可以将 ControlNet 与任何稳定扩散模型(例如:文生图)一起使用(融合性)​
  3. ControlNet 可以采用多种不同的形式来更好地适应不同的扩散模型

 

二、 Diffusion ControlNet安装教程

安装Diffusion ControlNet​

ControlNet项目地址:https://github.com/lllyasviel/ControlNet

ControlNet 的 WebUI 扩展:https://github.com/Mikubill/sd-webui-controlnet#examples

模型下载:https://huggingface.co/lllyasviel/ControlNet/tree/main/models

百度网盘: https://pan.baidu.com/s/1buTS_swl4chiv21n40f3gA?pwd=fy6b

 

更新Diffusion ControlNet​

选项 1:从 Web UI 更新​

选项 2:命令行(终端代码执行)

 

检测安装的 ControlNet 扩展是否已经完备:​

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

 

 

三、ControlNet的不同方法的使用​

(1)Preprocessors and models 预处理器和模型​

使用 ControlNet 的第一步是选择预处理器,打开预览很有帮助,这样你就知道预处理器在做什么

预处理完成后,原始图像将被丢弃,只有预处理后的图像将用于 ControlNet

要打开预览的方式:​

1.Select Allow Preview. 选择允许预览。或者选择 Pixel Perfect

2.ControlNet 将使用您在文本到图像中指定的图像高度和宽度来生成预处理图像。​

3.单击预处理器下拉菜单旁边的爆炸图标

 

某些控制模型可能会过多地影响图像,如果你发现颜色问题或其他伪像,请降低控制权重

 

(2)选择合适的型号​

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

很容易分辨出在 v1.1 中使用哪个模型是正确的,你需要做的就是选择与预处理器具有相同起始关键字的模型

 

 

(3)OpenPose 打开姿势​

OpenPose :用于检测人体关键点,例如头部、肩部、手部等的位置​

它对于复制人体姿势非常有用,而无需复制服装、发型和背景等其他细节

有多个 OpenPose 预处理器​

  1. OpenPose: eyes, nose, eyes, neck, shoulder, elbow, wrist, knees, and ankles.​

OpenPose:眼、鼻、眼、颈、肩、肘、腕、膝、踝。​

  1. OpenPose_face: OpenPose + facial details​

OpenPose_face:OpenPose + 面部细节​

  1. OpenPose_hand: OpenPose + hands and fingers​

OpenPose_hand:OpenPose + 手和手指​

  1. OpenPose_faceonly: facial details only​

OpenPose_faceonly:仅面部细节​

  1. OpenPose_full: All of the above​

OpenPose_full:以上所有

 

注意:​

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

一幅图生成骨架图后直接利用骨架图结构绘画即可;无需重复导入​

骨架图一般无法保存下载,因此很可能会导致生成图的第一幅(全组合图)无法保存下载;​

pose骨架图一般在与二次元风格的模型一起调用时需要注意画面比例问题;(一般与真人模型调用最好)

 

OpenPose 打开姿势​

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

如图所示:

 

 

OpenPose_face OpenPose_face​

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

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

 

 

OpenPose_faceonly OpenPose_faceonly​

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

 

OpenPose_hand OpenPose_hand​

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

 

 

OpenPose_full OpenPose_full​

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

 

Tile resample 瓷砖重采样​

Tile resample 模型用于向图像添加细节。它通常与放大器一起使用以同时放大图像

 

Reference 参考​

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

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

 

有 3 个参考预处理器:(多选一)​

1.Reference adain: ​

参考 adain:通过自适应实例规范化进行样式转换。 ( 纸)​

2.Reference only: ​

仅参考:将参考图像直接链接到注意力层。​

3.Reference adain+attn:​

参考 adain+attn:以上的组合

 

 

使用 CLIP 询问器猜测提示。​

a woman with pink hair and a robot suit on, with a sci – fi, Artgerm, cyberpunk style, cyberpunk art, retrofuturism​

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

disfigured, ugly, bad, immature​

毁容的,丑陋的,坏的,不成熟的​

Model: Protogen v2.2 型号:Protogen v2.2

目前来说三者无太大区别

 

Canny ​

Canny 边缘检测器是一种通用的老式边缘检测器。它提取图像的轮廓。​

它对于保留原始图像的构图很有用。​

适用场景:​

1、相比于Dpeth生成的图像线条性更好、更不容易变形;​

2、主要适用将相关字体嵌入到不同的背景中;(如果效果不明显可以尝试调整上下阀值)​

3、线上稿色(如果是黑白色稿底的需选用“”Invert”反转器)​

4、Cannny预处理器可以相关模型组合使用(基于动漫风格的线稿实现上色处理的预处理器与模型组合)

 

局限性:​

1、线条不宜过多、会导致画面凌乱

 

生成的图像将遵循轮廓

 

Holistically-Nested-Edge Detection(整体边缘线条检测)-HED​

替代名:Soft Edge(柔和边缘)​

相比于Cannny整体的细节把控、HED更侧重于把图形大致轮廓保存下来;​

整体的融合性相对于Canny要好一点;​

预处理器型号:​

Softedge_hed​

Softedge_hedsafe​

Softedge_pidinet​

Softedge_pisafe​

特点:​

带hed的质量要比pid的程度高,带safe的整体精细化程度更高;​

带safe的型号会导致需要电脑的现存和处理时间要求也越高;

 

Depth 深度​

深度预处理器根据参考图像猜测深度信息。​

适用场景:​

1、对场景的描绘还原尤其是富有多层次的空间图形;​

2、距离越近越白,越远阴影越深;​

局限性:​

人物和背景间的深度差异会限制人物形象的发挥空间;(限制人物绘画发挥)​

  1. Depth Midas: A classic depth estimator. Also used in the Official v2 depth-to-image model.​

Depth Midas:经典的深度估计器。也用于 Official v2 depth-to-image 模型。​

  1. Depth Leres: More details but also tend to render background.​

Depth Leres:更多细节但也倾向于渲染背景。​

  1. Depth Leres++: Even more details.​

Depth Leres++:更多细节。​

  1. Zoe: The level of detail sits between Midas and Leres.​

Zoe:细节水平介于 Midas 和 Leres 之间

 

 

Line Art 线条艺术​

Line Art 渲染图像的轮廓。它试图将其转换为简单的绘图。​

常见的一些线条艺术预处理器:​

Line art anime: Anime-style lines​

线条艺术动漫:动漫风格的线条​

Line art anime denoise: Anime-style lines with fewer details.​

线条艺术动漫降噪:动漫风格的线条,细节较少。​

Line art realistic: Realistic-style lines.​

Line art realistic:写实风格的线条。​

Line art coarse: Realistic-style lines with heavier weight.​

粗线条:写实风格的粗线。​

Use with the lineart control model.​

与线性控制模型一起使用。​

Images below are generated with Control Weight setting to 0.7.​

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

 

Line Art Anime 线条艺术动漫

 

Line Art Anime Denoise 线条艺术动漫降噪

 

Line Art Realistic 线条艺术写实

 

Line Art Coarse 粗线艺术

 

MLSD :​

M-LSD(Mobile Line Segment Detection)是一种直线检测器。它对于提取具有直边的轮廓非常有用,例如室内设计、建筑物、街景、相框和纸张边缘。(曲线将被忽略)

 

Normal maps 法线贴图​

法线贴图指定表面的方向。对于 ControlNet,它是一个图像,指定每个像素所在表面的方向。​

图像像素代表表面所面对的方向,而不是颜色值。​

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

Normal map preprocessors:​

法线贴图预处理器:​

  1. Normal Midas: Estimate the normal map from the Midas depth map.​

Normal Midas:从 Midas 深度图估计法线图。​

  1. Normal Bae: Estimate the normal map using the normal uncertainty method proposed by Bae et al.​

Normal Bae:使用Bae等人提出的法线不确定性方法估计法线图。​

Normal Midas :​

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

 

Normal Bae ​

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

 

Scribbles 涂鸦​

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

Scribble HED:整体嵌套边缘检测 (HED) 是一种边缘检测器,擅长像真人一样生成轮廓。根据 ControlNet 的作者,HED 适用于重新着色和重新设计图像。​

Scribble Pidinet:像素差网络(Pidinet)检测曲线和直边。其结果类似于 HED,但通常会产生更清晰的线条和更少的细节。​

Scribble xdog:高斯扩展差分 (XDoG) 是一种边缘检测方法技术。调整 xDoG 阈值并观察预处理器输出非常重要。​

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

 

Scribble HED ​

HED 产生粗糙的涂鸦线条

 

Scribble Pidinet ​

Pidinet 倾向于生成细节很少的粗线条。这对于复制没有精细细节的电路板轮廓很有用

 

Scribble xDoG​

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

 

Segmentation 分割​

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

 

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

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

你可以在此处的颜色图中找到 ufade20k 和 ofade20k 的对象类别和颜色

 

有几个细分选项​

  1. ufade20k: UniFormer (uf) segmentation trained on ADE20K dataset.​

ufade20k:在 ADE20K 数据集上训练的 UniFormer (uf) 分割。​

  1. ofade20k: OneFormer (of) segmentation trained on ADE20k dataset.​

ofade20k:在 ADE20k 数据集上训练的 OneFormer (of) 分割。​

  1. ofcoco: OnFormer segmentation trained on COCO dataset.​

ofcoco:在 COCO 数据集上训练的 OnFormer 分割。​

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

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

 

下面是使用具有相同提示和种子的预处理器。​

Futuristic city, tree, buildings, cyberpunk​

UniFormer ADE20k (ufade20k)​

UniFormer ADE20k (ufade20k)​

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

 

总结:​

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

 

Shuffle 洗牌/转换​

Shuffle 预处理器搅动输入图像。让我们看看 shuffle 的实际效果。​

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

 

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

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

 

Color grid T2I adapter 彩格T2I适配器​

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

 

Clip vision style T2I adapter(Clip vision 型 T2I 适配器)​

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

您将需要使用控制模型 t2iadapter_style_XXXX

该功能与 Reference ControlNet 非常相似,但T2IA CLIP vision效果更好

 

ControlNet Inpainting ControlNet 修复​

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

 

要使用 ControlNet 修复:​

最好使用与生成图像相同的模型。​

1.在txt2img页面生成图片后,点击Send to Inpaint,将图片发送到Img2img页面的Inpaint选项卡。​

2.使用画笔工具在要重新生成的区域上创建一个蒙版

3.将Inpaint 区域设置为Only masked。 (全图也可以)​

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

5.在 ControlNet 部分设置以下参数。您不需要上传参考图片。

 

Enable: Yes 启用:是​

Preprocessor: Inpainting_global_harmonious​

预处理器:Inpainting_global_harmonious​

Model: ControlNet 型号:控制网

6.按生成开始修复。

 

四、ControlNet的界面介绍​

Input controls 输入控件

 

 

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

Write icon: ​

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

Camera icon: ​

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

 

Model selection 选型

 

Enable: ​

启用:是否启用ControlNet。(一定要启用;不然无法使用Control Net!!!)​

Low VRAM:​

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

Allow Preview: ​

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

Preprocessor: ​

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

Model: ​

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

 

Control Weight 控制权重​

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

 

Control Mode 控制方式

Balanced: ​

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

My prompt is more important: The effect of ControlNet is gradually reducing over the instances of U-Net injection (There are 13 of them in one sampling step). The net effect is your prompt has more influence than the ControlNet.​

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

ControlNet is more important: ​

ControlNet 更重要:在未调节时关闭 ControlNet。实际上,CFG 规模也可以作为 ControlNet 效果的乘数

 

Resize mode 调整模式

 

调整大小模式控制当输入图像或控制图的大小与要生成的图像的大小不同时要做什么。​

如果它们的纵横比相同,则无需担心这些选项。​

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

Just Resize: Scale the width and height of the control map independently to fit the image canvas. This will change the aspect ratio of the control map.(拉伸)​

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

 

Crop and Resize: Fits the image canvas to be within the control map. Crop the control map so that it is the same size as the canvas.(裁减)​

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

 

Resize and fill: Fit the whole control map to the image canvas. Extend the control map with empty values so that it is the same size as the image canvas.​

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

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


前往网站首页查看更多精彩内容👉https://imyshare.com/

									
交流评论
按Ctrl + D添加至书签,从此不迷路!
关注公众号
iMyShare,公众号:神秘的热心网友
有些东西我只想与你们聊聊,赶紧微信扫码上车!
个人微信:niceso-friend(有微信群)
合作邮箱:niceso@163.com