首页知识内容页

老鹿学Ai绘画:初窥ControlNet|安装|通用参数讲解

2023-07-10 14:46:23 来源:哔哩哔哩

今天我们要分享的内容视频版如下,视频已添加进度条及配音,想要原视频以及插件的鹿友公众号后台回复“463”获取:

以下是图文版内容:

正文共:3267字 45图


(资料图)

预计阅读时间:9分钟

嗨,好久不见,有快一个月没有更新了,因为最近比较忙,但是又不忍心停更,所以只能晚上抽时间写文,大家且读且珍惜吧:

前面我们已经花了9篇文章将Stable Diffusion的入门内容介绍完了,如果还没有看的鹿友墙裂推荐阅读:

从今天开始我们将进入Stable Diffusion进阶必学插件,ControlNet的学习。

虽然ControlNet总体学习起来难度不大,但是内容还是挺多的,为了控制文章的篇幅以及视频的时长,应该会分好几期来分享。

当然更新频次方面我自己也多多抓紧,尽量更新快一点,希望广大鹿友多多支持。

01

ControlNet的概述

正式学习之前我们先来回顾上一篇文章结尾处对SD各项功能的总结:

通过以上的总结可以看出,目前SD已经能够从很多方面控制出图,但你会发现这种程度的控制是远远不够的。

我这里用自己的照片举例吧,例如我现在有这样一张图:

然后我希望生成的图片都摆出和我一样的姿势,按照我们之前学习过的内容,你可能首先会想到使用图生图的功能。

首先我们可以在提示词中输入如图所示的提示词:

可以看到当我们在重绘幅度不高的情况下,也能一定程度上还原这个动作:

但由于图生图识别的是原图的颜色,因此生成的图片始终和原图有些类似,包括衣服和背景。

而如果我们想要和原图差异大一点,一旦提高重绘幅度,动作就很难保持:

可能需要不断的抽卡才能得到一张合适的图片,而结合ControlNet,例如Scribble这种模式,我们可以把图片转换为草图,并且能一定程度上保证它的轮廓,

这样我们就可以在较高重绘幅度的同时,基本保证姿势的不变:

总结一句话,ControlNet就是进一步通过其他维度来控制出图的准确度。

截止到写文的时间2023年7月5号,ControlNet一共有14个模型:

并且还有很多预处理器:

另外ControlNet的更新相当频繁,据我观察每2到3天好像就会更新一次,在我写这篇文章的时候,它都已经又更新了:

02

ControlNet的安装

安装ControlNet和普通插件一样,可以通过网址安装:

也可以在可用中搜索ControlNet,我由于已经安装过了,所以不会有显示:

最后就是用离线压缩包安装,需要将压缩包解压到SD安装目录的extensions里,离线压缩包我文后也会分享给大家:

安装完毕之后你就可以在文生图和图生图的界面看见ControlNet的选项卡了:

插件安装完毕以后,默认情况下模型这一栏是没有的,因此就需要安装ControlNet模型:

前面提到了目前ControlNet官方模型有14个,就是这些以pth结尾的文件,文后同样会打包分享给大家:

下载以后请解压到ControlNet的models文件夹里。

另外这个文件夹里本身包含了所有yaml配置文件,通常情况下你只用下载pth结尾的文件即可,当然你将官网的yaml文件下载放进去替换也可以。

下载完模型之后记得在ControlNet的模型栏位点刷新:

当你在第一次选择预处理器的时候,其实系统是会自动进行一个预处理器模型的下载:

但很多时候会因为网络问题下载失败而导致ControlNet用不了,因此建议大家手动安装一下预处理模型,模型同样文后会分享给大家。

需要在ControlNet的annotator这个文件夹里,新建一个downloads的文件夹,然后把如图所示的文件夹全部拷贝进去:

安装完毕以后我建议大家在设置中,把ControlNet的最大数量改为3或者5,这样大家就可以多个预处理器同时使用,对出图进行叠加控制:

03

