ComfyUI进阶:Comfyroll插件 (三)

cnblogs 2024-07-18 17:43:00 阅读 53

前言:

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

目录

一、安装方法

二、CR Text List节点

三、CR Prompt List节点

四、CR Simple List节点

五、CR Float Range List节点

六、CR Integer Range List节点

七、CR Binary To Bit List节点

八、CR Value Cycler/CR Text Cycler 节点

九、“人物一致性控制”示例工作流

一、安装方法

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

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

二、CR Text List节点

该节点用于创建和管理一个包含文本元素的列表,主要功能是接受多个文本输入并将它们组织成一个列表,以便在工作流中进行进一步处理。

输入:

文本框 → 输入多行文本 不需要符号隔开,用回车隔开即好

参数:

start_index → 表示开始位置的索引 从0开始计数

max_rows → 表示选取最大行数

输出:

STRING → 输出的文本信息 多行单次输出

Eg:如下图所示我们可以利用该特性建造如下"人物一致性工作流",通过控制种子不变,提示词输入大体提示词,然后通过CR Text List节点去控制我们对提示词进行微调,比如仅控制动作,姿势,脸部表情等信息,去生成不同但是相似的人物。

使用场景

· 批量文本处理: 当你有多个文本段落或句子需要处理时,可以使用这个节点将它们组织成一个列表,以便批量处理。

· 数据管理: 在数据管理任务中,将多个文本数据整合到一个列表中,便于后续的分析或操作。

· 自动化工作流: 在自动化文本生成或处理工作流中,用于批量管理和传递文本数据。

通过 CR Text List 节点,可以轻松地创建和管理文本列表,从而在 ComfyUI 中实现高效的文本数据处理和管理。

三、CR Prompt List节点

该节点用于创建和管理提示词列表,通常用于生成图像或其他需要批量提示词的任务,主要功能是接受多个提示词输入并将它们组织成一个列表,以便在工作流中进行进一步处理,例如用于图像生成、文本生成等任务。

输入:

prepend_text → 加在每一行文本前的文字

文本框 → 输入多行文本,用回车隔开

参数:

append_text → 加在每一行文本后的文字

start_index → 开始的行数索引,从0开始

max_rows → 最长选取的行数

输出:

prompt → 带有前缀和后缀的列表行

body_text → 原始列表行

如下图所示我们可以通过该提示词输入框进行批量文本输入,产生不同类型的图像。

使用场景

· 图像生成: 当你需要批量生成图像时,可以使用这个节点将多个提示词组织成一个列表,以便生成对应的图像。

· 文本生成: 在需要批量生成文本内容时,将多个提示词组织成一个列表,以便生成对应的文本。

· 自动化工作流: 在自动化内容生成工作流中,用于批量管理和传递提示词数据。

通过 CR Prompt List 节点,可以轻松地创建和管理提示词列表,从而在 ComfyUI 中实现高效的批量内容生成和管理。

四、CR Simple List节点

该节点用于创建和管理一个简单的数据列表,可以包含任意类型的元素,主要功能是接受多个输入元素并将它们组织成一个列表,以便在工作流中进行进一步处理。这些元素可以是任意类型的数据,如文本、数值、图像路径等。

输入:

文本输入框 → 输入多行文本,用回车隔开

输出:

LIST → 输出文本列表

注意:如下图所示我们文本输出是一个列表的形式,即按行进行单行的输出。

使用场景

· 数据整合: 将多种类型的数据整合到一个列表中,便于后续统一处理。

· 批量处理: 在需要批量处理不同类型的数据时,使用该节点创建一个包含所有数据的列表。

· 自动化工作流: 在自动化工作流中,用于批量管理和传递多种类型的数据。

通过 CR Simple List 节点,可以轻松地创建和管理包含多种类型数据的列表,从而在 ComfyUI 中实现高效的数据整合和批量处理。

五、CR Float Range List节点

该节点用于生成一个指定范围内的浮点数列表,主要功能是根据用户定义的起始值、结束值和步长,生成一个浮点数的列表。这对于需要处理一系列连续或离散浮点数的任务非常有用。

参数:

start → 范围的起始值

end → 范围的结束值

step → 步长,用于确定相邻两个值之间的间隔

operation → 要应用于列表值的数学运算,可以是 "none"、"sin"、"cos" 或 "tan"

decimal_places → 结果中的小数位数

ignore_first_value → 是否忽略生成范围的第一个值

max_values_per_loop → 每次循环生成的最大值数

loops → 要执行的循环次数

ping_pong → 是否应用“乒乓”模式,即在偶数次循环中反向生成范围

输出:

FLOAT → 生成的浮点数范围列表

如下图所示我们设置起点为0.00,终点为10.00,按照步长为1.00进行循环,不忽略起始值,并且设置循环2次,使用ping_pong模式,最终生成的图像从数值0到10为第一行,因为开启ping_pong所以在第二行为10到0.

使用场景

