【ComfyUI插件】Comfyroll节点 (三)
前言:
通过本教程的学习,我们将逐一探索每个节点的独特功能和应用场景,并掌握如何将它们应用于实际项目中。你将能够:批量处理图像,节省时间和精力;巧妙地合并和交错列表数据,创造新的序列;重复执行操作,以实现特定的数据处理模式;执行数学运算,特别是针对列表数据的乘积操作;将文本列表转换为整洁的字符串,便于展示和分析。
__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回车。
在弹出的CMD命令行输入git clone xxx,即可开始下载。
__github项目地址:__https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git
一、CR Text List节点
节点功能:该结点通过多行输入,进行文本输出,通过设置索引可控制输出位置,通过设置最大行控制输出文本数量。
输入:
标准文本框 -> 输入多行文本 **不需要符号隔开,用回车隔开即好**
参数:
start_index -> 表示开始位置的索引 **从0开始计数**
max_rows -> 表示选取最大行数
输出:
STRING -> 输出的文本信息 **多行单次输出**
注意:如下图所示我们可以利用该特性建造如下"人物一致性工作流",通过控制种子不变,提示词输入大体提示词,然后通过CR Text List节点去控制我们对提示词进行微调,比如仅控制动作,姿势,脸部表情等信息,去生成不同但是相似的人物。
二、CR Prompt List节点
节点功能:该结点可以批量输入文本,并且可以在参数中增加文本前缀,通过索引控制输出文本行数。
输入:
prepend_text -> 加在每一行文本前的文字
文本输入框 -> 输入多行文本,用回车隔开
参数:
append_text -> 加在每一行文本后的文字
start_index -> 开始的行数索引,从0开始
max_rows -> 最长选取的行数
输出:
prompt -> 带有前缀和后缀的列表行
body_text -> 原始列表行
注意:如下图所示我们可以通过该提示词输入框进行批量文本输入,产生不同类型的图像。
三、CR Simple List节点
节点功能:该节点是简单版的多行文本输入框。
输入:
文本输入框 -> 输入多行文本,用回车隔开
输出:
LIST -> 输出文本列表
注意:如下图所示我们文本输出是一个列表的形式,即按行进行单行的输出。
四、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 Integer Range List节点
节点功能:这个节点可以通过设置范围,和步长,循环从范围中输出数值,可结合多个节点完成各种操作,比如批量处理数据等。
参数:
start -> 范围的起始值
end -> 范围的结束值
step -> 步长,用于确定相邻两个值之间的间隔
loops -> 要执行的循环次数
ping_pong -> 是否应用“乒乓”模式,即在偶数次循环中反向生成范围
输出:
INT -> 生成的整数范围列表
注意:如下图所示,我们设置其实值为0到200,步长为5,循环一次,输出控制图像的x坐标值,从而使得我们最终生成的五角星图案从左边移动到右边。
注意:如下图所示,基于此节点我们可以改进"人物一致性控制工作流",不仅在种子上设置固定去控制我们的人物相似,在传入噪声图时,我们使用该节点去生成类似并且变化幅度很小的图像去做为地图,供Ksampler去扩散,最终生成我们人物几乎相似,但是表情不同,方位不同的图像。
六、CR Binary To Bit List节点
节点功能:将给定的二进制字符串转换为位列表,其中每个位表示一个字符串中的一个字符。
输入:
文本框输入 -> 包含二进制字符串的字符串
输出:
STRING -> 生成的位列表,其中每个元素表示输入字符串中的一个字符。
注意:如下图所示,我们在输入框输入0000 0011 0000 0000,生成的图像为4*4的网格,每个网格为单独的一张图像,在数字为"1"的地方,我们生成的颜色与数字为"0"的地方生成的图像颜色不一样。
七、CR Value Cycler/CR Text Cycler 节点
节点功能:从给定的值,循环生成一组值,可以指定重复次数和循环次数。
输入:
文本输入框 -> 包含要循环的值,可以是多行
参数:
repeats -> 每个值在结果中重复出现的次数,默认为 1。最小值为 1,最大值为 99999。
loops -> 循环生成值的次数,默认为 1。最小值为 1,最大值为 99999。
输出:
FLOAT -> 以浮点数输出值
INT -> 以整数型输出值
STRING -> 以字符串输出值
注意:repeats和loops实际产生的情况是一样的,就是重复多少遍,只是说repeats指示文字出现的次数,loops代表所有行的循环次数。
"人物一致性控制"示例工作流:
学习完以上节点,您就可以搭建"人物一致性控制"示例工作流了
这里使用SDXL的大模型,并且加载对应的LCM-lora用来控制图像的生成速度,工作流的主要核心思想是以随机生成相同图案来通过VAE编码生成潜空间样本,随后控制噪声种子不变,通过控制提示词中除了表情之外的文本保持一致的方式,来生成尽量相同的人物:
孜孜不倦,方能登峰造极。坚持不懈,乃是成功关键。
__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