ControlNet通用参数

虽然ControlNet有很多预处理器和模型,但大部分参数属于通用参数。

首先是加载图片的区域,可以是一张正常的图片,会根据你选择的预处理器提取相应的信息。

也可以直接使用骨骼图,深度图或轮廓图等,这个我们以后再细说:

下方可以点击创建新的空白画布:

可以设置画布的宽高尺寸之后,然后点击创建:

创建之后你就可以直接在画布上绘制草图了,不过这个功能应该很少用到:

创建画布的旁边是使用ControlNet读取电脑摄像头所拍摄到的画面,我没有摄像头,所以暂时也没用过这个功能:

下面一个功能,看提示是反转摄像机的意思,没用过:

当你在ControlNet中上传图片以后,点击第四个按钮,那么SD出图的尺寸将自动设置为和你上传的图相同:

激活启用按钮,ControlNet才能生效,低显存优化,建议显卡缓存只有4G的情况下激活:

我们使用ControlNet生成信息图的时候,信息图的宽高比要尽量和出图的设置相近。

因此例如出图的尺寸设置为768*1024,在ControlNet中上传的图片最好也是同样的宽高比:

而当我们选择一种预处理器的时候,可以手动设置预处理器的分辨率,数值越大生成的信息图尺寸越大越精确,但消耗的资源也会越多,反之亦然。

因此当我们出图尺寸设置为768*1024,但是预处理器分辨率设置为512的时候,生成的信息图尺寸就被调整为了512*683:

勾选这个完美像素选项,它会自动帮你匹配合适的预处理器分辨率,可以看到这个时候我们生成的信息图尺寸就变成了768*1024:

ControlNet需要同时选择预处理器以及对应的模型才能起作用,默认情况下是全部,需要你手动选择,很不方便:

因此你可以直接选择你想要控制的类型,这样它就只会显示该类型下的预处理器,并且自动匹配对应的模型:

接下来三个参数,控制权重不用多说,后面两个参数分别是控制的起始及结束步数,单位为百分比。

例如当我的采样迭代步数为20,起始控制步数为,代表着ControlNet从第10步才开始起作用:

下面有三种控制模式,官方的算法写的很玄乎,但其实就是字面的意思,均衡、提示词更重要和ControlNet更重要:

画面缩放模式和图生图中的缩放模式一样,当ControlNet中上传图的宽高比和出图设置不同时,会根据不同的选择方式调整图片尺寸,这里就不再赘述了:

最下面这个参数字面意思看是将生成的图自动发送回ControlNet中,但经过我测试好像暂时没有什么效果,暂且略过吧:

最后再补充一个漏说的知识点,前面我们提到了ControlNet中可以直接上传信息图,比如骨骼图,轮廓图等。

在图片输入框的下方会提示,当你的图片为白色背景黑色边缘时,预处理器需要选择为反转:

例如我这里上传了一个白色背景黑色描边的文字轮廓图,控制类型选择为canny,这是专门提取轮廓信息的预处理器。

预处理器中选择反转,反转这个预处理在所有的线条类控制里都有:

选择完毕之后记得点击爆炸图标,前面忘记说了,使用ControlNet在确定预处理器和模型之后一定要点一下这个图标,点击之后就可以看到我们的图片轮廓被提取出来了:

然后再在提示词中输入你想要的提示词,就能很轻松的得到一个艺术字的效果了:

以上就是今天想要分享给大家的所有内容。

本来想再单独介绍一下canny处理器的参数的,但是今天的篇幅感觉已经够长了,我们以后再分享吧。

最后自我吐槽一下,这篇文章是7月5号晚上开始写的,就这样每天晚上写一些,等到视频剪辑完都7月10号了,阿西吧:

如果觉得对自己有所帮助,请不要吝啬自己的点赞、点在看、转发朋友圈,你们的支持对我很重要,谢谢!

更多内容欢迎关注公众号:

本文由“野鹿志”发布

转载前请联系马鹿野郎

标签: