◆comfyUI教程◆第2章05节 comfyui的控制约束-controlnet基础与应用
摘要:ComfyUI中ControlNet可通过额外控制条件精准生图,流程类似WebUI:图像预处理→模型计算→传采样器,核心是“ControlNet应用”节点。需用“ControlNet加载器”选对应模型(1.5/SDXL版需匹配大模型),借ComfyUI_controlNet_aux插件的预处理器(如Aux集成预处理器)获取预处理图。可设“完美像素”约束尺寸,多ControlNet可串联或用“ControlNet堆”集成,注意模型、预处理器与大模型版本一致,且出图尺寸需匹配参考图。
通过controlnet,我们可以让SD模型在相对抽象的语义理解基础上增加额外的控制条件,比如姿势、轮廓等,让SD更精确地生成接近我们设想的图片内容。目前Controlnet已迭代出多种控制条件的模型,可以实现轮廓、姿态、空间关系、色彩风格等多个维度的控制效果,而且这些不同类型的控制效果还可以组合使用,共同约束图片从而达到更加精准控制的图片效果。
我们先来回顾下webui中controlnet的操作界面,大致流程可以拆解为:上传图像,选择控制类型,选择对应的预处理器和controlnet模型,点击爆炸按钮获取预处理图像,然后再启动文生图或者图生图流程。
comfyui中的controlnet遵循类似的流程:图像经过预处理获取预处理图像,再经过controlnet的模型计算得到新的条件传递给采样器。
comfyui中的controlnet由“模型加载”、“获取预处理图像”及“应用”三部分板块组成,其中核心节点是controlnet的应用。
1 controlnet应用
常用controlnet应用节点名称“controlnet应用”
新建路径:鼠标右键→新建节点→条件→controlnet→controlnet应用
强度: 范围0-1,强度越大则controlnet影响效果越明显。
开始时间、结束时间:controlnet生效的开始和结束时间。
“controlnet应用”节点负责汇总输入的预处理图像、controlnet模型及提示词等信息,经计算处理后向后提供综合引导条件。
实际应用中,除“controlnet应用(高级)”节点外,还有“controlnet应用_阿里妈妈局部重绘“节点使用频率较高,它们的主要区别是后者多了一个遮罩接口,常用于局部重绘相关的工作流。
2 controlnet模型加载器
controlnet模型加载器节点名称为“controlnet加载器”
新建路径:鼠标右键→新建节点→加载器→controlnet加载器
controlnet加载器主要用于controlnet模型的选择,我们在1-1课中已设置了comfyui的模型共享webUI的模型文件,所以此处无需再重复下载controlnet模型。
没有安装webui的小伙伴,可以通过下面的地址下载controlnet模型,并将所下载的模型文件安装至此路径:..\ComfyUI\models\controlnet
(1)官方提供了 Stable Diffusion 1.5 版本的 ControlNet 模型下载地址:
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
(2)SDXL 版本的controlnet模型该模型集成了 ControlNet 的多种类型功能,是统一集成的一个文件,直接选中该模型即可实现多种功能。
下载地址:https://huggingface.co/xinsir/controlnet-union-sdxl-1.0
3 获取预处理图像
3.1 已有预处理图像
如果我们已经拥有预处理后的图像,那么可以直接通过“加载图像”节点,加载预处理图像并连入controlnet应用节点即可:
3.2 获取预处理图像
大多数时候,我们仅有一张用于参考的普通图像,为了获取符合controlnet使用要求的与处理图像,需要先将加载的图像进行预处理。在comfyui中,需要安装专门的插件来获取对controlnet预处理的功能节点。
3.2.1 预处理器安装
ComfyUI_controlNet_aux是加载controlnet预处理器的插件,可以通过管理器搜索“controlnet”安装。秋叶版启动器已集成该插件,无需自行下载。
项目地址如下:
https://github.com/Fannovel16/comfyui_controlnet_aux
3.2.2 controlnet预处理器模型
不同的预处理功能需要使用对应的模型,选择预处理器类型后,运行工作流后台会自动下载预处理模型。如果网络问题无法自动下载,请手动下载安装:
预处理器模型放置地址:..\ComfyUI\custom_nodes\comfyui_controlnet_aux\ckpts
3.2.3 controlnet预处理器应用
新建路径:新建节点→controlnet预处理器
可以看到controlnet预处理下有多种类型的选项,不同的选项对应不同的controlnet功能。
我们常用的controlnet预处理器为“Aux集成预处理器”节点,该节点可以支持选择任意一款预处理器,而非某一特定功能的预处理器。
该节点使用方式:加载图像→controlnet预处理器(获取预处理图像)→controlnet应用
4 完美像素模式
用来约束预处理器处理图片的尺寸,主要是通过限制目标图像的最短边并重新计算分辨率的功能。拉伸模式可以对图像进行拉伸、裁剪、拉伸并填充等,虽然最终尺寸都会遵循原图的比例,但具体得到的尺寸并不相同,计算规则可参考下面的示例:
参考图片的尺寸“宽度×高度“是768×1360(比例9:16),“完美像素”节点的“宽度”、“高度”分别输入512和768(比例2:3)。
(1)选择“仅拉伸”模式,预处理图像尺寸为512×907,该模式下按照参考图像尺寸比例,补齐空缺部分;
(2)选择“裁剪并拉伸”模式,比较目标宽度和高度的比例2:3和原图的宽高比9:16,目标图像的宽度比例更大,则在该模式下,保持宽度尺寸不变,拉伸高度,按照原图比例进行拉伸,得到预处理图像尺寸为512×907(如果目标图像的高度值大于参考图,则拉伸宽度,该模式下是固定比例偏大的边,扩大比例偏小的边)。
(3)选择“裁剪并填充”模式,比较目标宽度和高度的比例2:3和原图的宽高比9:16,目标图像的宽度比例更大,则在该模式下,保持高度不变,按比例缩小宽度,得到预处理图像尺寸为434×768(该模式下是固定比例偏小的边,缩小比例偏大的边)。
该项内容理解起来需要一定的空间想象力,附件中放入了测试的工作流内容,大家可以在工作流中进行尝试。
“完美像素”节点使用方法:
将Aux集成预处理器的“分辨率”转换为输入;在controlnet预处理中选择完美像素,按下图方式连接;
5 controlnet基础工作流
将核心节点“controlnet应用(高级)”以串联的形式连入工作流中,放置在“clip文本编辑器”之后,“K采样器”之前。再将预处理图像及controlnet模型加载器节点和controlnet应用(高级)连接即可。
注意:
1、 controlnet预处理器所选择的功能类型必须与controlnet加载器所选择的模型相对应,否则无法生效。
2、 controlnet区分大模型版本,controlnet预处理器、模型均需选择大模型版本对应的版本,如:使用1.5版本大模型,controlnet预处理和模型均需选择1.5版本。
3、 注意出图图像尺寸的设置,需要与controlnet参考图的尺寸相同或比例一致。
6 同时使用多个controlnet
多个controlnet同时使用的方法也很简单,直接将多个controlnet串联进工作流中即可。
根据上述设置,便可以通过不同的controlnet同时给工作流附加不同的采样条件,通常我们还需设置每个controlnet的强度和开始、结束时间,最终组合出需要的结果。当然,越多数量的controlnet给与的约束会越多,但是出图的速度也会响应变慢。
7 controlnet堆
有时我们需要同时使用多个controlnet同时进行控制,多个“controlnet应用”节点依次串联的方式会使工作流看起来十分庞大,这时可以用“controlnet堆”节点统一处理。
“controlnet堆”节点的应用也十分简单,将多个预处理器处理后的图像分别接入controlnet堆节点的端口,每一个端口对应一个controlnet应用,打开开关,选择与预处理图像所对应的controlnet模型即可生效。
“controlnet堆”默认同时可使用3个controlnet应用,可以右键设置数量进行启用数量增减。
附件:comfyUI基础整合包,包含秋叶版绘世启动器及comfyui官方版共两个版本,适合Windows系统使用。网盘内压缩文件解压密码VX-huaqs123,为防止下载失败,可先转存再下载。软件均为整合包形式,无需安装,下载后打开文件夹,点击运行图标即可使用。
百度网盘链接:
https://pan.baidu.com/s/1UVeWVFttiWOZEWHtnLav9A?pwd=886e 提取码: 886e
夸克网盘链接:https://pan.quark.cn/s/f445b7325b47
欢迎正在学习comfyui等ai技术的伙伴VX加 huaqs123 进入学习小组。在这里大家共同学习comfyui的基础知识、最新模型与工作流、行业前沿信息等,也可以讨论comfyui商业落地的思路与方向。 欢迎感兴趣的小伙伴,群共享资料会分享博主自用的comfyui整合包(已安装超全节点与必备模型)、基础学习资料、工作流等资源……
致敬每一位在路上的学习者,你我共勉!Ai技术发展迅速,学习comfyUI是紧跟时代的第一步,促进商业落地并创造价值是我们学习的最终目标。
——画青山Ai学习专栏———————————————————————————————
零基础学Webui:
https://blog.csdn.net/vip_zgx888/category_13020854.html
Comfyui基础学习与实操:
https://blog.csdn.net/vip_zgx888/category_13006170.html
comfyui功能精进与探索:
https://blog.csdn.net/vip_zgx888/category_13005478.html
系列专栏持续更新中,欢迎订阅关注,共同学习,共同进步!
————————————————————————————————————