· 数值分析: 生成一个浮点数范围,用于数值分析或模拟。

· 参数扫描: 在机器学习或优化任务中,生成一组参数值用于扫描和测试。

· 数据生成: 在数据生成任务中,创建一系列连续或离散的浮点数数据。

通过 CR Float Range List 节点,可以轻松生成一个指定范围和步长的浮点数列表,从而在 ComfyUI 中实现高效的数值处理和分析。

六、CR Integer Range List节点

该节点用于生成一个指定范围内的整数列表,主要功能是根据用户定义的起始值、结束值和步长,生成一个整数的列表。这对于需要处理一系列连续或离散整数的任务非常有用。

参数:

start → 范围的起始值

end → 范围的结束值

step → 步长,用于确定相邻两个值之间的间隔

loops → 要执行的循环次数

ping_pong → 是否应用“乒乓”模式,即在偶数次循环中反向生成范围

输出:

INT → 生成的整数范围列表

Eg1:如下图所示,我们设置其实值为0到200,步长为5,循环一次,输出控制图像的x坐标值,从而使得我们最终生成的五角星图案从左边移动到右边。

Eg2:如下图所示,基于此节点我们可以改进"人物一致性控制工作流",不仅在种子上设置固定去控制我们的人物相似,在传入噪声图时,我们使用该节点去生成类似并且变化幅度很小的图像去做为地图,供Ksampler去扩散,最终生成我们人物几乎相似,但是表情不同,方位不同的图像。

使用场景

· 数值分析: 生成一个整数范围,用于数值分析或模拟。

· 参数扫描: 在机器学习或优化任务中,生成一组参数值用于扫描和测试。

· 数据生成: 在数据生成任务中,创建一系列连续或离散的整数数据。

通过 CR Integer Range List 节点,可以轻松生成一个指定范围和步长的整数列表,从而在 ComfyUI 中实现高效的数值处理和分析。

七、CR Binary To Bit List节点

该节点主要功能是用于将一个二进制数转换为一个比特(bi列表,这个列表由 0 和 1 组成,表示输入二进制数的每一位。

输入:

文本框输入 → 包含二进制字符串的字符串

输出:

STRING → 生成的位列表,其中每个元素表示输入字符串中的一个字符。

如下图所示,我们在输入框输入0000 0011 0000 0000,生成的图像为4*4的网格,每个网格为单独的一张图像,在数字为"1"的地方,我们生成的颜色与数字为"0"的地方生成的图像颜色不一样。

使用场景

· 数字信号处理: 在处理二进制数据或信号时,将二进制数转换为比特列表以便逐位处理。

· 二进制操作: 在需要对二进制数进行比特级别操作时,将其转换为比特列表进行处理。

· 数据分析: 将二进制数据转换为比特列表,以便进行数据分析或模式识别。

通过 CR Binary To Bit List 节点,可以将二进制数转换为比特列表,从而在 ComfyUI 中实现比特级别的数据处理和分析。

八、CR Value Cycler/CR Text Cycler 节点

CR Value Cycler 节点用于循环处理一组数值。每次运行时,该节点会按顺序输出列表中的下一个数值,当到达列表末尾时,将从头开始。CR Text Cycler 节点用于循环处理文本元素,每次运行时,该节点会按顺序输出列表中的下一个文本,当到达列表末尾时,将从头开始。

输入:

文本输入框 → 包含要循环的值,可以是多行

参数:

repeats → 每个值在结果中重复出现的次数,默认为 1。最小值为 1,最大值为 99999。

loops → 循环生成值的次数,默认为 1。最小值为 1,最大值为 99999。

输出:

FLOAT → 以浮点数输出值

INT → 以整数型输出值

STRING → 以字符串输出值

注意:repeats和loops实际产生的情况是一样的,就是重复多少遍,只是说repeats指示文字出现的次数,loops代表所有行的循环次数。

使用场景

①CR Value Cycler节点

· 参数循环: 在参数优化或测试中,依次循环使用一组参数值。

· 任务调度: 在自动化任务中,依次分配任务参数。

· 数据采样: 在数据处理流程中,依次输出数据样本进行处理。

②CR Text Cycler节点

· 提示词循环: 在生成任务中,依次使用一组提示词。

· 文本轮询: 在文本处理流程中,依次输出文本片段进行处理。

· 内容生成: 在内容生成工作流中,依次使用不同的文本模板或内容片段。

通过 CR Value Cycler 和 CR Text Cycler 节点,可以在 ComfyUI 中实现数值和文本的循环处理,从而在参数优化、任务调度和内容生成等场景中发挥重要作用。

九、“人物一致性控制”示例工作流

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

这里使用SDXL的大模型,并且加载对应的LCM-lora用来控制图像的生成速度。ComfyUI的工作流,其主要核心还是思路,每个人的思路都是不一样的,希望大家在学习ComfyUI的时候不要被固定的套路困住阵脚,多发散。最后如果你有好的工作流搭建方向可以在评论区留言哦。

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。