AI绘画-Stable Diffusion基础:精准控制之ControlNet

大家好我是极客菌!!!在AI绘画中精确控制图片的生成是一件比较困难的事情,炼丹师们经常需要大量抽卡才能得到一张满意的图片,不过随着
ControlNet 的诞生,这一问题得到了很大的缓解。ControlNet
提供了十几种控制网络模型,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高绘画质量、提升生图速度特别有用;基于
ControlNet 的能力,炼丹师们还可以将AI绘画拓展到更多的应用场景,比如艺术二维码、光影文字、线稿上色、老照片修复、图片风格转绘等等。
在这里插入图片描述

本文将以 Stable Diffusion WebUI 为例介绍 ControlNet 的安装和使用方法。

安装

ControlNet 在 Stable Diffusion WebUI 中是以插件的形式存在的,大部分 SD WebUI
的整合包或者镜像都已经安装了这个插件,如果你的还没有安装,需要先安装它。已经安装好的跳过这一小节即可。

方法一

打开 Stable Dissusion WebUI
前端页面,进入“扩展插件”-“从网址安装”,在“扩展插件的git仓库网址”中输入:https://github.com/Mikubill/sd-webui-
controlnet,然后点击“安装”,待安装完成后重启 SD WebUI。各种 ControlNet 模型和预处理器会在使用时自动下载安装。

在这里插入图片描述

方法二

如果访问github不畅,也可以通过别的方式下载插件包和对应的模型,然后自己部署到 stable-diffusion-webui
中。(注意:文章最后有我整理的插件包和各种模型的下载地址可自行扫描获取)

具体部署路径如下:

  1. ControlNet插件:/extensions

  2. ControlNet模型:/extensions/sd-webui-controlnet/models

  3. ControlNet预处理器:/extensions/sd-webui-controlnet/annotator/downloads

注意需替换 为你自己的SD WebUI部署路径。

安装成功后,在“文生图”、“图生图”界面的下方会出现 ControlNet 区域,点击右侧的展开按钮,下边有4个ControlNet
单元,也就是我们最多可以同时使用4个 ControlNet 来控制出图的效果,一般情况都能满足。需要注意,同时使用的模型越多,生成图片的速度越慢。

在这里插入图片描述

如果你的 ControlNet
只有1个单元,或者你想修改这个单元的数量,可以到“设置”中调整,如下图所示,找到“多重控制网:最大模型数量”,更改之后别忘了重启。

在这里插入图片描述

使用

ControlNet 需要搭配大模型一起使用,这里以“文生图”为例来演示 ControlNet 的使用。

首先选择大模型,输入提示词和反向提示词。这里选择 AnythingV5
这个二次元模型,提示词很简单的:1girl,反向提示词也很简单:NFSW,避免生成不太方便的图片。

在这里插入图片描述

然后是采样参数、画布尺寸、提示词引导系数、生成种子,这些都不是重点,使用默认的就可以。

在这里插入图片描述

最后重点介绍 ControlNet 的配置方法。由于设置较多,为了方便对照阅读,我将分段介绍。

下面将按照图片中的数字顺序进行介绍。

第一段

在这里插入图片描述

1、ControlNet 模块的标题。如图所示,ControlNet 文字后跟一个版本号,“1 unit”表示当前启用了1个 ControlNet 单元。

2、默认情况下,ControlNet的面板是折叠起来的,点击这个按钮可以展开。

3、可以同时开启多个 ControlNet 单元,它们共同参与图片的绘制,已经启用的单元会用亮色标注出来。不过开启的越多,生成图片的速度越慢。

4、在每个 ControlNet 单元中可以上传一张参考图片,ControlNet 会根据当前选择的 Control Type
从参考图片中提取某种特征信息,用于生成图片。

5、预处理效果预览:预处理就是从参考图中提取图片的某种特征信息,预览就是以可视化的形式展示这些特征信息。大部分 ControlNet 都支持预览,也有部分
ControlNet 不支持预览。下面会介绍生成这张预览图的方法。

6、ControlNet
参与图片绘制时:线条需要是白色的、背景需要是黑色的。这里提示用户如果参考图中的线条是黑色、背景是白色的,需要在预处理器中使用“反转”进行处理。

7、这里有四个关于参考图的操作按钮,它们按照前后顺序分别是:

(1)使用画布:

点击这个按钮后,首先会显示创建画布的参数,设置宽高,点击“创建新画布”。

在这里插入图片描述

然后参考图这里就变成了一个画布,我们可以使用鼠标在这个画布上随便画画。画布的右上角有几个按钮,可以调整画笔的粗细、撤销操作、清空画布、关闭画布等。生成图片时
ControlNet 将使用画布中的内容作为参考图。

在这里插入图片描述

(2)使用摄像头:

点击这个按钮之后,参考图这里将变成摄像头,我们可以使用电脑摄像头拍摄照片作为参考图。

在这里插入图片描述

(3)镜像摄像头:

点击这个按钮会将摄像头的画面水平反转。

