ComfyUI进阶:Comfyroll插件 (四)

ComfyUI进阶:Comfyroll插件 (四)

前言:

学习ComfyUI是一场持久战,而Comfyroll 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具。借助这些节点,用户可以在静态图像的精细调整和动态动画的复杂构建方面进行深入探索。Comfyroll 的节点设计简洁易用,功能强大,是每个希望提升 ComfyUI 使用体验的用户的必备选择。祝大家学习顺利,早日成为ComfyUI的高手!

目录

一、安装方法

二、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 Module Pipe节点

八、高清修复示例工作流

一、安装方法

在ComfyUI主目录里面输入CMD回车。

在弹出的CMD命令行输入git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git,即可开始下载。

二、CR Aspect Ratio节点

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 → 设置潜空间数量

输出:

width → 输出设置的宽度值

height → 输出设置的高度值

upscale factor → 输出设置的放大值

prescale factor → 输出设置的放大值

batch size → 输出设置的潜空间数量值

empty latent → 输出符合设定条件的潜空间图像

使用场景

· 图像展示: 确保图像在不同设备和平台上展示时保持一致的宽高比。

· 数据预处理: 在图像处理和机器学习任务中,统一图像的宽高比以便模型处理。

· 图像裁剪与填充: 根据需要裁剪或填充图像,使其符合特定的宽高比要求。

通过 CR Aspect Ratio 节点,你可以在 ComfyUI 中轻松调整图像的宽高比,以满足不同场景和需求的要求。

注意:根据选择的调整方法,图像的内容可能会发生变化。例如,裁剪方法可能会丢失部分图像内容,而填充方法可能会在图像周围添加边框。确保输入图像的分辨率足够高,以避免调整宽高比时图像质量下降。

三、CR Apply ControlNet节点

CR Apply ControlNet节点的主要功能是将ControlNet模型应用到图像生成或处理工作流中,从而控制生成的图像符合特定的输入控制信号。这个节点可以在图像生成过程中提供更细致的控制,以实现更高的精度和质量。

输入:

conditioning → 表示输入的条件信息

control_net → 加载对应的ControlNet

image → 表示输入的预处理图像

参数:

switch → 表示是否开启ControlNet

strength → 用于调整控制的影响程度 **太高可能产生负面影响**

输出:

CONDITIONING → 输出混合控制信息的条件信息

注意:输入的image必须是预处理图像,如下图所示,我们使用预处理器对原图进行边缘提取,然后通过该节点传入canny模型将控制信息注入conditioning信息流中,从而控制我们最终生成的图像和原图的边缘信息相符合。

注意:如下图所示,当我们设置控制强度为1时,可以看到最终生成的图像几乎毁掉了,所以大家可以通过自己的尝试调整控制强度的值,找到最符合需求的一个参数值。

使用场景

· 精细图像生成: 使用控制信号生成特定特征的图像,如特定风格、形状或内容。

· 图像编辑: 根据控制信号对现有图像进行编辑和调整,以实现精确的修改。

· 数据增强: 在机器学习任务中,使用ControlNet生成多样化的数据,以增强模型的训练效果。

通过CR Apply ControlNet节点,你可以在ComfyUI中实现对图像生成和处理的精细控制,从而在各种图像处理任务中获得更高的精度和质量。

四、CR Multi-ControlNet Stack/Apply Multi-ControlNet节点

CR Multi-ControlNet Stack 节点的主要功能是将多个 ControlNet 模型堆叠在一起,创建一个多层次的控制网络。通过这种方式,你可以组合多个控制信号,以便在图像生成或处理过程中应用更复杂和细致的控制。

CR Apply Multi-ControlNet 节点的主要功能是应用一个多层次的 ControlNet 网络(由 CR Multi-ControlNet Stack 节点生成)到图像生成或处理过程中。这个节点根据堆叠的控制网络和输入图像生成符合多个控制信号的图像。

这两个节点需要配合使用

输入:

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_STACK → 输出加载的ControlNet模型信息

base_pos → 输出蕴含控制信息的正向条件信息

base_neg → 输出蕴含控制信息的反向条件信息

如图:我们使用两个ControlNet,分别是canny和depth两个模型,对原始图像进行分析后将预处理图像传入CR Multi-ControlNet Stack,然后将混合后的控制信息通过CR Apply Multi-ControlNet节点进行控制信息注入,最终控制去噪过程,生成与原图符合的图像信息。

