前言:

通过本教程的学习,我们将逐一探索每个节点的独特功能和应用场景,并掌握如何将它们应用于实际项目中。你将能够:批量处理图像,节省时间和精力;巧妙地合并和交错列表数据,创造新的序列;重复执行操作,以实现特定的数据处理模式;执行数学运算,特别是针对列表数据的乘积操作;将文本列表转换为整洁的字符串,便于展示和分析。

__Comfyroll插件(一): __https://articles.zsxq.com/comfyroll/1.html

__Comfyroll插件(二): __https://articles.zsxq.com/comfyroll/2.html

__Comfyroll插件(四): __https://articles.zsxq.com/comfyroll/4.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 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回车。image

在弹出的CMD命令行输入git clone xxx,即可开始下载。image

__github项目地址:__https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git

一、CR Text List节点

节点功能:该结点通过多行输入,进行文本输出,通过设置索引可控制输出位置,通过设置最大行控制输出文本数量。image

输入:

标准文本框 -> 输入多行文本 **不需要符号隔开,用回车隔开即好**

参数:

start_index -> 表示开始位置的索引 **从0开始计数**

max_rows -> 表示选取最大行数

输出:

STRING -> 输出的文本信息 **多行单次输出**

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

image

二、CR Prompt List节点

节点功能:该结点可以批量输入文本,并且可以在参数中增加文本前缀,通过索引控制输出文本行数。image

输入:

prepend_text -> 加在每一行文本前的文字

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

参数:

append_text -> 加在每一行文本后的文字

start_index -> 开始的行数索引,从0开始

max_rows -> 最长选取的行数

输出:

prompt -> 带有前缀和后缀的列表行

body_text -> 原始列表行

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

image

三、CR Simple List节点

节点功能:该节点是简单版的多行文本输入框。image

输入:

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

输出:

LIST -> 输出文本列表

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

image

四、CR Float Range List节点

节点功能:这个节点可以通过设置范围,和步长,循环从范围中输出数值,可结合多个节点完成各种操作,比如批量处理数据等。image

参数:

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.

image

五、CR Integer Range List节点

节点功能:这个节点可以通过设置范围,和步长,循环从范围中输出数值,可结合多个节点完成各种操作,比如批量处理数据等。image

参数:

start -> 范围的起始值

end -> 范围的结束值

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

loops -> 要执行的循环次数

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

输出:

INT -> 生成的整数范围列表

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

image

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

六、CR Binary To Bit List节点

节点功能:将给定的二进制字符串转换为位列表,其中每个位表示一个字符串中的一个字符。image

输入:

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

输出:

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

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

image

七、CR Value Cycler/CR Text Cycler 节点

节点功能:从给定的值,循环生成一组值,可以指定重复次数和循环次数。image

输入:

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

参数:

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

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

输出:

FLOAT -> 以浮点数输出值

INT -> 以整数型输出值

STRING -> 以字符串输出值

image

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

"人物一致性控制"示例工作流:

学习完以上节点,您就可以搭建"人物一致性控制"示例工作流了

这里使用SDXL的大模型,并且加载对应的LCM-lora用来控制图像的生成速度,工作流的主要核心思想是以随机生成相同图案来通过VAE编码生成潜空间样本,随后控制噪声种子不变,通过控制提示词中除了表情之外的文本保持一致的方式,来生成尽量相同的人物:image

image

image

image

孜孜不倦,方能登峰造极。坚持不懈,乃是成功关键。

__Comfyroll插件(一): __https://articles.zsxq.com/comfyroll/1.html

__Comfyroll插件(二): __https://articles.zsxq.com/comfyroll/2.html

__Comfyroll插件(四): __https://articles.zsxq.com/comfyroll/4.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