【comfyui教程】ComfyUI 完全入门:ControlNet 使用教程
前言
今天继续给大家分享ComfyUI的入门必备技能:ControlNet。
ControlNet 提供了十几种生成图片的控制方式,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高AI绘画的质量特别有用;基于 ControlNet 的能力,炼丹师们可以将AI绘画拓展到很多的应用场景,比如艺术二维码、光影文字、线稿上色、老照片修复、图片风格转绘、IP图片创作等等。
所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~
ComfyUI介绍
很多同学对ComfyUI可能还不太了解,我这里做一个简单的介绍。
在AI绘画领域,Stable Diffusion 因其开源特性而受到广泛的关注和支持,背后聚拢了一大批的应用开发者和艺术创作者,是AI绘画领域当之无愧的王者。
目前使用 Stable Diffusion 进行创作的工具主要有两个:Stable Diffusion WebUI 和 ComfyUI。
Stable Diffusion WebUI 开箱即用,各项功能齐全,社区也有很多的插件支持,入门比较简单,适合新手,但是可定制性稍微差点,很多作品不容易传播复现,使用API进行操作也有一定的难度。
ComfyUI 出来的晚一点,但是它的可定制性很强,可以让创作者搞出各种新奇的玩意,通过工作流的方式,也可以实现更高的自动化水平,创作方法更容易传播复现,发展势头特别迅猛。但是 ComyUI 的上手门槛有点高,对 Stable Diffusion 以及各种扩展能力的原理需要有一定的理解,动手能力要求也比较高。
为了方便大家尽快上手ComfyUI,本系列文章将会介绍一些 ComfyUI 的概念和使用方法,让大家更快的掌握 ComfyUI 的使用技巧,创作出自己独特的艺术作品。
ComfyUI 安装部署
本地安装部署
本地部署需要特殊网络设置、8G显存以上的Nvidia显卡、一定的电脑动手能力,如果你满足这三个条件,请看我这篇文章:ComfyUI 完全入门:安装部署
使用云端服务器
推荐大家使用京东云智算服务平台( https://www.jdcloud.com/cn/products/gcs),618搞活动,一个小时不到1块钱,随用随停,如果想锁定这个优惠的,还可以包月,包月价格才680块钱。还有充多少送多少的活动,想炼丹的兄弟姐妹们,赶紧收着。
我在京东云智算服务平台发布了ComfyUI的镜像,内置了常用的工作流,大家可以一键启动,直接使用,不用费劲吧啦的各种安装调测。
**使用ControlNet
**
安装插件
首先说明,如果你使用了上面云端服务器我制作的镜像,就无需安装插件,直接使用即可。如果你是本地安装部署,那么请耐心按照下面的方式安装插件。
ComfyUI自带了一些简单的 ControlNet 节点,不过这还远远不够,我们需要安装一些插件来增强 ControlNet 方面的处理能力。
这里推荐两个插件:
ControlNet 预处理器插件:包含各种常用的ControlNet预处理器。
https://github.com/Fannovel16/comfyui_controlnet_aux
高级ControlNet:支持 ControlNet 调度和遮罩等高级特性。
https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
在 ComfyUI 管理器中点击“通过 Git URL 安装”,输入上边的链接,即可开始安装。
安装成功后,不要忘了重启ComfyUI,刷新浏览器页面。
ControlNet预处理器依赖的模型也比较多,大家可以在这里下载到大部分模型。
https://huggingface.co/lllyasviel/Annotators/tree/main
考虑到有些同学访问 huggingface 不方便的同学,我在云平台已经实现把这些模型都下载好了,大家可以在直接使用。
不带预处理器的ControlNet
ControlNet 主要由3个节点组成:ControlNet加载器、ControlNet应用和参考图片,下边一一分解介绍。
•ControlNet加载器:这是用来加载ControlNet模型的。ComfyUI内置了两个ControlNet模型加载器,一个是“ControlNet加载器”,另一个就是这里使用的“DiffControlNet加载器”。“DiffControlNet加载器”不仅支持加载普通的ControlNet模型,还支持加载 diffusers 格式的ControlNet模型,更为通用一些。这里我们用它来加载一个普通的深度ControlNet模型,注意ControlNet模型区分SD1.5和SDXL,选择SD基础模型时一定要搭配起来,不能混用。
•参考图片:ControlNet要实施推理控制,就需要一定的参考,比如姿势、深度、线稿、配色、人物形象等。在上图的工作流中我们直接提供了一张深度图,另外我们也可以提供正常图片,让ControlNET预处理器从中提取,下文会给出一个预处理器的使用示例。
•ControlNet应用:封装ControlNet,汇集模型、参考图片和一些参数,共同计算得出新的提示词条件。ControlNET应用默认有3个可以手动控制的参数:
◦强度:ControlNET模型对生成图片的影响力。太高可能会让参考特征过于明显,太低又丢失了ControlNet的控制力,需要根据实际情况调整。
◦开始时间:在生成图片的第几步引入ControlNET,取值范围0-1。一般前几步会确定图片中的主体内容,如果使用的是线稿类模型,这个时间不能设置的太晚。
◦结束时间:在生成图片的第几步退出ControlNET,取值范围0-1。如果想在细节上自由发挥的更多,可以将这个值改小一点试试。
我们再看一下这几个节点是如何连接到一起的。
我们可以认为“DiffControlNet加载器”和“加载图像”都是为“ControlNet应用”提供必需参数的,上图中的“连接线1”和“连接线2”就起到提供参数的作用。
最后我们再看一下ControlNet节点的输入和输出,这里的输入主要有两块:
•SD基础模型:上面已经提过,ControlNet模型不能独立工作,所以上图中的“ControlNet加载器”需要以模型作为输入,图中的“模型”接入点要连接到名为“Checkpoint加载器”的节点,以获取SD基础模型。
•提示词编码条件:这里分为“正面条件”和“负面条件”,ControlNet应用会对这些条件进行加工处理,在其中加入当前ControlNet提取到的控制信息。需要把它们连接到“CLIP文本编码器”节点,“CLIP文本编码器”就是编码提示词,生成初始条件的;如果使用多个ControlNet,我们也可以把它们连接到串联ControlNet应用输出的“正面条件”和“负面条件”。在一些简单的“ControlNet应用”节点上,你可能只能看到一个“条件”,这时候的“条件”对应的是“正面条件”。
ControlNet应用的输出就是“正面条件”和“负面条件”,需要将它们连接到采样器,采样器会使用这些条件进行采样,最终生成出符合条件的图片。注意如果“ControlNet应用”的输入只有一个“条件”,那么我们就无需通过“ControlNet”处理负面条件。
下图是“ControlNet应用(高级)”有两个条件参数的连接线示例:
下图是“ControlNet应用”只有一个条件的连接线示例:
带预处理器的ControNet
我们再看一个使用预处理器来提取参考信息的例子:
在这个例子中,我们增加了三个新的节点:
1.Openpose姿态预处理器:用于从加载的原始参考图像中提取人物姿态信息,包括身体、面部和手部信息。它接收图像和分辨率,输出一个新的图像。输入的图像就是原始要参考的图片,输出的图像是一个姿态图片(见上图中的预览图片);分辨率则用来控制输出的姿态图片的最短边的长度。
不同的预处理器会有不同的参数组合,如果你不知道应该怎么设置,可以参考我之前写的 ControlNet 系列文章:
2. 完美像素:用来计算预处理器生成的姿态图片的分辨率,也就是姿态图片的最短边的长度,这个节点中的参数都是用来计算这个最短边的。所谓完美就是通过匹配姿态图片和生成图片的尺寸,生成出最优分辨率的姿态图片,供ControlNet使用。
图像:ControlNet使用的原始参考图片,完美像素会从中获取图片的宽度和高度信息。
宽度和高度:要生成图片的宽度和高度。
拉伸模式:“仅拉伸”和“裁剪并拉伸”都会先选择“宽度”和“高度”参数中的最大值,然后按照原始参考图片的宽高比例计算出姿态图片的另一条边的长度;“拉伸并填充”则会先选择“宽度”和“高度”参数中的最小值,然后按照原始参考图片的宽高比例计算出姿态图片的另一条边长度。
举个例子,假设原始参考图片的尺寸是 512×768(比例是1:1.5),输入的“宽度”和“高度”分别是1024、640,使用“裁剪并拉伸”模式时,会先选择宽度(因为1024大于640),那么完美像素计算出来的姿态图片尺寸就是 1024 * 1536(1024*1.5),输出的分辨率是最短边的长度 1024;如果选择“拉伸并填充”模式,会先选择高度(因为640<1024),那么完美像素计算出来的姿态图片尺寸就是 427(640/1.5)*640,输出的分辨率还是最短边的长度 427。
3. 预览图像:预览ControlNet预处理器生成的参考图片,这个节点不是必需的,只是想看看预处理器提取的特征效果如何。这个图像将被送到“ControlNet应用”中进行编码处理。如果我们已经有了这个参考图片,前边的预处理器、完美像素都是可以不要的。
使用多个ControlNet
文章编写不易,多ControlNet的使用方法和工作流目前仅发布在我的AI绘画专栏,有兴趣的可以去看看。
工作流配置文件
为了帮助大家更好地掌握 ComfyUI,我在去年花了几个月的时间,撰写并录制了一套ComfyUI的基础教程,共六篇。这套教程详细介绍了选择ComfyUI的理由、其优缺点、下载安装方法、模型与插件的安装、工作流节点和底层逻辑详解、遮罩修改重绘/Inpenting模块以及SDXL工作流手把手搭建。
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
一、ComfyUI配置指南
- 报错指南
- 环境配置
- 脚本更新
- 后记
- …
二、ComfyUI基础入门
- 软件安装篇
- 插件安装篇
- …
三、 ComfyUI工作流节点/底层逻辑详解
- ComfyUI 基础概念理解
- Stable diffusion 工作原理
- 工作流底层逻辑
- 必备插件补全
- …
四、ComfyUI节点技巧进阶/多模型串联
- 节点进阶详解
- 提词技巧精通
- 多模型节点串联
- …
五、ComfyUI遮罩修改重绘/Inpenting模块详解
- 图像分辨率
- 姿势
- …
六、ComfyUI超实用SDXL工作流手把手搭建
- Refined模型
- SDXL风格化提示词
- SDXL工作流搭建
- …
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取