(4)发送尺寸到 Stable Diffusion:

点击这个箭头按钮会把参考图的尺寸填写到 Stable Diffusion 的画布尺寸中,也就是填写到下图的位置:

在这里插入图片描述

8、启用:勾选这个按钮之后,当前的 ControlNet 单元才生效,才会参与生成图片。

9、低显存模式:如果显卡内存小于4GB,建议勾选。

10、完美匹配像素:勾选此项后,无需手动设置某些预处理器生成预览图的分辨率参数,ControlNet 将自动计算,更好的匹配 Stable
Diffusion。建议勾选,不同的值,对出图还是有些影响的。以Canny为例:

在这里插入图片描述

Stable Diffusion画布尺寸为 512*512,预处理器分辨率分别为:512、1024和2048时的效果。

在这里插入图片描述

11、允许预览:勾选这个后,会在参考图的右侧出现一个预处理效果预览区域,也就是序号5这个位置。有了这个预览效果,我们就可以快速的了解各个预处理器的能力。这个效果预览不是上传参考图就自动出现的,下面会介绍生成这张预览图的方法。

在这里插入图片描述

12、Preview as input:勾选此项,生成图片时 ControlNet 会跳过预处理器的处理,直接使用预览图参与图片生成。这有一些用处,比如使用
OpenPose
控制网络时,我们可能需要修改预处理生成的人物姿势,然后再上传到这里用来生成人物的新姿势;再比如使用x/y/z图表时,勾选了这个之后,ControlNet
就会直接使用这里的预览图,也不需要生成每张测试图片之前都进行重复的预处理,这可以节省一些时间。

第二段

在这里插入图片描述

13、Control
Type:这里选择当前要使用的控制网络类型。选择某个类型之后,14、16中会自动加载对应的默认预处理器和模型;如果选择All,预处理器和模型需要自己手动选择。

14、预处理器:提取参考图片中的某种特征信息,作为生成图片时 ControlNet 模型的参数。不同 Control Type
支持的预处理类型和数量各不相同,有的 Control Type 不支持预处理器,比如 IP2P。我将在介绍具体单个Control Type 时详细介绍他们。

15、生成预览图:点击这个爆炸图标会使用当前选中的预处理器生成效果预览,并展示在序号5的位置。

在这里插入图片描述

16、模型:ControlNet 参与图片生成时使用的模型,不同 Control Type 支持的预处理类型和数量各不相同。我将在介绍具体单个Control
Type 时详细介绍他们。

17、ControlNet 参与图片生成的三个参数:

(1)控制权重:ControlNet 模型在生成图片时的权重,降低这个权重,ControlNet 对绘图的约束就会变弱。

在这里插入图片描述

(2)启动控制的步数:生成图片时 ControlNet 介入的时机,取值范围:0-1,默认0,采样步数乘以这个值就是 ControlNet
开始参与的步数。这个值越小,ControlNet 对生成图片的约束力越强。

(3)结束控制的步数:生成图片时 ControlNet 退出的时机,取值范围:0-1,默认1,采样步数乘以这个值就是 ControlNet
退出绘制的步数。这个值越大,ControlNet 对生成图片的约束力越强。

可以根据出图的效果,灵活调整这三个参数的值。根据经验,SD一般会在前30%的采样内确定图片的整体结构,所以需要保持图片结构时启动控制的步数不宜过大。

18、预处理器的参数,不同的预处理器参数不同。

以canny为例,通过调整阈值可以控制边缘图中保留细节的多少。

  • Canny Low Threshold:去掉过细的线段。大于低阈值的线段被认定为边缘。

  • Canny High Threshold:去掉零散的线段。大于高阈值的线段被认定为强边缘,全部保留;高阈值和低阈值之间的线段认定为弱边缘,只保留强边缘相邻的弱边缘。

在这里插入图片描述

19、控制模式:ControlNet 的通用设置,以提示词为主,还是以 ControlNet 为主,默认是平衡模式。

以提示词为主时,细节上会有更多自由发挥,效果如下图所示:

在这里插入图片描述

19、缩放模式:ControlNet的通用设置,参考图与要生成的图片尺寸不一致时如何处理。拉伸有变形的问题,一般使用裁剪和填充。

裁剪:根据画布的宽高比例对参考图进行裁剪,然后再将参考图缩放到画布尺寸;

填充:将参考图的至少一条边缩放到画布尺寸,并自动补充画布中空白的部分。

我将画布尺寸改为427*640,出图对比效果如下:

在这里插入图片描述

20、图像迭代:目前仅在批处理模式下生效。勾选后会使用上次生成的图像作为下一次迭代的参考图。网上的介绍不多,能找到的用途有两个:连续优化一张比较差的图片;转绘视频帧时用于减少序列帧的画面不一致性。较难使用,比较鸡肋。

资源下载

本文使用的模型、插件,生成的图片,都已经上传到了我整理的SD绘画资源中,后续也会持续更新,如有需要(文末自行扫描获取)

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

在这里插入图片描述

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值