智能

ControlNet 专题 —— 参数详解

波比AI · 5月2日 · 2025年本文共6293个字 · 预计阅读21分钟1次已读

ControlNet 专题 —— 参数详解

一、输入框

ControlNet 专题 —— 参数详解

(1)图像和画布栏

这里可以上传两种图像

原图:
一种是上图我放的那种,我们称其为原图,需要进行预处理操作,提取我们想要的信息。选择不同的预处理器会产生不同的预处理图,例如↓
ControlNet 专题 —— 参数详解

后面这种图片,统称原图

模式图:
另一种是模式图,就是类似预处理过的图像,这种图不需要再预处理。后面这种图片我们统称模式图。

canny模式图→不需要处理↓
ControlNet 专题 —— 参数详解

(也不是不能预处理,想要转换模式就可以使用预处理。比如虽然上传了hed模式图,但是我只是拿来画姿势,那么也可以用预处理来提取姿势);

hed模式图→openposelaoxiongb2c预处理,(左:输入的图,中:预处理图,右:出图)↓
ControlNet 专题 —— 参数详解

如果是白色背景的图,例如自己画的线稿,是白色背景,想直接作为canny模式图,需要开启反色模式。

(2)反色模式:

反色模式似乎仅适用于下面举例的那种白色背景、不需要预处理、直接作为模式图来使用的形式(或者说只有黑白两色,如线稿、边缘检测、涂鸦等等,另外深度图也可以用….);

v1.1中新添加了lineart线稿模型,仍然适用该规则。以后这种线稿类可以不再使用canny模型,直接使用lineart出图

反色是在预处理之后起作用,所以预处理并不能看出反色的效果。其他情况下,如果使用预处理,预处理会自动反色,就不要再勾选反色,不然会造成反效果。

正确1:线稿(作为canny模式图)→不预处理→反色;中:反色后模型的实际参考图↓
ControlNet 专题 —— 参数详解

错误1:线稿(作为canny模式图)→不预处bobyai理→不反色↓
ControlNet 专题 —— 参数详解

正确2:线稿(作为原图)→涂鸦预处理→不反色;(左:输入的图,中:预处理图,右:出图;下同)↓
ControlNet 专题 —— 参数详解

错误2:线稿(作为原图)→涂鸦预处理→反色↓
ControlNet 专题 —— 参数详解

v1.1版本 lineart模型:
线稿→不预处理→反色→lineart模型,这个直接作为线稿输入,效果还是差点,看下面的对比。↓
ControlNet 专题 —— 参数详解

线稿→线稿预处理→不反色→lineart模型。对比canny,这个线条比边缘检测强太多了↓
ControlNet 专题 —— 参数详解

专门用于动漫线稿的lineart animal,因为不支持无提示词模式,等后面再测试

在ControlNet预处理图中,除了法线、语义分割、color这几个,在其他的几个中黑色内容代表不参与构图,不会影响出图,如果是其它颜色,就会作为参考进入绘图流程导致出现问题,因此不正确使用反色会造成类似反转蒙版的效果。

让我们尝试一下将深度图反色,然后使用深度模型出图:

depth模式图→不预处理→反色→depth模型;最右是反色后的参考图↓
ControlNet 专题 —— 参数详解

v.1.1 的更新中,添加了这么一句,感觉其实不太准备

ControlNet 专题 —— 参数详解

这句话的意思是如果上传的图片是线稿涂鸦或者边缘,预处理设置为无

直接上传模式图的时候正常我们都是选无的,但是v1.1我试了一下,线稿不预处理直接使用,和经过预处理效果并不一样,比如上面那个对比:↓

ControlNet 专题 —— 参数详解

经过lineart预处理更准确些,这个还要靠大家自己测试一下效果。

另外涂鸦不只是有黑白涂鸦,如果使用彩色涂鸦的图,必须要预处理的。

4.18的更新取消了上面那句话,顺便还取消了反色选项,增加了一个invert的预处理器,这个预处理器就是以前的反色。这样更容易理解了,只要是白色背景黑色线条的线稿、涂鸦、边缘检测等的模式图,选它就行。

再次更新,添加了lineart_standard专门用于预处理这种线稿

(3)画布栏

以上两种原图的输入,都不要使用旁边的小画笔功能。小画笔是为下面的空白画布准备↓
ControlNet 专题 —— 参数详解

