一篇文章教会你,从入门到使用。
这里是行者AI,我们专注于人工智能在游戏领域的研究和应用,凭借自研算法,推出游戏AI、智能内容审核、数据平台等产品服务。
controlNet控制生成
anypaint
看到这篇文章的你,一定也是AI绘画的爱好者吧。我们有一款可以0门槛上手入门,也可以满足复杂专业生图需求的AI美术在线学习工具anypaint。在线生图,无需硬件和部署。anypaint功能包括文生图、图生图、局部重绘、高清放大、LoRA、ControlNet、潜变量局部放大、平铺扩散、姿势编辑等。不论你是初学者还是专业人士,都能在图刷刷中找到适合自己的绘图方式和独特风格,为你的创意提供无限可能。入股绝对不亏。
链接给各位看官奉上:
https://www.anypaint.art/
ControlNet的出现代表着 AI 生成开始进入真正可控的时期,而 AIGC 的可控性是它进入实际生产最关键的一环。如果说Lora是把你想要画面的风格炼制成模型,那么ControlNet就是更好地控制这个模型,生成你想要的特定姿势或画面。文章以下关于ControlNet的教学都以anypaint为例(https://www.anypaint.art/),建议可以边看边打开网页操作,效果更好,不方便的话可以先收藏。
ControlNet 的核心能力就是能让我们通过设置各种条件来让AI更可控地生成最终图像结果。这些条件就是通过调节预处理器参数来实现的,所以我们首先要先了解下 ControlNet 各种预处理器的功能,展示部分预处理器效果如下:
每个 ControlNet 的预处理器都有不同的功能接下来我们具体一个一个来看,他们究竟是什么?怎么用?什么时候用哪个?或者那些合适?
(表格太长,完整表格已放评论区,需要自取)
1.Canny 边缘检测
Canny 边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,帮助我们标注轮廓、动作、衣服褶皱、表情等等画面的细节,多用在3转2;常用于生成线稿。
缺点:主体容易被其他的背景影响
1. 预处理器分辨率
预处理器分辨率数值越高越精细,也越吃显存。但如果数值太低生成的线条也会很粗糙。默认512,具体设置时需根据素材大小和实际情况来做权衡。
也可直接勾选【Pixel Perfect】选项,系统自动设置最佳分辨率(推荐)
2.长和宽的阈值,这个值越高线条越简单,越低线条越复杂。
注意:一定要找到和预处理器对应名字一样的模型。
Depth 深度检测
通过提取原始图片中的深度信息,生成具有原图同样深度结构的深度图,越白的越靠前,越黑的越靠后。
MiDaS 深度信息估算
● 用来表示空间距离,也就是前后距离,体现透视关系;越白的就越靠前,越黑的就越往后
● 可以用来更换背景、主体、还有画风之类的东西;有时我们也可以用于生成遮罩蒙版。
● 深度图可由3D软件生成,也可以使用PS
● 如果用人像来检测的话,边缘轮廓没问题,但白色里面是没有细节的,所以单独使用的话一般就用风景,或者能表示纵深关系的图。
LeReS 深度信息估算
LeReS 深度信息估算比 MiDaS 深度信息估算方法的成像焦点在中间景深层,这样的好处是能有更远的景深,且中距离物品边缘成像会更清晰,但近景图像的边缘会比较模糊,具体实战中需用哪个估算方法可根据需要灵活选择。
如下图能看出我们很好地控制住了生成结果的整体结构,这与原图基本保持一致。
HED 边缘检测
HED 边缘检测可保留更多柔和的边缘细节,类似手绘效果。
参数也是分辨率越高越精细,但也越吃显存。
相对于使用普通的 img2img ,边缘线提取的方式可以生成更加清晰完整的图,黑色描边也得到了很好的重绘。
M-LSD 线条检测
- 适用于四四方方的场景,建筑物,物体,房间、车辆等,生成的预览图就是很正直的线条
- 非常适合搞建筑和室内设计的朋友用
- 直线检测mlsd与canny区别 mlsd只会检测直线,而canny会检测所有边缘线条 如图里的人物,canny会检测出来并生成灯
Normal Map 法线贴图
Normal Map 法线贴图能根据原始素材生成一张记录凹凸信息的法线贴图,便于AI给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。
- RGB 转 BGR
如需要把 Normal map 从 RGB 反转成 BGR 的可把这个选项勾上。(注:因坐标系问题,有时需要反转下通道信息,如生成结果的光照信息和你预期是反的,可能需要勾选此选项)
人物姿势检测
OpenPose 姿态检测
OpenPose 姿态检测可生成图像中角色动作姿态的骨架图,这个骨架图可用于控制生成角色的姿态动作。这个没有涉及手部的骨架,所以手部控制不行有时会出问题。
OpenPose 姿态及手部检测
OpenPose 姿态及手部检测解决了姿态检测手的问题。如下图有了手部骨骼控制生成的手部效果会更好。
除了生成单人的姿势,它甚至可以生成多人的姿势,这点非常关键,在此之前AI生成的画面里多个人物的特定动作是几乎无法靠提示词来实现的。
通过控制人物姿势,在人物角色设计时也可以得到很好应用。
PiDiNet 边缘检测(像素差分网络,配合 hed 模型)
PiDiNet 边缘检测生成的线条较粗壮,类似雕刻效果。这个预处理器要配合选择 hed 模型效果才会比较好。
Scribble 涂鸦(要配合 scribble 模型)
Fake_Scribble 伪涂鸦
不用自己画,扔个图片给AI,生成类似涂鸦效果的草图线条。
该算法提取了曝光对比度比较明显的区域,以此来重新引导。可以看到提取的涂鸦,仅保留了曝光度对比较大的部分,但是细节保留的很不错,细节保留的越多,那么重新引导时所能更改的部分就越小。
Reference 参考原图
参考原图的风格或角色
reference只有预处理器,不需要模型,该功能对于保持人物角色也有不错的效果。
anypaint中界面具体操作解释:
- 启用
勾选此选项后,点击 “生成” 按钮时,ControlNet 才会生效。 - 反色模式(Invert Input Color)
将图像颜色进行反转后应用。 - RGB 转 BGR(RGB to BGR)
把颜色通道进行反转,在 NormalMap 模式可能会用到。 - 低显存优化(Low VRAM)
低显存模式,如果你的显卡内存小于等于4GB,建议勾选此选项。 - 无提示词的猜测模式(Guess Mode)
也就是盲盒模式,不需要任何正面与负面提示词,出图效果随机,很有可能产生意想不到的惊喜效果! - 预处理器(Preprocessor)
在此列表我们可选择需要的预处理器,每个 ControlNet 的预处理器都有不同的功能,后续将会详细介绍。 - 模型(Model)
配套各预处理器需要的专属模型。该列表内的模型必须与预处理选项框内的名称选择一致,才能保证正确生成预期结果。如果预处理与模型不致其实也可以出图,但效果无法预料,且一般效果并不理想。 - 权重(Weight)
权重,代表使用 ControlNet 生成图片时被应用的权重占比。 - 引导介入时机(Guidance Start(T))
在理解此功能之前,我们应该先知道生成图片的 Sampling steps 采样步数功能,步数代表生成一张图片要刷新计算多少次,Guidance Start(T) 设置为 0 即代表开始时就介入,默认为 0,设置为 0.5 时即代表 ControlNet从 50% 步数时开始介入计算。 - 引导退出时机(Guidance End(T))
和引导介入时机相对应,如设置为1,则表示在100%计算完时才会退出介入也就是不退出,默认为 1,可调节范围 0-1,如设置为 0.8 时即代表从80% 步数时退出介入。 - 缩放模式(Resize Mode)
用于选择调整图像大小的模式:默认使用(Scale to Fit (Inner Fit))缩放至合适即可,将会自动适配图片。
一共三个选项:Just Resize,Scale to Fit (Inner Fit),Envelope (Outer Fit) - 画布宽度和高度(Canvas Width 和 Canvas Height)
画布宽高设置,请注意这里的宽高,并不是指 SD 生成图片的图像宽高比。该宽高代表 ControlNet 引导时所使用的控制图像的分辨率,假如你用 SD 生成的图片是 1000x2000 分辨率,那么使用 ControlNet 引导图像时,对显存的消耗将是非常大的;我们可以将引导控制图像的分辨率设置为 500x1000 ,也就是缩放为原本图像一半的分辨率尺寸去进行引导,这有利于节省显存消耗。 - 创建空白画布(Create Blank Canvas)
如果之前使用过 ControlNet 功能,那么将会在 ControlNet 的图像区域留有历史图片,点击该按钮可以清空之前的历史,也就是创建一张空白的画布。 - 预览预处理结果(Preview Annotator Result)
点击该按钮可以预览生成的引导图。例如:如果使用 Canny 作为预处理器,那么点击该按钮之后,可以看到一张通过 Canny 模型提取的边缘线图片。 - 隐藏预处理结果(Hide Annotator Result)
点击该按钮可以隐藏通过 Preview 按钮生成的预览图像窗口(不建议隐藏)