ComfyUI 完全入门:ControlNet 使用教程
大家好,我是每天分享AI应用的萤火君!
今天继续给大家分享ComfyUI的入门必备技能:ControlNet。
ControlNet 提供了十几种生成图片的控制方式,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高AI绘画的质量特别有用;基于 ControlNet 的能力,炼丹师们可以将AI绘画拓展到很多的应用场景,比如艺术二维码、光影文字、线稿上色、老照片修复、图片风格转绘、IP图片创作等等。
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的镜像,内置了常用的工作流,大家可以一键启动,直接使用,不用费劲吧啦的各种安装调测。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-19rNoAaenk5sbCdDo.jpg)
使用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 安装”,输入上边的链接,即可开始安装。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-20SQQHAbuoa9TjUTp.jpg)
安装成功后,不要忘了重启ComfyUI,刷新浏览器页面。
ControlNet预处理器依赖的模型也比较多,大家可以在这里下载到大部分模型。
https://huggingface.co/lllyasviel/Annotators/tree/main
考虑到有些同学访问 huggingface 不方便的同学,我在云平台已经实现把这些模型都下载好了,大家可以在直接使用。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-26dUhamIoenfFDRtq.jpg)
不带预处理器的ControlNet
ControlNet 主要由3个节点组成:ControlNet加载器、ControlNet应用和参考图片,下边一一分解介绍。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-31vePoEWrXz8NeyuX.jpeg)
我们再看一下这几个节点是如何连接到一起的。
我们可以认为“DiffControlNet加载器”和“加载图像”都是为“ControlNet应用”提供必需参数的,上图中的“连接线1”和“连接线2”就起到提供参数的作用。
最后我们再看一下ControlNet节点的输入和输出,这里的输入主要有两块:
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-32iUCJFg268cae75FB.jpeg)
ControlNet应用的输出就是“正面条件”和“负面条件”,需要将它们连接到采样器,采样器会使用这些条件进行采样,最终生成出符合条件的图片。注意如果“ControlNet应用”的输入只有一个“条件”,那么我们就无需通过“ControlNet”处理负面条件。
下图是“ControlNet应用(高级)”有两个条件参数的连接线示例:
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-32nZ31FdVvWgJpOWTm.jpeg)
下图是“ControlNet应用”只有一个条件的连接线示例:
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-33T33ipPPcZfKdJLRJ.jpeg)
带预处理器的ControNet
我们再看一个使用预处理器来提取参考信息的例子:
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-14-33Ar31dbzPNU7K6lMO.jpeg)
在这个例子中,我们增加了三个新的节点:
不同的预处理器会有不同的参数组合,如果你不知道应该怎么设置,可以参考我之前写的 ControlNet 系列文章:
2. 完美像素:用来计算预处理器生成的姿态图片的分辨率,也就是姿态图片的最短边的长度,这个节点中的参数都是用来计算这个最短边的。所谓完美就是通过匹配姿态图片和生成图片的尺寸,生成出最优分辨率的姿态图片,供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绘画专栏,有兴趣的可以去看看。
工作流配置文件
如果您觉得上面的流程还是太复杂,可以加企业微信获取精心制作的工作流配置文件,一键导入生图。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2024-05-31-15-505vVCPAqldOCE05m.png)
欢迎大家试用京东云智算服务,一键开启AIGC之旅。
没有套路,不设门槛。京东云GPU算力服务618大促,从即日5月31日起到6月20日,GPU 立享5折,折后价格每小时只要9毛钱,就能享受24G显存,83TFLOPS单精度浮点算力,性能强劲,即开即用!满足AIGC、大模型推理、图像渲染等多种场景。 加企业微信,新用户再送5元免费体验GPU云算力代金券,还能享受充多少送多少专属活动!限时秒杀,数量有限,先到先得哈!赶紧打开页面 https://www.jdcloud.com/cn/products/gcs,点击立即购买。