Stable Diffusion是目前应用最广泛的本地AIGC,AI的最大特点就是强随机性,虽然在大部分时候它是优点,但难以掌控,随机抽卡也让用户颇为头疼。今天我们就为大家详细介绍一下Stable Diffusion中的ControlNet插件,它可以极大降低抽卡的随机性,让用户更容易的控制AI出图。
ControlNet是什么?有什么作用?
ControlNet是Stable Diffusion中的一款超强插件,它不同于模型,不会控制出图的风格,而是在底部的菜单栏中调用。
ControlNet需要结合不同大模型使用,插件本身的模型用于控制单元计算。
ControlNet可以多单元组合应用,增强出图控制。
ControlNet可以控制人物姿势、线稿生图(多种风格可选)、老照片上色、光影艺术字、固定照片物体生图、固定景深生图等等。
1 ControlNet插件界面讲解
在这里我们就不讲SD的操作以及插件的安装了,默认大家已经下好秋叶大神的整合包(里面包含ControlNet),如果想了解基础操作,可以翻看我前一篇文章。
AIGC技巧:SD图生图 如何控制变量生成想要的效果?
下面直接来看看ControlNet操作界面:
1.工作单元,ControlNet运行时可多单元同步参与计算
2.图像区,上传照片、手绘、效果预览(ControlNet的本质仍是图生图)
3.辅助功能区,新建画布,打开摄像头,尺寸同步等
4.设置勾选,勾选启用生成的图片才会参考ControlNet插件效果
5.控制类型,不同生成效果
6.模型区,ControlNet生成必须要有对应模型,预处理器可以空白
7.生成权重和介入控制区(这里我们后面详细讲解)
8.简单的字面意思
2 测试平台
SD出图对于显卡算力和显存的要求不过多赘述了,ControlNet对于显存的要求同样很高。在常规文生图中,我们大多数时间会参照模型(512×512或1024×1024)的尺寸进行生成。
但图生图会根据原图尺寸进行调整,如果想生成一次可用的图片,尺寸要比模型大很多,这时候对于显存的要求就非常高。
本次测试平台我们选择了技嘉提供的整机,整体采用纯白配件打造,兼顾美观与性能。对于内容创作者或玩家来说,也是桌搭非常好的选择。
显卡为技嘉GeForce RTX 4080 SUPER AERO OC雪鹰,RTX 4080拥有16GB大显存,304个Tensor Cores,达到780 AI TOPS,在简单的内容创作和日常主流AIGC软件中,都能够提供高速稳定的体验。
主板为技嘉B760M冰雕,采用16(14+1+1)相供电,且采用了M.2全覆盖散热以及供电全覆盖散热,轻松驾驭i9级处理器。
另外在AIGC软件中,图像或视频的生成均以GPU为主,在算力上GPU也要比CPU高出几十倍。不过我们在长时间的生成中,不可能干等着,所以一颗好的CPU也能够让我们同时处理更多工作。
下面直接进入正题,来看看ControlNet到底有何神奇之处。
PS:由于时间有限,每种效果仅用了简单的提示词控制,生成图像比较简陋。如果想生成理想图像,大家还需要在提示词上进行打磨,反复实验。
3 Canny(硬边缘)
Canny可以识别到画面中非常详细的线条,能够最大程度还原照片,可以说是ControlNet中约束性最强的控制。
在第一次讲解中,我们先大概了解一下ControlNet的操作流程。
首先上传一张图片后,如果生成想保持原图的尺寸,可以点击预处理结果预览右下方的上剪头;
在控制类型中选择好Canny后,下面的预处理器和模型会自动变成Canny对应的,大部分时间无需手动调节。但有时预处理中会有不同分支,需手动选择。
点击对话框中的爆炸图表,插件就会生成一张由该模型控制的预处理效果。从图中能看到在硬边缘模式下,生成图像为包含了所有边缘的黑白线稿。
控制权重默认为1,也是最为均衡的;引导介入时机和引导终止时机,可以理解为ControlNet在生成这张图片中参与了哪些部分,默认的0-1就是全程参与。
4 SoftEdge(软边缘)
用了最简单的Canny讲解操作方法后,我们再来看SoftEdge,相比硬边缘,它在预处理效果中的线条比较柔和,没有框定所有约束,给AI发挥的空间也就越大。
5 Lineart(线稿)
Lineart是专门提取线稿的模型,相比硬边缘和软边缘,它更接近手绘的风格,并且可以针对不同类型的图片进行不同的处理。
可以看到在不同线稿的提取方法中,预处理的线稿差别会很大,上图中标准线稿提取-白底黑线反色,比较好的还原了整个场景的结构和关系,但是它与硬边缘不同的是,仅靠白底反色处理,所以边缘仍然较为柔和,出图效果在最大程度还原原图结构外,也会有一些发挥空间。
而在coarse(粗略线稿提取)中,则更像标准的手绘线稿,而且它更偏向描绘主体。不过这样的问题就是AI发挥度更大,关键词少的话更容易崩。
在realistic(写实线稿提取)中,风格化更为明显。不过这几种先搞提取方法整体的出图效果大同小异,如果默认标准的提取无法达到效果,可以试试不同的手法。
6 Scribble/Sketch(涂鸦/草图)
Scribble/Sketch的风格更为粗犷一些,基本只保留了图片中的大致轮廓,所以生成出来的图片也只能看出与原图神似,但完全不是一回事。
不过既然是涂鸦玩法,那么使用照片显然有点违背初衷,在草稿上随便画几条线,然后静静看着AI能够联想出来什么,才是最有意思的。
而且这个功能相比NVIDIA Canvas所呈现的效果更好,毕竟Canvas是用画笔颜色代替物体,有点类似于Segmentation的效果,而Scribble/Sketch只是用画笔给了轮廓,重要的还是靠提示词来生成。
7 MLSD(直线)
MLSD是仅能提取直线的线稿,一般在建筑,或家居场景中使用的比较多,不过我们依然能发现一些有意思的用法。
可以看到模型将显卡边框的线条全部提取了出来,但是转角部位的弧形则没有。而且直线提取,少了很多具象化的东西,想象空间更大,非常容易出现意想不到的效果。
小结
上面几种都是属于线稿出图,只是在细分领域中有所区别。用过图生图的大家都知道,它依靠原图的效果来控制生成图像,所以可以做到与原图很像,但自由度非常小。想要更大的自由度又非常难以控制。
ControlNet这几个模型的本质上来说还是图生图,但相比图生图,它相当于有了一层蒙版,自由度更高,更可控。
8 Openpose(姿态)
Openpose是非常实用的一个工具,SD生图最大的困难就是对于姿态的控制,往往仅靠提示词,AI无法明确我们想表达的内容,而Openpose的火柴人就可以完美还原图中角色的姿态,更厉害的是,它还可以调节多人的不同姿态。
全身像适合full预设,姿态、手部及脸部都会被火柴人框住
Openpose预设中分的较为细致,对应不同的构图,可选择脸部、手部、姿态等范围。
在Openpose中,除了预处理,还可以手动调节捕捉细节,从而保障画面的真实or夸张,比如大家也可以把自己照片的腿部拉长,这样就会在其他结构不变的情况下,生成一个大长腿小姐姐。
9 Recolor(重上色)
Recolor可以对图片进行重新上色,它可以将现有的彩色照片进行黑白处理,然后重新由提示词填上颜色;但为黑白照片添加颜色应该才是大家最期望看到的,
为黑白老照片上色其实比较困难,首先老照片的清晰度都比较低,灰阶也没有现代黑白照片那样对比明显,AI识别起来很困难;另外老照片特有的噪点和马赛克又为AI区分细节增加了困难。
如果想要高清还原一张彩色照片,可以分为几步:1、运用AI的高清修复,先将照片分辨率放大;2、消除噪点、修复损坏部分;3、最后再进行上色填充。
不过相比于高分辨率无噪点的AI精修,个人还是更倾向于老照片那种“低保真”的年代感。其实用高糊原片,我们同样能够再利用PS对多张图片进行叠加处理,从而保留相对准确的部分。
10 AI光影艺术字
这一部分我没有写对应的控制类型,它可以用ControlNet自带的Tile/Blur(分块/模糊)来制作,也可以用自己下载的模型,都能达到想要的效果。
比如上面的图片,我使用了
Control_v1p_sd15_brightness模型来制作,它能够将字体通过光影的形式更好的融入图片中。
这里重点讲解一下AI艺术字的设置,原始图像可以在PS中直接写好字导出图片,或者使用ControlNet自带的画笔进行涂鸦。
如果使用Tile/Blur自带的模型,预处理器和模型这里都无需改动,如果想要选择自己下载的模型,预处理器需要选择none,然后刷新模型,找到自己想要的。
控制权重、引导介入时机、引导终止时机在其他模型中都是默认的,不过在艺术字中均要手动调节。
控制权重设置为0.5为宜,如果是1的话会让字体过于突出,而出现上图的效果。
引导介入时机和引导终止时机这两项是相辅相成的,0-1代表艺术字全程参与画面的迭代生成,但那样得出的效果与控制权重为1差不多。通常设置为0.2-0.4左右,代表着画面迭代在20%-40%的时间段有字体参与。
但这一数值并不绝对,如果你的画面迭代步数越高,引导终止时机则可以越大。
如果想要得到理想效果,仍需要多次尝试。在提示词、字体、大小、介入终止时机均达到理想平衡时,再更换文字,就能够比较快速的批量出图了。
11 Depth(深度)
Depth则可以很好地控制原图中的景深,如果想保持图像中的纵深结构可以选择。除了街景,在室内场景中,AI往往会生成出空间错乱的图片,Depth能够完美解决这一点。
Depth的发挥空间也非常大,能够看到它的预处理图像仅有“近白远黑”的概念,所以如果看到有哪些喜欢的构图,可以利用Depth借鉴一下。
除了ControlNet预处理的黑白图像,所有的模型都可以自定义上传蒙版,大家在PS中可以把过于突出的元素抹掉或增减,防止上图中出现明显边缘的情况。
12 NormalMap(法线贴图)
NormalMap比较神奇,它能够计算图片中主体的明暗关系,并且相对较为还原原图的姿势。
不过相对来说,NormalMap在预处理之后的修改空间不大,如果是普通的二三次元转换,不如线稿来的方便可操作性强;但如果是明暗光影效果较强的图片,想要保留这些细节的话NormalMap是不错的选择。
13 Segmentation(语义分割)
Segmentation拥有超强的稳定性和发散性,它的预处理结果不像其他模型是线稿,而是色块图,不同色块也有对应的不同物体。
可以看到Segmentation拥有超强的固定性,虽然预处理只是一些不同的色块,但每个色块都代表着固定的东西,这个模型也非常适合居家类风格,它可以将物体原本的形状固定住,然后转换为任何形式。
另外,虽然是色块图,但Segmentation不像NormalMap的预处理那么难以修改,知道了颜色代码之后,用户同样可以自行绘制色块到蒙版上,生成图像中就会出现对应的物体;以及在预处理识别不准确的时候也可以手动修改。
14 总结
这次技巧相对比较详细的介绍了ControlNet的各种控制类型,一些没讲到的相对大同小异,或者可替代性较强,当然大家也可以自行尝试。由于时间关系,本次所有模型出图均以演示为主,效果有所欠缺。
ControlNet本质上来讲,依然是图生图。但相比SD自带的图生图,它又更偏向以文字生成。在都有原图约束的情况下,他们最大的区别在于ControlNet拥有多种底稿的控制类型,如边缘线稿、深度、光影、姿态等。
所以它能够在遵循原构图的情况下,对生成图像随意调整,而SD自带图生图想要拥有自由度,则需要靠重绘幅度来调整,但这样一来会对原图有较大破坏。
最后总结一下ControlNet中容易碰到的坑:
1、提示词很重要,没有正反提示词,即使有原图打底也容易生成奇怪的东西
2、更换大模型后,需要注意ControlNet模型是否丢失
3、所有ControlNet生图都会附带一张预处理结果预览,没有的话代表ControlNet没有启用
4、ControlNet必须要使用对应模型,但它的模型与大模型不同,不控制生图风格,更偏功能性
5、使用放大涂鸦绘制时,一定一定一定不要点这个叉子,它是删除图像,不是让图像复位……
(8690529)