【Stable Diffusion】ControlNet 详解篇

一、前言

女模特总是不配合?用它!游戏原画没灵感?也用它![建筑绘画]各行各业设计都用它!它就是 ControlNet !只需简单调整参数就能产出无限创作灵感,提高我们的创作效率!
这款 SD 插件已成为了AI 绘画领域最新的热点。而它的出现代表着 AI 生成开始进入真正可控的时期,而 AIGC 的可控性是它进入实际生产最关键的一环。在此之前,大家用了很多方法想让 AI 生成的结果尽可能符合要求,但都不尽如人意,ControlNet 比之前 img2img 要更加精准和有效,可以直接提取画面的构图,人物的姿势和画面的深度信息等等。有了它的帮助,就不用频繁用提示词来碰运气抽卡式创作了。今天我们就详细探讨下 ControlNet 的各项参数,带着大家进入绘画创作的新大门!

二、ControlNet 缘起简介

ControlNet 作者:张吕敏,他是2021年本科毕业,目前正在斯坦福读博的中国人,为我们这位年轻同胞点赞。ControlNet 是作者提出的一个新的神经网络概念,就是通过额外的输入来控制预训练的大模型,比如 stable diffusion。这个本质其实就是端对端的训练,早在2017年就有类似的AI模型出现,只不过这一次因为加入了 SD 这样优质的大模型,让这种端对端的训练有了更好的应用空间。它很好的解决了文生图大模型的关键问题:单纯的关键词控制方式无法满足对细节精确控制的需要。
之前很火的 Style2Paints 也是这位作者制作的,除此之外他还做了一款名为 YGO PRO 2 的 Unity 纸牌游戏,这款游戏在国内外都有不少粉丝。

img