创建空白画布:

按照设置的尺寸创建一个白色画布,使用画笔手绘。这个地方功能等同于涂鸦,可以不预处理,模型直接选择scribble;也可以选涂鸦预处理,当然如果想要神奇效果,也可以尝试其他预处理器与模型…..

画布→scribble模型,虽然是白色画布,不需要反色。↓
ControlNet 专题 —— 参数详解

(事实上就连guess模式搜猜不出来我这是画的啥,后来不得以我只能输入了个mouse提示词来稍稍引导一下….)

注意,此处的尺寸设置和出图尺寸没关系,和输入的图像也没关系,仅仅是指创建的画布尺寸。在ControlNet中,没有任何一个参数会影响到出图尺寸(除了下面要说的小箭头),后面要说的画面缩放模式也仅是影响构图。
ControlNet 专题 —— 参数详解

v1.1将这部分折叠起来,调整到了预览预处理下面,有效防止了误解↓

(4)三个小按钮

ControlNet 专题 —— 参数详解

最后一个向上箭头是将出图尺寸调整为输入ControlNet的图像尺寸;
第一个相机好像是调用摄像头,我用手机试了下确实是;
第二个双箭头,F12查了下,mirror_webcam,镜像摄像头画面,但是怎么试都没效果。↓
ControlNet 专题 —— 参数详解

二、选项

ControlNet 专题 —— 参数详解

启用不用说;
反色上面说了;

(1)RGB格式法线贴图转BGR / RGB to BGR:

v1.1 4.18更新直接给移除了

这个是上传法线贴图专属的功能。normal模型使用的法线贴图是BGR格式,但是预处理图是RGB格式,我们将生成的预览图保存成图片,也是保存的RGB格式,因此当我们直接上传法线模式图的时候需要勾选此项,也不用深究怎么判断是什么格式,直接出图,如果不正常就勾选。(一些第三方的法线贴图也可能是rgb,需要勾选)

使用normal map预处理器生成法线贴图的时候不需要勾选,模型会自动反转。

关于为什么使用BGR

https://learnopencv.com/why-does-opencv-use-bgr-color-format/

低显存优化也不说了,官方的说法是低于8g开启;

(2)无提示词(prompt)模式 / Guess Mode:

神器也,上面的示例图片全部都是使用此模式生成的,除了老鼠那一张,其他的都没添加提示词。
使用此模式首先要在设置中”开启启用基于CFG的引导”,保存重启↓
ControlNet 专题 —— 参数详解

顺便说一下,启用laoxiongb2c组合多窗口是在这↓
ControlNet 专题 —— 参数详解

关于无提示词模式,可以在这里查看官方的解释

https://github.com/lllyasviel/ControlNet#guess-mode--non-prompt-mode
https://github.com/lllyasviel/ControlNet/discussions/188

简单的说就是ControlNet通过识别输入的图像以及提取的内容,自动的进行联想。

下面简单的对比一下效果,来自C站@listen2023的萧何月下追韩信….

无提示词,默认参数,使用depth预处理,

左:原图;中:直接出图;右:开启无提示词模式↓
ControlNet 专题 —— 参数详解

使用 <lora:Xiaorenshu_v20:0.9>↓
ControlNet 专题 —— 参数详解

添加画质提示词↓

masterpiece,best quality,official art, 8k wallpaper,  <lora:Xiaorenshu_v20:0.9>,
Negative prompt: nsfw, lowres,worst quality,low quality,normal quality,bad anatomy,text,error, signature, watermark, username,

ControlNet 专题 —— 参数详解

添加内容提示词high detailed,two man,riding motorcycle,moon↓
ControlNet 专题 —— 参数详解

更多内容提示词↓

masterpiece,best quality,official art, 8k wallpaper,high detailed,two man,armor,riding motorcycle,mountain,night,moon,outdoors,rough road,<lora:Xiaorenshu_v20:0.9>,
Negative prompt: nsfw, lowres,worst quality,low quality,normal quality,bad anatomy,text,error, signature, watermark, username,

ControlNet 专题 —— 参数详解

好了,差不多到达我的能力极限了,换个hed预处理看看还原度,↓
ControlNet 专题 —— 参数详解

再换个更自由的伪涂鸦模式↓
ControlNet 专题 —— 参数详解

去掉lora,↓
ControlNet 专题 —— 参数详解

无提示词模式完胜。

