【ComfyUI插件】Comfyroll节点 (四)
前言:
通过本教程的学习,我们将逐一探索每个节点的独特功能和应用场景,并掌握如何将它们应用于实际项目中。你将能够:批量处理图像,节省时间和精力;巧妙地合并和交错列表数据,创造新的序列;重复执行操作,以实现特定的数据处理模式;执行数学运算,特别是针对列表数据的乘积操作;将文本列表转换为整洁的字符串,便于展示和分析。
__Comfyroll插件(一): __https://articles.zsxq.com/comfyroll/1.html
__Comfyroll插件(二): __https://articles.zsxq.com/comfyroll/2.html
__Comfyroll插件(三): __https://articles.zsxq.com/comfyroll/3.html
__Comfyroll插件(五): __https://articles.zsxq.com/comfyroll/5.html
__Comfyroll插件(六): __https://articles.zsxq.com/comfyroll/6.html
__Comfyroll插件(七): __https://articles.zsxq.com/comfyroll/7.html
__Comfyroll插件最终篇+应用示例: __https://articles.zsxq.com/comfyroll/8.html
目录:
先行:安装方法
一、CR Aspect Ratio节点
二、CR Apply ControlNet节点
三、CR Multi-ControlNet Stack/CR Apply Multi-ControlNet节点
四、CR Load LoRA节点
五、CR Model Merge Stack/ CR Apply Model Merge节点
六、CR 批量管理数据节点
七、CR Module Pipe节点
高清修复示例工作流
安装方法:
在ComfyUI主目录里面输入CMD回车。
在弹出的CMD命令行输入git clone xxx,即可开始下载。
github项目地址:https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git
一、CR Aspect Ratio节点
节点索引:CR SD1.5 Aspect Ratio/ CR SDXL Aspect Ratio/ CR Aspect Ratio/ CR Aspect Ratio Banners/ CR Aspect Ratio Social Media/ CR_Aspect Ratio For Print
节点功能:这些节点可以输出相应参数的值,并且可以设定潜空间的大小,内置相应的潜空间尺寸模板。
参数:
width -> 设置潜空间的宽度
height -> 设置潜空间的高度
aspect_ratio -> 选择潜空间模板尺寸 **如果选择custom,则尺寸按照width和height设置**
swap_dimensions -> 是否将width和height的值互换
upscale_factor -> 用于在调整图像宽高比之后对图像进行缩放,即不改变原始尺寸
prescale_factor -> 用于图像的放大,即增加图像的尺寸。
batch_size -> 设置潜空间数量
注意:如下图所示我们在上面设置aspect_ratio为custom,设置upscale_factor为2,所生成图像尺寸为300*250,并没有尺寸的变化,在下面设置aspect_ratio为300*250,然后prescale_factor设置为2,最终出图为700*500,与设置的width和height并无关系。
输出:
width -> 输出设置的宽度值
height -> 输出设置的高度值
upscale factor -> 输出设置的放大值
prescale factor -> 输出设置的放大值
batch size -> 输出设置的潜空间数量值
empty latent -> 输出符合设定条件的潜空间图像
二、CR Apply ControlNet节点
节点功能:该结点用来注入ControlNet信息,可以设置ControlNet的强度等。
输入:
conditioning -> 表示输入的条件信息
control_net -> 加载对应的ControlNet
image -> 表示输入的预处理图像
注意:输入的image必须是预处理图像,如下图所示,我们使用预处理器对原图进行边缘提取,然后通过该节点传入canny模型将控制信息注入conditioning信息流中,从而控制我们最终生成的图像和原图的边缘信息相符合。
参数:
switch -> 表示是否开启ControlNet
strength -> 用于调整控制的影响程度 **太高可能产生负面影响**
注意:如下图所示,当我们设置控制强度为1时,可以看到最终生成的图像几乎毁掉了,所以大家可以通过自己的尝试调整控制强度的值,找到最符合需求的一个参数值。
输出:
CONDITIONING -> 输出混合控制信息的条件信息
三、CR Multi-ControlNet Stack/CR Apply Multi-ControlNet节点
节点功能:这两个节点需要配合使用,CR Multi-ControlNet Stack节点用来批量加载ControlNet控制模型,CR Apply Multi-ControlNet节点用来将控制信息注入条件信息从而让它起作用。
输入:
image_x -> 传入预处理图像 **注意是预处理图像,其次是与ControlNet对应的预处理图像**
controlnet_stack -> 依然是这个节点 **可以通过串联增加模型数量**
base_positive -> 正向提示词编码后的条件信息
base_negative -> 反向提示词编码后的条件信息
参数:
switch_x -> 表示是否开启第x个ControlNet
controlnet_x -> 加载该ControlNet模型
controlnet_strength_x -> 设置ControlNet模型的控制强度
start_percent_x -> 设置控制信息注入条件信息的时机 **Advanced ControlNet库可提供更加精细的控制**
end_percent_x -> 设置控制信息在条件信息结束的时机 **Advanced ControlNet库可提供更加精细的控制**
如图:我们使用两个ControlNet,分别是canny和depth两个模型,对原始图像进行分析后将预处理图像传入CR Multi-ControlNet Stack,然后将混合后的控制信息通过CR Apply Multi-ControlNet节点进行控制信息注入,最终控制去噪过程,生成与原图符合的图像信息。
"错误示范"如图:假如我们并没有正确的给到模型对应的预处理图像,如下所示:我们将canny的预处理图像给到depth模型,将depth预处理图像给到canny模型,最终生成的图像几乎没有美观可言。
输出:
CONTROLNET_STACK -> 输出加载的ControlNet模型信息
base_pos -> 输出蕴含控制信息的正向条件信息
base_neg -> 输出蕴含控制信息的反向条件信息
四、CR Load LoRA节点
节点功能:这些节点是给与一定的LoRA模型加载策略,比如随机注入或者顺序注入等。
节点检索:CR Load LoRA/ CR Random Weight LoRA/ CR LoRA Stack/ CR Apply LoRA Stack/ CR Random LoRA Stack
输入:
model -> 加载大模型
clip -> 加载CLIP模型
lora_stack -> 加载Lora栈 **多个lora stack可以进行串联**
参数:
switch -> 选择是否开启lora
lora_name -> 选择要是使用的lora
strength_model -> 选择大模型的强度 **在lora和大模型之间进行强度设置**
strength_clip -> 选择CLIP模型的强度 **在lora和CLIP模型之间进行强度设置**
exclusive_mode -> 参数控制是否启用独占模式。如果设置为 “On”,则在每次随机选择时,只能选择一个LoRA。
stride -> 参数指定了在随机选择 LoRA 之前要进行多少次不随机选择。
force_randomize_after_stride -> 如果设置为 “On”,则在完成指定次数的非随机选择后,强制执行一次随机选择。
weight_min -> 模型权重的最小值
weight_max -> 模型权重的最大值
chance -> 表示该Lora被选中的概率
如图:我们控制参数和下面的对比实验相同,仅strength_model和strength_clip进行改变,下图所示为strength_clip设置为0,strength_model为1,最终生成的图像和我们加载的Lora并没有任何关系。
__
如图:我们控制参数和下面的对比实验相同,仅strength_model和strength_clip进行改变,下图所示为strength_clip设置为1,strength_model为0,最终生成的图像依然和我们加载的Lora并没有任何关系。__
如图:我们控制参数和下面的对比实验相同,仅strength_model和strength_clip进行改变,下图所示为strength_clip设置为1,strength_model为1,最终生成的图像使用了我们加载的lora。
综上所述:我们这两个参数是互相配合使用的, 可以暂且理解为乘法的关系,其中一个为0则控制强度为0,所以我们使用的时候可以调整两个参数到合适的范围。
原理思考:lora他不仅需要文本(CLIP),还需要大模型(SD1.5,SDXL等),因为我们lora训练最重要的就是底模(大模型),标签(CLIP)和数据(出图)
输出:
IMAGE -> 输出处理之后的图像
如图:为Random LoRA Srack的示例工作流,大家可以参考一下。
五、CR Model Merge Stack/ CR Apply Model Merge节点
节点功能:这两个节点用来执行模型融合的效果,可以将指定的模型按照指定的比率进行融合。
输入:
model_stack -> 大模型加载堆栈,可以批量进行串联
参数:
switch_x -> 这个参数用于控制是否启用特定的大模型文件
ckpt_namex -> 这个参数用于指定要使用的大模型文件。
model_ratiox -> 这个参数表示相应大模型中模型的混合占比
clip_ratiox -> 这个参数表示相应大模型中CLIP模型的混合占比
merge_method -> 这个参数指定了用于将多个模型合并成一个的方法 **“Recursive” 方法是一种迭代方法,通过递归地将多个模型合并成一个。“Weighted” 方法是一种加权方法,根据预先设定的权重将多个模型进行加权合并。**
normalise_ratios -> 这个参数用于指定是否要对模型的比率进行规范化 **如果设置为 “Yes”,则在合并模型之前,系统会对模型的比率进行规范化处理,以确保它们的总和等于1。**
weight_factor -> 这个参数仅在使用 “Weighted” 方法时有效,它用于控制加权合并方法中每个模型的权重
输出:
MODEL -> 输出混合后的大模型选项
CLIP -> 输出混合后的CLIP模型选项
model mix info -> 打印混合比例,混合模型等信息
如图:我混合麦橘V7大模型和ghost动漫模型,并且设置相关的权重,通过model mix info节点输出最终混合的比例,然后输入正向提示词为dog,但是最终生成的图像却是个狗狗绅士,所以这个模型混合的结果还是挺不可控的,大家可以自行尝试。
六、CR 批量管理数据节点
节点功能:这些节点用来对工作流进行美化,可通过pipe单通道传递多个信息。
节点检索:CR Data Bus In/ CR Data Bus Out/ CR 8 Channel In/ CR 8 Channel Out
输入:
pipe -> 输入包含所有信息的管道线
any -> 输入想要传递的数据
ch -> 输入想要传递的数据
输出:
pipe -> 输出包含所有信息的管道线
any -> 输出与输入对应的数据
ch -> 输出与输入对应的数据
如图:我们使用对应的IN和OUT节点,通过pipe进行混合数据传输,然后再In节点我们在ch1传入123,在ch2传入456,那么相应的我们可以在Out节点的ch1输出123,在ch2输出456
七、CR Module Pipe节点
节点功能:这些节点用来对工作流进行美化,可通过pipe单通道传递多个信息。
节点检索:CR Module Pipe Loader/ CR Module Input/ CR Module Output
输入:
pipe -> 蕴含所有信息的管道
model -> 要加载的大模型
pos -> 正向提示词条件信息
neg -> 反向提示词条件信息
latent -> 潜空间图像信息
vae -> 使用到的vae模型
clip -> 使用到的clip模型
controlnet -> 要是用的controlnet模型
image -> 图像信息
参数:
seed -> 随机数种子
control_after_generate -> 种子控制方法
输出:
pipe -> 蕴含所有信息的管道
"高清修复"示例工作流:
学习完以上节点,您就可以搭建“高清修复”示例工作流了
这里使用SDXL的大模型,加载Lora进行生成过程干预,后续使用两个放大模型进行图像高清修复,先做单倍放大后进行两倍放大,后续通过ksampler二次采样(降低重绘幅度),解码后得到最终图像,我们通过CR pipe节点来进行数据传输,工作流更加美观,最终出图如下:
孜孜不倦,方能登峰造极。坚持不懈,乃是成功关键。
__Comfyroll插件(一): __https://articles.zsxq.com/comfyroll/1.html
__Comfyroll插件(二): __https://articles.zsxq.com/comfyroll/2.html
__Comfyroll插件(三): __https://articles.zsxq.com/comfyroll/3.html
__Comfyroll插件(五): __https://articles.zsxq.com/comfyroll/5.html
__Comfyroll插件(六): __https://articles.zsxq.com/comfyroll/6.html
__Comfyroll插件(七): __https://articles.zsxq.com/comfyroll/7.html
__Comfyroll插件最终篇+应用示例: __https://articles.zsxq.com/comfyroll/8.html