ComfyUI Experiments 插件保姆级教程
1. 插件简介
插件地址: https://github.com/comfyanonymous/ComfyUI_experiments
ComfyUI Experiments 是ComfyUI官方开发的实验性插件!这个插件就像一个"实验室",里面装着各种新奇的工具,让你能够尝试一些还在测试阶段的高级功能。想象一下,这就像是一个厨师的秘密调料盒,里面有各种特殊的调料,能让你的菜(图片)变得更加美味。
这个插件能干什么?
- 让AI模型像调色师一样智能混合,创造出全新的绘画风格
- 像摄影师调节相机设置一样,精确控制AI生成图片的各种参数
- 使用参考图片来指导AI创作,就像给画家一个样本让他模仿
- 解决AI生成图片时常见的问题,比如颜色过度饱和或细节丢失
能带来什么效果?
- 生成更加稳定、高质量的AI图片
- 创造独特的艺术风格和效果
- 更好地控制AI的创作过程
- 实现一些常规方法难以达到的特殊效果
2. 如何安装
方法一:手动安装(推荐)
- 打开你的 ComfyUI 安装目录
- 进入
custom_nodes文件夹 - 下载插件文件:
- 访问 https://github.com/comfyanonymous/ComfyUI_experiments
- 点击绿色的 "Code" 按钮,选择 "Download ZIP"
- 解压后将所有
.py文件复制到custom_nodes文件夹中
- 重启 ComfyUI
方法二:使用Git命令
cd ComfyUI/custom_nodes
git clone https://github.com/comfyanonymous/ComfyUI_experiments.git
注意: 安装后,这些节点会出现在 "custom_node_experiments/" 分类下。
3. 节点详细解析
3.1 ModelMergeBlockNumber(按块编号合并模型节点)
这个节点就像一个精密的"模型调配师",能够把两个AI模型按照不同的部分进行精确混合,就像调鸡尾酒一样,每一层都可以单独调节比例。
3.2 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model1 | model1 | MODEL | - | 第一个要混合的AI模型,就像主要食材 | 作为基础的源模型 | 连接你想要作为主体的模型 |
| model2 | model2 | MODEL | - | 第二个要混合的AI模型,就像调味料 | 用于混合的目标模型 | 连接你想要融入特色的模型 |
| time_embed. | time_embed. | FLOAT | 1.0 | 时间嵌入层的混合比例,控制时间感知能力 | 时间嵌入层的权重比例 | 0.5表示两个模型各占一半 |
| label_emb. | label_emb. | FLOAT | 1.0 | 标签嵌入层的混合比例,控制标签理解能力 | 标签嵌入层的权重比例 | 调高能增强对提示词的理解 |
| input_blocks.0. | input_blocks.0. | FLOAT | 1.0 | 输入块0的混合比例,控制初始特征提取 | 第0个输入块的权重比例 | 影响模型对输入的初步理解 |
| input_blocks.1. | input_blocks.1. | FLOAT | 1.0 | 输入块1的混合比例,控制早期特征处理 | 第1个输入块的权重比例 | 影响早期特征的处理方式 |
| input_blocks.2. | input_blocks.2. | FLOAT | 1.0 | 输入块2的混合比例,继续特征提取 | 第2个输入块的权重比例 | 逐步细化特征理解 |
| input_blocks.3. | input_blocks.3. | FLOAT | 1.0 | 输入块3的混合比例,深化特征理解 | 第3个输入块的权重比例 | 进一步处理复杂特征 |
| input_blocks.4. | input_blocks.4. | FLOAT | 1.0 | 输入块4的混合比例,中层特征处理 | 第4个输入块的权重比例 | 处理中等复杂度的特征 |
| input_blocks.5. | input_blocks.5. | FLOAT | 1.0 | 输入块5的混合比例,继续深化处理 | 第5个输入块的权重比例 | 进一步细化特征表示 |
| input_blocks.6. | input_blocks.6. | FLOAT | 1.0 | 输入块6的混合比例,高层特征提取 | 第6个输入块的权重比例 | 提取高级抽象特征 |
| input_blocks.7. | input_blocks.7. | FLOAT | 1.0 | 输入块7的混合比例,复杂特征处理 | 第7个输入块的权重比例 | 处理复杂的语义特征 |
| input_blocks.8. | input_blocks.8. | FLOAT | 1.0 | 输入块8的混合比例,深层特征理解 | 第8个输入块的权重比例 | 深度理解输入内容 |
| input_blocks.9. | input_blocks.9. | FLOAT | 1.0 | 输入块9的混合比例,最深层输入处理 | 第9个输入块的权重比例 | 最深层的输入特征处理 |
| input_blocks.10. | input_blocks.10. | FLOAT | 1.0 | 输入块10的混合比例,高级特征整合 | 第10个输入块的权重比例 | 整合高级特征信息 |
| input_blocks.11. | input_blocks.11. | FLOAT | 1.0 | 输入块11的混合比例,最终输入处理 | 第11个输入块的权重比例 | 完成输入阶段的最终处理 |
| middle_block.0. | middle_block.0. | FLOAT | 1.0 | 中间块0的混合比例,核心处理开始 | 第0个中间块的权重比例 | 模型的核心处理部分 |
| middle_block.1. | middle_block.1. | FLOAT | 1.0 | 中间块1的混合比例,核心变换处理 | 第1个中间块的权重比例 | 执行核心的特征变换 |
| middle_block.2. | middle_block.2. | FLOAT | 1.0 | 中间块2的混合比例,核心处理完成 | 第2个中间块的权重比例 | 完成核心处理阶段 |
| output_blocks.0. | output_blocks.0. | FLOAT | 1.0 | 输出块0的混合比例,开始生成输出 | 第0个输出块的权重比例 | 开始生成最终输出 |
| output_blocks.1. | output_blocks.1. | FLOAT | 1.0 | 输出块1的混合比例,继续输出生成 | 第1个输出块的权重比例 | 继续构建输出内容 |
| output_blocks.2. | output_blocks.2. | FLOAT | 1.0 | 输出块2的混合比例,细化输出内容 | 第2个输出块的权重比例 | 细化输出的细节 |
| output_blocks.3. | output_blocks.3. | FLOAT | 1.0 | 输出块3的混合比例,优化输出质量 | 第3个输出块的权重比例 | 优化输出质量 |
| output_blocks.4. | output_blocks.4. | FLOAT | 1.0 | 输出块4的混合比例,中层输出处理 | 第4个输出块的权重比例 | 处理中层输出特征 |
| output_blocks.5. | output_blocks.5. | FLOAT | 1.0 | 输出块5的混合比例,深化输出处理 | 第5个输出块的权重比例 | 深化输出处理过程 |
| output_blocks.6. | output_blocks.6. | FLOAT | 1.0 | 输出块6的混合比例,高质量输出 | 第6个输出块的权重比例 | 生成高质量输出 |
| output_blocks.7. | output_blocks.7. | FLOAT | 1.0 | 输出块7的混合比例,精细输出调整 | 第7个输出块的权重比例 | 精细调整输出效果 |
| output_blocks.8. | output_blocks.8. | FLOAT | 1.0 | 输出块8的混合比例,细节输出优化 | 第8个输出块的权重比例 | 优化输出细节 |
| output_blocks.9. | output_blocks.9. | FLOAT | 1.0 | 输出块9的混合比例,表面特征处理 | 第9个输出块的权重比例 | 处理表面特征 |
| output_blocks.10. | output_blocks.10. | FLOAT | 1.0 | 输出块10的混合比例,最终细节调整 | 第10个输出块的权重比例 | 最终的细节调整 |
| output_blocks.11. | output_blocks.11. | FLOAT | 1.0 | 输出块11的混合比例,最终输出完成 | 第11个输出块的权重比例 | 完成最终输出生成 |
| out. | out. | FLOAT | 1.0 | 最终输出层的混合比例,决定最终效果 | 最终输出层的权重比例 | 决定最终生成图像的风格 |
3.3 ReferenceOnlySimple(简单参考模式节点)
这个节点就像一个"临摹助手",能让AI参考一张图片的风格和特征来创作新图片,就像给画家一个样本让他照着画。
3.4 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL | - | 要使用的AI模型,就像选择画家 | 用于生成的基础模型 | 连接你想使用的Stable Diffusion模型 |
| reference | reference | LATENT | - | 参考图片的编码数据,就像给画家的样本 | 参考图像的潜在空间表示 | 连接VAE编码后的参考图片 |
| batch_size | batch_size | INT | 1 | 一次生成几张图片,就像一次画几幅画 | 批次处理的图像数量 | 1张适合测试,4张可以有更多选择 |
3.5 RescaleClassifierFreeGuidanceTest(重新缩放引导测试节点)
这个节点就像一个"平衡大师",能够解决AI生成图片时经常出现的过度饱和问题,让图片看起来更自然。
3.6 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL | - | 要处理的AI模型,就像选择要调整的相机 | 需要应用重新缩放的模型 | 连接你的Stable Diffusion模型 |
| multiplier | multiplier | FLOAT | 0.7 | 重新缩放的强度,就像调节滤镜强度 | 重新缩放算法的应用强度 | 0.7是平衡值,越低效果越明显 |
3.7 ModelSamplerTonemapNoiseTest(色调映射噪声测试节点)
这个节点就像一个"曝光调节器",能够让你在使用高CFG值时避免图片过曝或失真,就像相机的HDR功能。
3.8 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL | - | 要处理的AI模型,就像选择相机 | 需要应用色调映射的模型 | 连接你的Stable Diffusion模型 |
| multiplier | multiplier | FLOAT | 1.0 | 色调映射的强度,就像调节HDR强度 | 色调映射算法的强度系数 | 1.0是标准值,降低可以使用更高CFG |
3.9 TonemapNoiseWithRescaleCFG(色调映射配合重新缩放节点)
这个节点就像一个"双重滤镜",同时使用色调映射和重新缩放两种技术,让你能够获得最佳的图片质量。
3.10 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL | - | 要处理的AI模型,就像选择高级相机 | 需要应用双重处理的模型 | 连接你的Stable Diffusion模型 |
| tonemap_multiplier | tonemap_multiplier | FLOAT | 1.0 | 色调映射强度,控制曝光平衡 | 色调映射算法的强度系数 | 1.0是标准值,可以根据需要调整 |
| rescale_multiplier | rescale_multiplier | FLOAT | 1.0 | 重新缩放强度,控制颜色平衡 | 重新缩放算法的应用强度 | 1.0是标准值,降低可以减少过饱和 |
3.11 ModelMergeSDXL(SDXL模型合并节点)
这个节点专门为SDXL模型设计,就像一个"SDXL专用调配师",能够精确地混合两个SDXL模型。
3.12 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model1 | model1 | MODEL | - | 第一个SDXL模型,作为主要基础 | 作为基础的SDXL源模型 | 连接你的主要SDXL模型 |
| model2 | model2 | MODEL | - | 第二个SDXL模型,用于混合特色 | 用于混合的SDXL目标模型 | 连接你想融入特色的SDXL模型 |
| time_embed. | time_embed. | FLOAT | 1.0 | 时间嵌入层混合比例 | SDXL时间嵌入层的权重比例 | 控制时间相关的特征 |
| label_emb. | label_emb. | FLOAT | 1.0 | 标签嵌入层混合比例 | SDXL标签嵌入层的权重比例 | 控制对提示词的理解能力 |
| input_blocks.0-8 | input_blocks.0-8 | FLOAT | 1.0 | SDXL输入块0-8的混合比例 | SDXL各个输入块的权重比例 | 分别控制不同层次的输入处理 |
| middle_block.0-2 | middle_block.0-2 | FLOAT | 1.0 | SDXL中间块0-2的混合比例 | SDXL各个中间块的权重比例 | 控制核心处理阶段 |
| output_blocks.0-8 | output_blocks.0-8 | FLOAT | 1.0 | SDXL输出块0-8的混合比例 | SDXL各个输出块的权重比例 | 分别控制不同层次的输出生成 |
| out. | out. | FLOAT | 1.0 | 最终输出层混合比例 | SDXL最终输出层的权重比例 | 决定最终生成效果 |
3.13 ModelMergeSDXLTransformers(SDXL变换器合并节点)
这个节点是SDXL模型合并的"精细版本",能够单独控制每个变换器块的混合比例。
3.14 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model1 | model1 | MODEL | - | 第一个SDXL模型 | 作为基础的SDXL源模型 | 连接主要的SDXL模型 |
| model2 | model2 | MODEL | - | 第二个SDXL模型 | 用于混合的SDXL目标模型 | 连接要融合的SDXL模型 |
| 各种transformer_blocks参数 | transformer_blocks | FLOAT | 1.0 | 各个变换器块的混合比例 | 不同变换器块的权重控制 | 可以精确控制每个注意力层的混合 |
3.15 ModelMergeSDXLDetailedTransformers(SDXL详细变换器合并节点)
这个节点是最精细的SDXL合并工具,就像一个"显微镜级别的调配师",能够控制到每个注意力机制的细节。
3.16 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model1 | model1 | MODEL | - | 第一个SDXL模型 | 作为基础的SDXL源模型 | 连接主要的SDXL模型 |
| model2 | model2 | MODEL | - | 第二个SDXL模型 | 用于混合的SDXL目标模型 | 连接要融合的SDXL模型 |
| 详细的transformer参数 | 各种详细参数 | FLOAT | 1.0 | 每个注意力组件的混合比例 | 精确到每个注意力子组件的权重控制 | 可以控制norm1、attn1、ff.net等具体组件 |
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先试试RescaleClassifierFreeGuidanceTest节点,它最容易看到效果
- 参数保守调整:所有的multiplier参数都建议从默认值开始,小幅度调整
- 对比测试:使用相同的种子和提示词,对比使用节点前后的效果
- 保存设置:找到好的参数组合要记录下来
4.2 模型合并技巧
- 选择互补模型:选择风格差异明显但质量都很好的模型进行合并
- 分层调整:不同层控制不同方面,input_blocks影响理解,output_blocks影响生成
- 渐进调整:先调整大的分类(如所有input_blocks),再细调具体块
- 备份原模型:合并前确保原模型安全
4.3 采样优化技巧
- CFG配合使用:使用色调映射节点时可以尝试更高的CFG值(10-15)
- 组合使用:TonemapNoiseWithRescaleCFG节点效果通常比单独使用更好
- 参数平衡:tonemap_multiplier和rescale_multiplier要配合调整
- 测试不同模型:不同模型对这些节点的响应可能不同
4.4 参考模式使用
- 参考图选择:选择风格明确、构图清晰的图片作为参考
- 批次大小:初学者建议batch_size设为1,熟练后可以增加
- 提示词配合:参考模式下提示词仍然重要,要与参考图风格匹配
5. 常见问题解答
Q1: 为什么使用这些节点后生成速度变慢了?
A:
- 这些节点会增加计算复杂度,速度变慢是正常的
- 模型合并节点只在合并时慢,合并后使用速度正常
- 可以先用低分辨率测试参数,确定效果后再用高分辨率
Q2: 参数应该怎么调整?
A:
- 所有FLOAT参数都建议从默认值开始
- 每次只调整一个参数,观察效果变化
- multiplier类参数:1.0是标准,0.5-1.5是常用范围
- 模型合并参数:0.0完全使用model1,1.0完全使用model2
Q3: 哪些节点可以组合使用?
A:
- 采样相关节点(RescaleClassifierFreeGuidanceTest、ModelSamplerTonemapNoiseTest)不要同时使用
- 模型合并节点只能选择一个使用
- ReferenceOnlySimple可以与采样节点组合使用
- TonemapNoiseWithRescaleCFG已经包含了两种功能,不需要再组合其他采样节点
Q4: 为什么合并后的模型效果不好?
A:
- 检查两个原模型是否兼容(同样的基础架构)
- 尝试调整合并比例,不一定要用1.0
- 某些层可能不适合合并,尝试将问题层设为0.0或1.0
- 保存多个不同比例的合并结果进行对比
Q5: 参考模式节点没有效果怎么办?
A:
- 确保参考图片已经通过VAE编码
- 检查batch_size设置是否正确
- 参考图片的风格要明确,模糊或复杂的图片效果不好
- 提示词要与参考图片风格匹配
Q6: 这些节点适合什么类型的模型?
A:
- 大部分节点适用于所有Stable Diffusion模型
- SDXL相关节点只能用于SDXL模型
- 采样优化节点对写实模型效果更明显
- 动漫风格模型使用时参数可能需要调整
Q7: 如何判断节点是否起作用?
A:
- 使用相同的种子和提示词进行对比测试
- 采样节点的效果在高CFG值时更明显
- 模型合并的效果需要多次生成才能看出
- 可以使用极端参数值来确认节点是否工作
6. 进阶使用技巧
6.1 专业工作流程
- 测试流程:新参数→低分辨率测试→满意后高分辨率生成
- 参数记录:建立参数组合的记录表,记录不同效果的设置
- 批量测试:使用相同设置生成多张图片,评估稳定性
- 版本管理:保存不同版本的合并模型,便于对比
6.2 创意应用
- 风格融合:使用模型合并创造独特的艺术风格
- 问题修复:使用采样节点解决特定的生成问题
- 参考创作:结合参考模式实现风格迁移
- 实验探索:这些都是实验性功能,鼓励大胆尝试
6.3 性能优化
- 内存管理:模型合并会占用更多内存,注意显存使用
- 参数缓存:找到好的参数组合后保存为预设
- 选择性使用:不是每次都需要使用这些节点
- 硬件考虑:低端显卡建议谨慎使用复杂的合并节点
7. 总结
ComfyUI Experiments 插件是一个充满创新的实验性工具集,通过7个不同功能的节点,为用户提供了探索AI图像生成前沿技术的机会。从精确的模型合并到智能的采样优化,从参考风格迁移到高级的色调控制,这个插件让你能够突破常规限制,创造出独特的艺术效果。
记住最重要的几点:
- 这些都是实验性功能,要有耐心和探索精神
- 从默认参数开始,小步调整观察效果
- 不同模型对这些节点的响应可能不同
- 保存好的参数组合,建立自己的使用经验
- 大胆尝试,这些工具就是为了探索新可能而生
现在就开始你的实验之旅吧!用这些前沿工具,探索AI图像生成的无限可能!