总结一下:

基本可以代替画质、光影以及色彩提示词;↓
ControlNet 专题 —— 参数详解

只需要简单的提示词就能描绘出很多细节。↓
ControlNet 专题 —— 参数详解

这个模式适合懒得写提示词以及写不了几个提示词的人;

不考虑其他因素,提示词越多,这个加成效果越弱。

虽然是我这种小白的福音,但是对于专业人士应该不需要,毕竟是专业人士需要融入更多自己的内容,这个本质上还是AI自由发挥。

下文中的出图如果没有说明,均使用无提示词模式。
真是炸裂,v1.1又更新了↓

ControlNet 专题 —— 参数详解

此处多了个允许预览的选项,移除了原来预览和隐藏按钮
需要先勾选①允许预览,才会出现②,点击②查看预览图

三、预处理器与模型

(1)预处理器与模型

ControlNet 专题 —— 参数详解

(2)预处理器:

用于预处理输入图像,例如检测边缘、深度和法线贴图等等。如果是第一次使用,需要联网下载包,有不少人网不好经常会造成下载中断,然后插件会提示损坏之类的,这个时候去根目录的models文件夹处理,找到对应的删除即可。

v1.1在4.18的更新中修改了路径,以后插件所有的内容都放在插件的文件夹,出问题直接删掉插件文件夹就能解决

另外,因为修改了路径,所有包都需要重新下载,不想下载的可以去设置中添加原来的路径(在models文件夹),但是怎么输入我也不知道,我提前就转移过去了,没法测试,可能要绝对路径?

ControlNet 专题 —— 参数详解

或者直接将相关包剪切到插件目录(…\extensions\sd-webui-controlnet\annotator\downloads)(也不是所有的都在这个文件夹,有几个是在预处理器名称下的文件夹)

(3)模型:

使用预处理图构建各项内容↓
ControlNet 专题 —— 参数详解

v1.1版↓
ControlNet 专题 —— 参数详解

绿色为新增预处理器,橙色为试验模型,深灰色为未完成模型。

这里单独说一下黄色的pidinet边缘检测。v1.1中将它直接放到了softedge,效果也和旧版完全不一样了,反倒是t2ia_sketch_pidi与原来的pidinet边缘检测是一样的效果。

看对比,左:旧版pidinet边缘检测;中:softedge_pidinet;右:t2ia_sketch_pidi↓
ControlNet 专题 —— 参数详解

其他内容在后面详细介绍

先说下通用参数↓
ControlNet 专题 —— 参数详解

(4)权重 / Weight:

指的是ControlNet插件在SD出图中的影响程度,类似于提示词中的权重,更像是lora的权重;

这里有一个坐着的美女,我们使用openpose提取姿势,但是提示词为standing on one leg, hands up, 然后分别试验从0.1-2的权重。↓
ControlNet 专题 —— 参数详解

失误了,忘了还有裙子,有点不雅……修改下standing on one leg, hands up, wearing pants↓

ControlNet 专题 —— 参数详解

这个参考图不大好,胳膊没提取出来,不过也够用了,上图就是权重的效果。

(这个无提示词模式真的好玩,我输入了hands up,它便认为是在欢呼,张大嘴巴,后面还给配了一群人)

(5)引导介入时机/Guidance Start & 引导退出时机/Guidance End:

这两个和我们上次说的的提示词分步[from:to:when]差不多,就是ControlNet从第多少步开始介入、从第多少步退出。

影响也是一样的,介入的影响远大于退出,越早影响越大,越晚影响越小。这个越早越大和越晚越小,[from:to:when]的时候就提到过,步数的大概前50%用来构图,后50%用来细化,在构图中没有出现,那细化中肯定就直接没有。在ControlNet中这个百分比又被大大提前,大概在30%-40%之间,越早和越晚都是指的在前40%之内。同样的,这个数值也受很多因素影响,需要自己测试。

还是使用上面的姿势,引导从0到1,退出1,权重1↓
ControlNet 专题 —— 参数详解

这一次测试大概在20%-30%之间,ControlNet的影响就无了

测试退出从1到0,引导0,权重1↓
ControlNet 专题 —— 参数详解

这就是介入影响远大于退出,引导从0就介入,哪怕介入就退出,也会产生影响。

(6)预处理器分辨率:

