ComfyUI Easy Grids 插件完全小白教程
1. 插件简介
ComfyUI Easy Grids 是一个超好用的插件,专门用来制作图片九宫格(就像朋友圈发的那种多张图片拼在一起的效果)。
插件地址: https://github.com/shockz0rz/comfy-easy-grids
这个插件可以帮你自动生成图片网格,让你一次性生成多张图片并自动排列成好看的格子状布局。就像是一个智能相册制作器,你只需要告诉它要几行几列,它就会自动帮你生成对应数量的图片,然后整整齐齐地排列好。
能给我们带来什么效果?
- 一键生成多张图片的对比图
- 自动制作参数测试表格
- 批量生成不同风格的图片合集
- 像专业摄影师一样展示作品集
2. 如何安装
方法一:手动安装(推荐新手)
- 打开你的 ComfyUI 安装文件夹
- 找到
custom_nodes文件夹 - 在这个文件夹里打开命令行(按住Shift键右键点击空白处,选择"在此处打开命令行")
- 输入以下命令:
git clone https://github.com/shockz0rz/comfy-easy-grids.git
- 重启 ComfyUI
方法二:ComfyUI管理器安装
- 打开 ComfyUI 管理器
- 搜索 "Easy Grids"
- 点击安装
- 重启 ComfyUI
安装完成后,你会在添加节点菜单中看到 "EasyGrids" 分类。
3. 节点详细解析
3.1 Create Image Grid 节点(图片网格创建器)
这个节点就像一个智能计数器,它会告诉系统"我要做一个3x3的九宫格",然后自动计算出需要生成9张图片,并且每次告诉你现在正在做第几行第几列的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| x_size | x_size | 整数 | 3 | 决定网格有几列(横着几个格子) | 定义网格的水平尺寸 | 想要3列就填3,想要5列就填5 |
| y_size | y_size | 整数 | 3 | 决定网格有几行(竖着几个格子) | 定义网格的垂直尺寸 | 想要3行就填3,想要4行就填4 |
| x_index | x_index | 输出 | 自动 | 告诉你现在正在做第几列的图片 | 当前网格位置的X坐标索引 | 第1列输出1,第2列输出2,依此类推 |
| y_index | y_index | 输出 | 自动 | 告诉你现在正在做第几行的图片 | 当前网格位置的Y坐标索引 | 第1行输出1,第2行输出2,依此类推 |
3.2 Save Image Grid 节点(图片网格保存器)
这个节点就像一个智能拼图器,它会收集所有生成的图片,等收集够了指定数量后,就自动把它们拼成一个大的网格图片保存下来。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | 图片输入 | 连接 | 接收要拼接的图片 | 图像数据输入端口 | 连接生成图片的节点输出 |
| x_size | x_size | 整数 | 3 | 告诉拼图器要拼成几列 | 网格的水平尺寸 | 要和创建器的x_size保持一致 |
| y_size | y_size | 整数 | 3 | 告诉拼图器要拼成几行 | 网格的垂直尺寸 | 要和创建器的y_size保持一致 |
| filename_prefix | filename_prefix | 文本 | "grid_" | 保存的文件名前缀 | 输出文件名的前缀 | 填"测试_"会保存为"测试_00001.png" |
| row_labels | row_labels | 文本列表 | 可选 | 给每一行加上标签说明 | 行标签数据输入 | 如["风格A", "风格B", "风格C"] |
| column_labels | column_labels | 文本列表 | 可选 | 给每一列加上标签说明 | 列标签数据输入 | 如["参数1", "参数2", "参数3"] |
3.3 Float List 节点(小数列表选择器)
这个节点就像一个智能选择器,你可以预先设置最多6个小数,然后根据索引号来选择其中一个使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| float_1 | float_1 | 小数 | 0.5 | 第1个备选小数 | 浮点数值选项1 | 用于CFG强度,填7.5 |
| float_2 | float_2 | 小数 | 1.0 | 第2个备选小数 | 浮点数值选项2 | 用于CFG强度,填8.0 |
| float_3 | float_3 | 小数 | 1.5 | 第3个备选小数 | 浮点数值选项3 | 用于CFG强度,填8.5 |
| float_4 | float_4 | 小数 | 2.0 | 第4个备选小数 | 浮点数值选项4 | 用于CFG强度,填9.0 |
| float_5 | float_5 | 小数 | 2.5 | 第5个备选小数 | 浮点数值选项5 | 用于CFG强度,填9.5 |
| float_6 | float_6 | 小数 | 3.0 | 第6个备选小数 | 浮点数值选项6 | 用于CFG强度,填10.0 |
| index | index | 整数 | 1 | 选择第几个小数来使用 | 索引值输入 | 填1选择float_1,填2选择float_2 |
3.4 Int List 节点(整数列表选择器)
这个节点和小数列表选择器一样,只是专门用来选择整数的。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| int_1 | int_1 | 整数 | 1 | 第1个备选整数 | 整数值选项1 | 用于种子值,填123456 |
| int_2 | int_2 | 整数 | 2 | 第2个备选整数 | 整数值选项2 | 用于种子值,填234567 |
| int_3 | int_3 | 整数 | 3 | 第3个备选整数 | 整数值选项3 | 用于种子值,填345678 |
| int_4 | int_4 | 整数 | 4 | 第4个备选整数 | 整数值选项4 | 用于种子值,填456789 |
| int_5 | int_5 | 整数 | 5 | 第5个备选整数 | 整数值选项5 | 用于种子值,填567890 |
| int_6 | int_6 | 整数 | 6 | 第6个备选整数 | 整数值选项6 | 用于种子值,填678901 |
| index | index | 整数 | 1 | 选择第几个整数来使用 | 索引值输入 | 填1选择int_1,填2选择int_2 |
3.5 Float List from Text Field 节点(文本输入小数列表)
这个节点就像一个智能计算器,你可以直接在文本框里输入一串数字,它会自动帮你分解成列表。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text_field | text_field | 文本 | "1.0,2.0,3.0" | 输入一串小数,用符号分隔 | 文本形式的数值列表输入 | 输入"7.5,8.0,8.5,9.0"表示4个CFG值 |
| index | index | 整数 | 1 | 选择第几个数字来使用 | 列表索引值 | 填1选择第1个数字,填2选择第2个数字 |
3.6 Int List from Text Field 节点(文本输入整数列表)
这个节点和上面的小数版本一样,只是专门处理整数的。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text_field | text_field | 文本 | "1,2,3" | 输入一串整数,用符号分隔 | 文本形式的整数列表输入 | 输入"100,200,300,400"表示4个步数 |
| index | index | 整数 | 1 | 选择第几个数字来使用 | 列表索引值 | 填1选择第1个数字,填2选择第2个数字 |
3.7 String List 节点(文本列表选择器)
这个节点就像一个智能标签机,你可以预先设置最多6个文本标签,然后根据需要选择其中一个。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| string_1 | string_1 | 文本 | "选项1" | 第1个备选文本 | 字符串选项1 | 填"写实风格"用作提示词 |
| string_2 | string_2 | 文本 | "选项2" | 第2个备选文本 | 字符串选项2 | 填"卡通风格"用作提示词 |
| string_3 | string_3 | 文本 | "选项3" | 第3个备选文本 | 字符串选项3 | 填"油画风格"用作提示词 |
| string_4 | string_4 | 文本 | "选项4" | 第4个备选文本 | 字符串选项4 | 填"水彩风格"用作提示词 |
| string_5 | string_5 | 文本 | "选项5" | 第5个备选文本 | 字符串选项5 | 填"素描风格"用作提示词 |
| string_6 | string_6 | 文本 | "选项6" | 第6个备选文本 | 字符串选项6 | 填"抽象风格"用作提示词 |
| index | index | 整数 | 1 | 选择第几个文本来使用 | 索引值输入 | 填1选择string_1,填2选择string_2 |
3.8 String List from Text Field 节点(文本输入文本列表)
这个节点就像一个智能文本分割器,你可以在文本框里输入多行文本,它会自动分解成列表。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text_field | text_field | 多行文本 | "行1\n行2\n行3" | 输入多行文本,每行一个选项 | 多行文本列表输入 | 输入"美女\n帅哥\n宠物\n风景"表示4种主题 |
| index | index | 整数 | 1 | 选择第几行文本来使用 | 列表索引值 | 填1选择第1行,填2选择第2行 |
3.9 Float/Int to Text 节点(数字转文本)
这个节点就像一个智能格式转换器,把数字转换成文本,方便插入到提示词中。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| number | number | 数字 | 1.0 | 输入要转换的数字 | 数值输入 | 输入7.5会输出文本"7.5" |
| output | output | 文本 | 输出 | 转换后的文本结果 | 文本输出 | 可以连接到文本组合节点 |
3.10 Text Concatenator 节点(文本组合器)
这个节点就像一个智能胶水,可以把两段文本粘合在一起。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| text_1 | text_1 | 文本 | "前半部分" | 第一段文本 | 第一个字符串输入 | 填"美丽的"作为形容词 |
| text_2 | text_2 | 文本 | "后半部分" | 第二段文本 | 第二个字符串输入 | 填"女孩"作为主体 |
| separator | separator | 文本 | " " | 两段文本之间的分隔符 | 连接符 | 填" "得到"美丽的 女孩" |
| output | output | 文本 | 输出 | 组合后的完整文本 | 组合文本输出 | 输出"美丽的 女孩" |
3.11 LoRA List 节点(LoRA选择器)
这个节点就像一个智能模型切换器,可以在多个LoRA模型之间切换。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| lora_1 | lora_1 | LoRA名称 | "None" | 第1个LoRA模型 | 第一个LoRA选择 | 填"realistic_v1.safetensors" |
| lora_2 | lora_2 | LoRA名称 | "None" | 第2个LoRA模型 | 第二个LoRA选择 | 填"anime_v2.safetensors" |
| lora_3 | lora_3 | LoRA名称 | "None" | 第3个LoRA模型 | 第三个LoRA选择 | 填"portrait_v1.safetensors" |
| lora_4 | lora_4 | LoRA名称 | "None" | 第4个LoRA模型 | 第四个LoRA选择 | 填"landscape_v1.safetensors" |
| lora_5 | lora_5 | LoRA名称 | "None" | 第5个LoRA模型 | 第五个LoRA选择 | 填"fantasy_v1.safetensors" |
| lora_6 | lora_6 | LoRA名称 | "None" | 第6个LoRA模型 | 第六个LoRA选择 | 填"cyberpunk_v1.safetensors" |
| index | index | 整数 | 1 | 选择第几个LoRA来使用 | 索引值输入 | 填1选择lora_1,填2选择lora_2 |
4. 使用技巧和建议
4.1 新手入门建议
- 从小网格开始:第一次使用建议设置2x2的小网格,熟悉流程后再增加尺寸
- 参数要对应:Create Image Grid 和 Save Image Grid 的 x_size 和 y_size 必须一致
- 索引从1开始:记住这个插件的索引是从1开始计算的,不是从0开始
4.2 高级使用技巧
- 善用文本列表:把常用的提示词预设在 String List 中,方便快速切换
- 数字列表灵活运用:用 Float List 来测试不同的 CFG 值,用 Int List 来测试不同的步数
- 标签功能:善用 row_labels 和 column_labels 来标记你的测试参数
4.3 工作流程建议
- 先设置好 Create Image Grid 的尺寸
- 配置好各种参数列表(Float List、String List等)
- 将索引连接到你想要变化的参数
- 设置好 Save Image Grid 的保存参数
- 点击"Queue Full Grid"开始生成
5. 常见问题解答
Q: 为什么我的网格图片没有保存?
A: 检查以下几点:
- Create Image Grid 和 Save Image Grid 的 x_size、y_size 是否一致
- 是否点击了"Queue Full Grid"而不是普通的"Queue Prompt"
- 图片输出是否正确连接到了 Save Image Grid
Q: 索引连接后没有变化怎么办?
A:
- 确认索引是从1开始的,不是从0
- 检查列表节点中是否设置了不同的值
- 确认索引输出确实连接到了目标参数
Q: 可以制作超过6x6的网格吗?
A: 可以,只要你的电脑性能够用。但建议新手先从小网格开始练习。
Q: 文本列表输入时用什么分隔符?
A:
- Float/Int List from Text Field:可以用逗号、分号、冒号或空格
- String List from Text Field:必须用换行符,每行一个选项
Q: 生成过程中可以中断吗?
A: 可以,点击ComfyUI的停止按钮即可中断,已生成的图片会保留。
6. 实际应用案例
案例1:CFG强度测试网格
- 创建3x3网格
- 使用Float List设置不同CFG值:7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 10.5, 11.0
- 用x_index连接到CFG参数
- 生成9张不同CFG强度的对比图
案例2:不同风格测试
- 创建2x3网格
- 使用String List设置不同风格词:realistic, anime, oil painting, watercolor, sketch, abstract
- 用x_index连接到提示词
- 生成6种不同风格的对比图
案例3:LoRA模型对比
- 创建2x2网格
- 使用LoRA List设置4个不同的LoRA模型
- 用网格索引切换LoRA
- 生成4种不同LoRA效果的对比图
通过这个插件,你可以轻松制作出专业级的参数对比图,让你的AI绘画工作更加高效和有条理!