"错误示范"如图:假如我们并没有正确的给到模型对应的预处理图像,如下所示:我们将canny的预处理图像给到depth模型,将depth预处理图像给到canny模型,最终生成的图像几乎没有美观可言。

使用场景

· 复杂图像生成: 使用多个控制信号生成具有多种特征的图像。

· 高级图像编辑: 结合多个控制信号对图像进行复杂的编辑和调整。

· 数据增强: 在机器学习任务中,生成多样化的数据以增强模型的训练效果。

通过 CR Multi-ControlNet Stack 和 CR Apply Multi-ControlNet 节点,你可以在 ComfyUI 中实现更复杂和精细的图像生成和处理,从而在各种图像处理任务中获得更高的精度和质量。

五、CR Load LoRA节点

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被选中的概率

输出:

IMAGE → 输出处理之后的图像

如图:我们控制参数和下面的对比实验相同,仅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,所以我们使用的时候可以调整两个参数到合适的范围。

如图:为Random LoRA Srack的示例工作流,大家可以参考下。

使用场景

· 任务微调: 使用 LoRA 模型对预训练模型进行微调,以适应特定任务的需求。

· 性能优化: 在不重新训练整个模型的情况下,通过 LoRA 模型对预训练模型进行优化。

· 特性调整: 应用 LoRA 模型以改变预训练模型的某些特性,使其更符合特定的应用场景。

通过 CR Load LoRA 节点,你可以在 ComfyUI 中轻松加载和应用 LoRA 模型,从而在不重新训练整个模型的情况下实现特定任务的微调和优化。

六、CR Model Merge Stack/ CR Apply Model Merge节点

CR Model Merge Stack 节点的主要功能是将多个模型合并在一起,创建一个模型融合的堆栈。通过这种方式,你可以组合不同模型的特性和能力,以在图像生成或处理过程中获得更好的效果。

CR Apply Model Merge 节点的主要功能是应用一个合并的模型堆栈(由 CR Model Merge Stack 节点生成)到图像生成或处理过程中。这个节点根据合并的模型堆栈和输入图像生成融合后的图像。

这两个节点需要配合使用

输入:

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 → 打印混合比例,混合模型等信息

如图:我混合麦橘写实大模型和ghost动漫模型,并且设置相关的权重,通过model mix info节点输出最终混合的比例,然后输入正向提示词为dog,但是最终生成的图像却是个狗狗绅士,所以这个模型混合的结果还是挺不可控的,大家可以自行尝试。

使用场景

· 模型融合: 将多个模型的特性结合在一起,以生成更高质量的图像或文本。

· 性能优化: 通过模型合并优化生成结果,利用不同模型的优势。

· 特性扩展: 使用多个模型合并来扩展基础模型的功能和特性。

· 高级图像生成: 应用融合的模型生成具有多种特性的图像。

· 高级图像编辑: 根据合并模型堆栈对图像进行复杂的编辑和调整。

· 数据增强: 在机器学习任务中,使用合并模型生成多样化的数据。

通过 CR Model Merge Stack 和 CR Apply Model Merge 节点,你可以在 ComfyUI 中实现复杂的模型融合和应用,从而在各种图像生成和处理任务中获得更高的精度和质量。

七、CR Module Pipe节点

CR Module 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 → 蕴含所有信息的管道

使用场景

· 复杂数据处理: 将多个处理步骤组织成一个管道,以便对数据进行复杂的处理。

· 模块化工作流: 通过模块化设计,将可复用的处理步骤组合在一起,以便在不同的工作流中应用。

· 高效数据管理: 在处理大型数据集或复杂模型时,使用管道来简化数据管理和处理流程。

通过 CR Module Pipe 节点,你可以在 ComfyUI 中创建复杂的处理管道,将多个模块化步骤高效地组织在一起,从而在各种数据处理和模型应用任务中获得更高的灵活性和效率。

八、高清修复示例工作流

熟练使用以上节点,你就可以搭建"人物一致性控制"的工作流了。

这里使用SDXL的大模型,加载Lora进行生成过程干预,后续使用两个放大模型进行图像高清修复,先做单倍放大后进行两倍放大,后续通过ksampler二次采样(降低重绘幅度),解码后得到最终图像,我们通过CR pipe节点来进行数据传输,工作流更加美观,最终出图如下:

**孜孜以求,方能超越自我。坚持不懈,乃是成功关键。**