这个分辨率只代表预处理图的宽度,不会影响出图的尺寸。宽度越大,代表预处理图越精细。但是并不是越大越好,首先要考虑的是使用的什么预处理器,根据预处理结果进行调节。

其次要考虑的是出图尺寸,虽然实际影响并不大,但是出图是大尺寸,使用大分辨率会好一些。

只要显卡跟的上,哪怕出小图使用大分辨率也可以,没啥硬性规定,主要是看效果。

这是一张2048*1536的原图,通过它我们看一下这个选项的效果↓

ControlNet 专题 —— 参数详解

使用canny提取边缘,默认参数,下图分别是放大一部分的512、1024、1536,观察人物和右上角的桃花,↓
ControlNet 专题 —— 参数详解

分辨率低,提取的边缘线条粗糙,多是不连贯线段组成的,特别是一些曲线都是长线段参差错开组成;

对于细节丰富的地方如人眼头饰花蕊都是简单带过,但是后面景深模糊的桃花也提取了出来;

随着分辨率提升线条越来越平滑、圆顺,细节越来越多,但是对于模糊的桃花直接做了部分舍弃处理

可以看到,分辨率提升,对canny来说还是不错的,至于过多的细节和丢失的模糊桃花,可以通过修改判断阈值调节,这个后面再说。

四、画面缩放模式

出图的尺寸是固定的,我们在上面设置什么尺寸就是什么尺寸。但是在cnet中,如果原图和出图尺寸不匹配,可能会导致出现出图结果不符合预期。

前面说图生图的缩放模式的时候也提过,缩放模式是按照宽高比例就行缩放的,这里也是一样。

先说默认的裁剪后缩放

1. crop and resize

就是翻译的那种意思,裁剪后缩放。裁剪的是高度,缩放的宽度。

这个效果是以宽度为基准。

这里的缩放,是指的缩放画面,大了缩小,小了放大,内容不会改变。

看示例,为了便于观察,预处理器选无,只对比cnet的参考图和原图

出图尺寸512512,原图尺寸512768。↓

ControlNet 专题 —— 参数详解

宽度一致的情况下,高度上下裁剪导致画面丢失。

出图尺寸512512,原图尺寸6721056。↓

ControlNet 专题 —— 参数详解

出图尺寸768768,原图尺寸6721056。↓

ControlNet 专题 —— 参数详解

出图尺寸10241024,原图尺寸512768↓

ControlNet 专题 —— 参数详解

出图尺寸768512,原图尺寸512512↓

ControlNet 专题 —— 参数详解

宽度不一致的情况下,宽度直接缩放,内容没有丢失;裁剪高度,画面丢失。

正如上面说的,宽度是决定项。在保证宽度内容不丢失的情况下,会根据比例裁剪高度。

比如最后一张图,出图尺寸768512,宽高比为1:0.67;原图尺寸是512512,宽高比为1:1,那么原图的高度1就会被裁剪成0.67。

同理出图尺寸是512512,比例1:1;原图尺寸512768,比例1:1.5,那么1.5就会被裁剪成1。

这就是缩放和裁剪的意思。

2. just resize

这个比较直接,出图尺寸就是基准,直接缩放成出图尺寸,如果出图与原图比例差距过大,就会导致画面变形。

先举例说明:

出图尺寸512512,宽高比例1:1;原图尺寸512768,宽高比例1:1.5。使用 just resize ,这个比例会被强制变成1:1,也就是高度1.5会被压缩成1,会造成很有意思的结果。

示例

出图尺寸512512,原图尺寸512768。

左原图;左二预处理图;右二实际参考图;右出图↓

ControlNet 专题 —— 参数详解

出图尺寸768512,原图尺寸512768。↓

ControlNet 专题 —— 参数详解

我举的例子虽然不正经,但是用的好了也会有奇效。

3.resize and fill

缩放后填充,不够的地方用空白补全,空白代表没有内容,可以是黑色可以是白色可以是其他颜色,主要是看预处理图。

缩放是指的是以长边为基准,将全部内容都放到出图中,补短边。例如出图是7681024,原图是512768,那么会以长边为基准,将768缩放到1024,512缩放到682,682与768的差距,使用空白补全。

为了便于观察,找个带颜色的做示例

出图是7681024,原图是512768↓

ControlNet 专题 —— 参数详解

出图是512768,原图是512512,这种一般是以相等的边为基准,不再举例。

总结

参考

[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!