AI线稿上色这个领域他也有涉猎,Style2Paints 就是他创作的应用,已经迭代到了第5版。下图是 Style2Paints 线稿到插画的示例。项目地址:[https://github.com/lllyasviel/style2paints

img

三、基础参数介绍

img

1. 启用(Enable)

勾选此选项后,点击 “生成” 按钮时,ControlNet 才会生效。

2. 反色模式(Invert Input Color)

将图像颜色进行反转后应用。

3. RGB 转 BGR(RGB to BGR)

颜色通道进行反转,在 NormalMap 模式可能会用到。

4. 低显存优化(Low VRAM)

低显存模式,如果你的显卡内存小于等于4GB,建议勾选此选项。

5. 无提示词的猜测模式(Guess Mode)

也就是盲盒模式,不需要任何正面与负面提示词,出图效果随机,很有可能产生意想不到的惊喜效果!

6. 预处理器(Preprocessor)

在此列表我们可选择需要的预处理器,每个 ControlNet 的预处理器都有不同的功能,后续将会详细介绍。

7. 模型(Model)

配套各预处理器需要的专属模型。该列表内的模型必须与预处理选项框内的名称选择一致,才能保证正确生成预期结果。如果预处理与模型不致其实也可以出图,但效果无法预料,且一般效果并不理想。

8. 权重(Weight)

权重,代表使用 ControlNet 生成图片时被应用的权重占比。

9. 引导介入时机(Guidance Start(T))

在理解此功能之前,我们应该先知道生成图片的 Sampling steps 采样步数功能,步数代表生成一张图片要刷新计算多少次,Guidance Start(T) 设置为 0 即代表开始时就介入,默认为 0,设置为 0.5 时即代表 ControlNet 从 50% 步数时开始介入计算。

10. 引导退出时机(Guidance End(T))

和引导介入时机相对应,如设置为1,则表示在100%计算完时才会退出介入也就是不退出,默认为 1,可调节范围 0-1,如设置为 0.8 时即代表从80% 步数时退出介入。

11. 缩放模式(Resize Mode)

用于选择调整图像大小的模式:默认使用(Scale to Fit (Inner Fit))缩放至合适即可,将会自动适配图片。
一共三个选项:Just Resize,Scale to Fit (Inner Fit),Envelope (Outer Fit)

12. 画布宽度和高度(Canvas Width 和 Canvas Height)

画布宽高设置,请注意这里的宽高,并不是指 SD 生成图片的图像宽高比。该宽高代表 ControlNet 引导时所使用的控制图像的分辨率,假如你用 SD 生成的图片是 1000x2000 分辨率,那么使用 ControlNet 引导图像时,对显存的消耗将是非常大的;我们可以将引导控制图像的分辨率设置为 500x1000 ,也就是缩放为原本图像一半的分辨率尺寸去进行引导,这有利于节省显存消耗。

13. 创建空白画布(Create Blank Canvas)

如果之前使用过 ControlNet 功能,那么将会在 ControlNet 的图像区域留有历史图片,点击该按钮可以清空之前的历史,也就是创建一张空白的画布。

14. 预览预处理结果(Preview Annotator Result)

点击该按钮可以预览生成的引导图。例如:如果使用 Canny 作为预处理器,那么点击该按钮之后,可以看到一张通过 Canny 模型提取的边缘线图片。

15. 隐藏预处理结果(Hide Annotator Result)

点击该按钮可以隐藏通过 Preview 按钮生成的预览图像窗口(不建议隐藏)

四、预处理器功能详解

ControlNet 的核心能力就是能让我们通过设置各种条件来让AI更可控地生成最终图像结果。这些条件就是通过调节预处理器参数来实现的,所以我们首先要先了解下 ControlNet 各种预处理器的功能。

1. Canny 边缘检测

Canny 边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,常用于生成线稿。

· 预处理器分辨率

预处理器分辨率数值越高越精细,也越吃显存。但如果数值太低生成的线条也会很粗糙。默认512,具体设置时需根据素材大小和实际情况来做权衡。

img

· 长和宽的阈值

这个值越高线条越简单,越低线条越复杂。

img

注意:一定要找到和预处理器对应名字一样的模型。

img

重绘幅度越高,AI越放飞自我。

img

Prompt: “cute dog”

img

给线稿上色制作的小动画效果也挺好。

2. Depth 深度检测

通过提取原始图片中的深度信息,生成具有原图同样深度结构的深度图,越白的越靠前,越黑的越靠后。

· MiDaS 深度信息估算

MiDaS 深度信息估算,是用来控制空间距离的,类似生成一张深度图。一般用在较大纵深的风景,可以更好表示纵深的远近关系。

注:有时我们也可以用于生成遮罩蒙版

img

· LeReS 深度信息估算

LeReS 深度信息估算比 MiDaS 深度信息估算方法的成像焦点在中间景深层,这样的好处是能有更远的景深,且中距离物品边缘成像会更清晰,但近景图像的边缘会比较模糊,具体实战中需用哪个估算方法可根据需要灵活选择。

img

如下图能看出我们很好地控制住了生成结果的整体结构,这与原图基本保持一致。

img

3. HED 边缘检测

HED 边缘检测可保留更多柔和的边缘细节,类似手绘效果。

img

参数也是分辨率越高越精细,但也越吃显存。

img

Prompt: “oil painting of handsome old man, masterpiece”

img

相对于使用普通的 img2img ,边缘线提取的方式可以生成更加清晰完整的图,黑色描边也得到了很好的重绘。

img

4. M-LSD 线条检测

M-LSD 线条检测用于生成房间、直线条的建筑场景效果比较好。

img

rompt: “room”

img

Prompt: “building”

img

5. Normal Map 法线贴图

Normal Map 法线贴图能根据原始素材生成一张记录凹凸信息的法线贴图,便于AI给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。

img

· RGB 转 BGR

如需要把 Normal map 从 RGB 反转成 BGR 的可把这个选项勾上。(注:因坐标系问题,有时需要反转下通道信息,如生成结果的光照信息和你预期是反的,可能需要勾选此选项)

img

6. OpenPose 姿态检测

OpenPose 姿态检测可生成图像中角色动作姿态的骨架图,这个骨架图可用于控制生成角色的姿态动作。这个没有涉及手部的骨架,所以手部控制不行有时会出问题。

img

img

· OpenPose 姿态及手部检测

OpenPose 姿态及手部检测解决了姿态检测手的问题。如下图有了手部骨骼控制生成的手部效果会更好。

img

除了生成单人的姿势,它甚至可以生成多人的姿势,这点非常关键,在此之前AI生成的画面里多个人物的特定动作是几乎无法靠提示词来实现的。

img

通过控制人物姿势,在人物角色设计时也可以得到很好应用。

img

7. PiDiNet 边缘检测(像素差分网络,配合 hed 模型)

PiDiNet 边缘检测生成的线条较粗壮,类似雕刻效果。

img

这个预处理器要配合选择 hed 模型效果才会比较好。

img

8. Scribble 涂鸦(要配合 scribble 模型)

设置画布高度和宽度,一般默认 512x512 就可以了,点击 “Create blank canves” 创建画布。

img

把画笔调小一点,勾画出想要的图像轮廓(如下图)。

img

再添加一些提示词描述,控制下生成效果。

img

最终生成的图像效果,如下图。

img

· Fake_Scribble 伪涂鸦

不用自己画,扔个图片给AI,生成类似涂鸦效果的草图线条。

img

9. Segmentation(ADE20k 语义分割,配合seg模型)

语义分割可多通道应用,原理是用颜色把不同类型的对象分割开,让AI能正确识别对象类型和需求生成的区界。

OneFormer 地址:[https://huggingface.co/spaces/shi-labs/OneFormer]

ADE20K 颜色表:[https://drive.google.com/file/d/1lon9OBkWYFwj_xxh9lGFfkcQaZ0ErFAS/view]
img

10. Binary 二进制(黑白稿提取)

Binary 二进制就是把图像变成只有黑白两色(没有灰),如下图效果。

img

11. Clip_Vision 风格转移(配合 style 模型)

这是近期新出的一个模型,在实际使用中,选择预处理的时候并没有预览图像,猜测是因为风格转移,一种风格并不好预览。

首先生成一张颜色丰富的照片,然后以该照片作为 ControlNet 输入,该预处理器叫做 clip_vision,但是模型叫做 t2iadapter_style。有趣的是可以把一张照片的风格转移到另外一张上,如先生成一把剑,再将上述颜色丰富的照片和剑结合,就可以得到下图效果。

prompt: just a sword
Negative prompt: man, woman, person, protagonist
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 2026071917, Size: 512x512, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, ENSD: 31337, ControlNet-0 Enabled: True, ControlNet-0 Module: canny, ControlNet-0 Model: control_sd15_canny [fef5e48e], ControlNet-0 Weight: 1, ControlNet-0 Guidance Start: 0, ControlNet-0 Guidance End: 1

img

参考:[https://github.com/TencentARC/T2I-Adapter/blob/main/docs/examples.md]

img

12. Color 色彩继承

色彩预处理后会检测出原图中色彩的分布情况,分辨率影响色彩块的大小。

img

不加任何提示词,生成的图像就艺术感爆棚,观察下颜色和检测出来的颜色分布趋于一致。

img

官方介绍 [https://github.com/TencentARC/T2I-Adapter/blob/main/docs/examples.md]

img

五、附录

1. 预处理器与对应模型清单
预处理器名称对应ControlNet模型对应腾讯t2i模型功能描述
cannycontrol_cannyt2iadapter_canny边缘检测,适合原画设计师
depthcontrol_deptht2iadapter_depthMiDaS深度检测
depth_lerescontrol_deptht2iadapter_depthLeReS深度检测
hedcontrol_hed边缘检测但保留更多细节,适合重新着色和风格化
mlsdcontrol_mlsd线段识别,识别人物功能极差,适合建筑设计师
normal_mapcontrol_normal根据图片生成法线贴图,适合CG或游戏美术师
openposecontrol_openposet2iadapter_openpose t2iadapter_keypose提取人物骨骼姿势
openpose_handcontrol_openposet2iadapter_openpose t2iadapter_keypose提取人物+手部骨骼姿势
scribblecontrol_scribblet2iadapter_sketch应用自画的黑白稿
fake_scribblecontrol_scribblet2iadapter_sketch涂鸦风格提取(很强大的模型)
segmentationcontrol_segt2iadapter_seg应用语义分割
binarycontrol_scribblet2iadapter_sketch提取黑白稿
clip_visiont2iadapter_style风格转移
colort2iadapter_color色彩分布
2. ControlNet 和 T2I-Adapter 有什么区别?

ControlNet 在论文里提到,Canny Edge Detector 模型的训练用了 300 万张边缘-图像-标注对的语料,A100 80G 的 600 个 GPU 小时。Human Pose (人体姿态骨架)模型用了 8 万张 姿态-图像-标注 对的语料, A100 80G 的 400 个 GPU 时。 T2I-Adapter 的训练是在 4 块 Tesla 32G-V100 上只花了 2 天就完成,包括 3 种 condition,sketch(15 万张图片语料),Semantic segmentation map(16 万张)和 Keypose(15 万张)。 两者的差异:ControlNet 目前提供的预训模型,可用性完成度更高,支持更多种 condition detector (9 大类)。 T2I-Adapter ”在工程上设计和实现得更简洁和灵活,更容易集成和扩展” 此外,T2I-Adapter 支持一种以上的 condition model 引导,比如可以同时使用 sketch 和 segmentation map 作为输入条件,或 在一个蒙版区域 (也就是 inpaint ) 里使用 sketch 引导。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

1.stable diffusion安装包 (全套教程文末领取哈)

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍代码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入门stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.AIGC视频教程合集

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

在这里插入图片描述

实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值