QQ-Nodes-ComfyUI 插件完整教程
1. 插件简介
QQ-Nodes-ComfyUI 是一个专门为 ComfyUI 设计的自定义节点包,项目地址:https://github.com/kenjiqq/qq-nodes-comfyui
这个插件的主要作用是帮你制作各种对比图表,就像是一个专业的"照片排版助手"。想象一下,你想测试不同的画画设置(比如不同的画笔、不同的颜色搭配),然后把结果整整齐齐地排成一个大表格,这样就能一眼看出哪种设置效果最好。这个插件就是干这个活的!
它能让你:
- 自动生成整齐的图片对比表格
- 测试不同参数组合的效果
- 批量处理多个图片
- 从文本文件中读取设置
2. 如何安装
安装这个插件很简单,就像往文件夹里放东西一样:
- 打开你的 ComfyUI 文件夹
- 找到
custom_nodes文件夹(如果没有就新建一个) - 在命令行中输入:
git clone https://github.com/kenjiqq/qq-nodes-comfyui - 重启 ComfyUI 就可以了
注意: 这个插件需要另外两个"帮手"插件才能正常工作:
- images-grid-comfy-plugin(负责制作表格)
- was-node-suite-comfyui(提供额外功能)
3. 节点逐一解析
3.1 XY Grid Helper 节点 - 表格制作大师
这个节点就像是一个"智能排版助手",它能把你生成的一堆图片按照规定的行列排列,制作成整齐的对比表格。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 行数值列表 | row_values | 列表类型 | 根据需要 | 控制表格有多少行,每行显示什么内容 | 定义XY网格的行轴数据 | 比如想测试3种不同画风:["写实", "卡通", "油画"] |
| 列数值列表 | column_values | 列表类型 | 根据需要 | 控制表格有多少列,每列显示什么内容 | 定义XY网格的列轴数据 | 比如想测试4种不同强度:[1.0, 1.5, 2.0, 2.5] |
| 行前缀 | row_prefix | 字符串 | 空或简短文字 | 给每行加个标题前缀,像给照片加标签 | 为行标签添加前缀文本 | 设置为"画风:",最终显示"画风:写实" |
| 列前缀 | column_prefix | 字符串 | 空或简短文字 | 给每列加个标题前缀,像给照片加标签 | 为列标签添加前缀文本 | 设置为"强度:",最终显示"强度:1.0" |
| 页面大小 | page_size | 整数 | 10-20 | 控制一页显示多少行,防止表格太大 | 设置每页输出的行数限制 | 如果设置为5,超过5行就分成多页显示 |
| 标签长度 | label_length | 整数 | 20-30 | 控制标签文字长度,太长会自动换行 | 设置标签文本的最大字符长度 | 设置为20,超过20个字符就换行显示 |
| 字体大小 | font_size | 整数 | 12-16 | 控制表格标签文字的大小 | 设置网格标签的字体大小 | 设置为14,标签文字就是14号字体 |
| 网格间隙 | grid_gap | 整数 | 5-15 | 控制图片之间的空隙大小 | 设置网格中图像之间的间距 | 设置为10,图片之间就有10像素的空隙 |
3.2 Any List 节点 - 万能列表转换器
这个节点就像是一个"格式转换器",能把任何东西变成列表格式,方便其他节点使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入数据 | input_data | 任意类型 | 根据需要 | 把各种格式的数据转换成列表 | 将任意类型转换为列表格式 | 把单个数字5转换成列表[5] |
3.3 Image Accumulator Start 节点 - 图片收集开始
这个节点就像是一个"图片收集袋"的开口,开始收集后续生成的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 重置计数器 | reset_counter | 布尔值 | True | 重新开始计数,清空之前的收集 | 重置图像累积器的计数器 | 开始新的表格制作前点击重置 |
3.4 Image Accumulator End 节点 - 图片收集结束
这个节点就像是"图片收集袋"的封口,结束收集并输出所有图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片输入 | images | 图片类型 | 连接上游节点 | 接收要收集的图片 | 接收累积的图像数据 | 连接图片生成节点的输出 |
3.5 Load Lines From Text File 节点 - 文本文件读取器
这个节点就像是一个"文件阅读器",能读取文本文件中的内容并转换成列表。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件路径 | file_path | 字符串 | 文件名.txt | 指定要读取的文件位置 | 指定输入文件夹中的文本文件路径 | 设置为"prompts.txt"读取提示词文件 |
| 分隔符 | delimiter | 字符串 | \n | 用什么符号分割文本内容 | 指定文本分割的分隔符 | 用换行符分割,每行一个提示词 |
3.6 Slice List 节点 - 列表切片器
这个节点就像是一个"列表裁剪器",能从一个大列表中取出你需要的部分。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入列表 | input_list | 列表类型 | 连接上游节点 | 要裁剪的原始列表 | 输入的列表数据 | 连接Any List节点的输出 |
| 起始位置 | start_index | 整数 | 0 | 从第几个开始取 | 切片的起始索引 | 设置为2,从第3个元素开始取 |
| 结束位置 | end_index | 整数 | -1 | 取到第几个结束 | 切片的结束索引 | 设置为5,取到第6个元素结束 |
3.7 Axis To String 节点 - 轴数据转文字
这个节点就像是一个"翻译器",把轴数据转换成文字格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 轴数据 | axis_data | 轴类型 | 连接XY Grid Helper | 要转换的轴数据 | 将轴数据转换为字符串类型 | 把行/列数据转换成文字提示词 |
3.8 Axis To Int 节点 - 轴数据转整数
这个节点就像是一个"数字转换器",把轴数据转换成整数格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 轴数据 | axis_data | 轴类型 | 连接XY Grid Helper | 要转换的轴数据 | 将轴数据转换为整数类型 | 把行/列数据转换成数字参数 |
3.9 Axis To Float 节点 - 轴数据转小数
这个节点就像是一个"精确数字转换器",把轴数据转换成小数格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 轴数据 | axis_data | 轴类型 | 连接XY Grid Helper | 要转换的轴数据 | 将轴数据转换为浮点数类型 | 把行/列数据转换成小数参数 |
3.10 Axis To Model 节点 - 轴数据转模型
这个节点就像是一个"模型选择器",把轴数据转换成AI模型格式。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 轴数据 | axis_data | 轴类型 | 连接XY Grid Helper | 要转换的轴数据 | 将轴数据转换为模型类型 | 把行/列数据转换成AI模型 |
3.11 Axis Pack 节点 - 轴数据打包器
这个节点就像是一个"多功能打包机",能把多个不同的数据打包成一个轴数据。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 数据1 | data1 | 任意类型 | 根据需要 | 第一个要打包的数据 | 第一个打包的数据项 | 可以是提示词文本 |
| 数据2 | data2 | 任意类型 | 根据需要 | 第二个要打包的数据 | 第二个打包的数据项 | 可以是强度数值 |
| 数据3 | data3 | 任意类型 | 根据需要 | 第三个要打包的数据 | 第三个打包的数据项 | 可以是模型文件 |
| 标签文本 | label_text | 字符串 | 空或描述 | 给这个打包数据起个名字 | 为打包数据设置标签 | 设置为"测试组合A" |
3.12 Axis Unpack 节点 - 轴数据解包器
这个节点就像是一个"拆包机",能把打包的轴数据重新拆开成单独的数据。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 打包数据 | packed_data | 轴类型 | 连接Axis Pack | 要解包的打包数据 | 输入的打包轴数据 | 连接XY Grid Helper的输出 |
3.13 Any To Any 节点 - 万能转换器
这个节点就像是一个"万能适配器",能把任何类型的数据转换成任何其他类型,但要小心使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入数据 | input_data | 任意类型 | 根据需要 | 要转换的原始数据 | 输入的任意类型数据 | 可以是任何节点的输出 |
4. 使用技巧和建议
4.1 制作对比表格的基本流程
- 准备数据:先用Any List节点准备好要测试的参数列表
- 设置表格:用XY Grid Helper节点设置行列数据
- 开始收集:用Image Accumulator Start节点开始收集图片
- 生成图片:运行你的图片生成流程
- 完成收集:用Image Accumulator End节点完成收集
- 获得表格:最终得到整齐的对比表格
4.2 参数调整建议
- 表格大小:如果图片分辨率很高,建议把page_size设小一些,避免表格太大
- 标签设置:给row_prefix和column_prefix设置有意义的前缀,让表格更清晰
- 间隙调整:根据图片大小调整grid_gap,让表格看起来更美观
4.3 高级使用技巧
- 组合测试:使用Axis Pack节点可以同时测试多个参数的组合
- 批量处理:从文本文件读取大量提示词,批量生成对比图
- 分页显示:利用page_size参数避免单个表格过大
5. 常见问题解答
Q1: 为什么我的表格没有生成?
A: 记住要先点击XY Grid Helper节点的"重置"按钮,然后按照显示的数量生成对应数量的图片。
Q2: 图片在表格中显示不全怎么办?
A: 调整grid_gap参数增加间隙,或者调整label_length参数控制标签长度。
Q3: 可以同时测试多个不同的参数吗?
A: 可以!使用Axis Pack节点把多个参数打包到一个轴上,然后用Axis Unpack节点在输出端拆开。
Q4: 表格太大显示不了怎么办?
A: 设置page_size参数,让表格分页显示,比如设置为5就会每5行生成一个表格。
Q5: Any To Any节点安全吗?
A: 这个节点会跳过类型检查,使用时要特别小心,确保数据类型匹配,否则可能出现不可预期的结果。
6. 实际应用场景
6.1 参数对比测试
用这个插件可以轻松测试不同参数的效果,比如:
- 不同的提示词强度
- 不同的采样器效果
- 不同模型的表现
6.2 批量内容生成
从文本文件中读取大量提示词,批量生成内容并制作对比表格。
6.3 A/B测试
对比两种不同设置的效果,快速找到最佳参数组合。
这个插件就像是给ComfyUI装上了一个专业的"对比测试实验室",让你可以科学地测试和比较不同设置的效果,大大提高工作效率!