ComfyUI-Iterative-Mixer 插件完全教程
1. 插件简介
插件地址: https://github.com/ttulttul/ComfyUI-Iterative-Mixer
这个插件是一个专门用于图像放大和细节增强的神器!它的核心思想就像是给你的图片"加料"——通过一种叫做"迭代混合"的技术,让小图片变大的同时还能保持清晰度和细节。
能给我们带来什么效果?
- 把512x512的图片放大到1024x1024,而且不会糊
- 让放大后的图片有更多细节,不像传统放大那样模糊
- 可以控制放大过程中的各种参数,获得不同风格的效果
- 支持局部修复(inpainting)和差分扩散等高级功能
简单来说,这就是一个让你的图片"变大变清晰"的魔法工具!
2. 如何安装
有两种安装方法:
方法一:通过 ComfyUI Manager 安装
- 打开 ComfyUI Manager
- 搜索 "Iterative Mixer"
- 点击安装即可
方法二:手动安装
- 进入你的 ComfyUI 安装目录下的
custom_nodes文件夹 - 打开命令行,输入:
git clone https://github.com/ttulttul/ComfyUI-Iterative-Mixer.git - 重启 ComfyUI
3. 节点详细解析
3.1 BatchUnsampler 节点 - 噪声生成器
这个节点就像一个"时光倒流机",它把你的清晰图片一步步加上噪声,生成一系列从清晰到模糊的图片序列。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象,用于获取噪声调度参数 | 连接你的checkpoint模型 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择加噪声的方式 | 采样器类型,决定噪声添加的数学方法 | 一般用euler就行,简单稳定 |
| scheduler | scheduler | 调度器列表 | normal | 控制噪声添加的时间表 | 噪声调度器,控制每一步加多少噪声 | normal是默认选择,适合大多数情况 |
| steps | steps | 整数 | 20-40 | 要生成多少张不同噪声程度的图片 | 反向扩散的步数,决定生成的噪声图片数量 | 20步够用,40步更精细但更慢 |
| start_at_step | start_at_step | 整数 | 0 | 从第几步开始加噪声 | 起始步数,通常为0表示从原图开始 | 一般保持0不用改 |
| end_at_step | end_at_step | 整数 | 10000 | 到第几步停止加噪声 | 结束步数,通常设置为最大值 | 保持默认值就行 |
| latent_image | latent_image | LATENT类型 | 必填 | 你要处理的原始图片 | 输入的潜在空间图像 | 连接VAE编码后的图片 |
| normalize | normalize | 布尔值 | False | 是否要标准化噪声 | 是否对生成的噪声批次进行标准化处理 | 一般不开启,可能影响效果 |
3.2 IterativeMixingSamplerNode 节点 - 迭代混合采样器
这是整个插件的核心!它就像一个"智能调色师",把噪声图片和清晰图片按照特定比例混合,生成高质量的放大图片。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象 | 连接你的checkpoint模型 |
| sampler | sampler | 采样器列表 | euler | 选择采样方式 | 采样算法类型 | euler最稳定,euler_perlin有特殊效果 |
| alpha_1 | alpha_1 | 浮点数 | 2.4 | 控制混合曲线的陡峭程度 | 余弦混合调度的指数参数 | 值越小混合越温和,越大越激进 |
| blending_schedule | blending_schedule | 列表选择 | cosine | 选择混合的时间规律 | 混合调度函数类型 | cosine最自然,linear更直接 |
| blending_function | blending_function | 列表选择 | addition | 选择图片混合的数学方法 | 潜在空间混合函数 | addition简单,slerp更平滑 |
| normalize_on_mean | normalize_on_mean | 布尔值 | False | 是否根据平均值标准化 | 是否对输出进行均值标准化 | 已弃用,建议保持False |
| start_blending_at_pct | start_blending_at_pct | 浮点数 | 0.0 | 从百分之几开始混合 | 开始混合的步数百分比 | 0.0表示从头开始,0.2表示从20%开始 |
| stop_blending_at_pct | stop_blending_at_pct | 浮点数 | 1.0 | 到百分之几停止混合 | 停止混合的步数百分比 | 1.0表示混合到最后,0.8表示80%就停止 |
| clamp_blending_at_pct | clamp_blending_at_pct | 浮点数 | 1.0 | 在百分之几处限制混合强度 | 限制混合曲线的百分比位置 | 用来微调混合效果的细节 |
| blend_min | blend_min | 浮点数 | 0.0 | 混合的最小比例 | 混合曲线的最小值 | 确保至少混合这么多比例 |
| blend_max | blend_max | 浮点数 | 1.0 | 混合的最大比例 | 混合曲线的最大值 | 限制最大混合比例 |
| perlin_mode | perlin_mode | 列表选择 | masks | 柏林噪声的使用方式 | Perlin噪声应用模式 | masks用作遮罩,latents直接混合 |
| perlin_strength | perlin_strength | 浮点数 | 0.75 | 柏林噪声的强度 | Perlin噪声的影响强度 | 值越大噪声效果越明显 |
| perlin_scale | perlin_scale | 浮点数 | 10.0 | 柏林噪声的颗粒大小 | Perlin噪声的缩放因子 | 值越小颗粒越大,越大颗粒越细 |
| rewind | rewind | 布尔值 | False | 是否启用回退功能 | 是否使用回退采样策略 | 实验性功能,可能提升细节但很慢 |
| rewind_min | rewind_min | 浮点数 | 0.5 | 回退的最小百分比 | 回退采样的最小步数比例 | 配合rewind使用,控制回退幅度 |
| rewind_max | rewind_max | 浮点数 | 0.8 | 回退的最大百分比 | 回退采样的最大步数比例 | 配合rewind使用,控制回退范围 |
3.3 IterativeMixingScheduler 节点 - 基础调度器
这个节点就像一个"时间管理员",它告诉采样器什么时候该做什么,生成一个时间表。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象,用于获取sigma参数 | 连接你的checkpoint模型 |
| scheduler | scheduler | 调度器列表 | normal | 选择时间调度方式 | 噪声调度器类型 | normal适合大多数情况 |
| steps | steps | 整数 | 20 | 总共要执行多少步 | 采样总步数 | 20步平衡速度和质量 |
| denoise | denoise | 浮点数 | 1.0 | 去噪强度 | 去噪程度,1.0为完全去噪 | 通常保持1.0 |
3.4 IterativeMixingSchedulerAdvanced 节点 - 高级调度器
这是调度器的升级版,就像"精密时间管理员",可以更精确地控制每个阶段。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象 | 连接你的checkpoint模型 |
| scheduler | scheduler | 调度器列表 | normal | 选择时间调度方式 | 噪声调度器类型 | normal是默认选择 |
| steps | steps | 整数 | 20 | 总共要执行多少步 | 采样总步数 | 根据需要调整 |
| start_at_step | start_at_step | 整数 | 0 | 从第几步开始 | 起始步数 | 0表示从头开始 |
| end_at_step | end_at_step | 整数 | 10000 | 到第几步结束 | 结束步数 | 可以提前结束获得粗糙效果 |
| denoise | denoise | 浮点数 | 1.0 | 去噪强度 | 去噪程度 | 1.0为完全去噪 |
3.5 MixingMaskGeneratorNode 节点 - 遮罩生成器
这个节点就像一个"花纹制造机",专门生成各种花纹遮罩,用来控制哪些地方要处理,哪些地方不处理。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask_type | mask_type | 列表选择 | perlin | 选择遮罩的类型 | 遮罩生成算法类型 | perlin生成自然花纹,random是随机噪声 |
| perlin_scale | perlin_scale | 浮点数 | 10.0 | 花纹的大小 | Perlin噪声的缩放因子 | 值越小花纹越大,越大花纹越细 |
| seed | seed | 整数 | 0 | 随机种子 | 随机数生成种子 | 相同种子生成相同花纹 |
| width | width | 整数 | 512 | 遮罩宽度 | 生成遮罩的宽度像素 | 通常匹配你的图片宽度 |
| height | height | 整数 | 512 | 遮罩高度 | 生成遮罩的高度像素 | 通常匹配你的图片高度 |
| batch_size | batch_size | 整数 | 1 | 一次生成多少个遮罩 | 批次大小 | 根据需要生成多个不同的遮罩 |
3.6 IterativeMixingKSamplerAdv 节点 - 高级K采样器(已弃用)
这是一个老版本的采样器,现在不推荐使用,但仍然可以工作。就像"老式相机",虽然能用但效果不如新版本。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象 | 连接你的checkpoint模型 |
| seed | seed | 整数 | 0 | 随机种子 | 随机数生成种子 | 控制生成结果的随机性 |
| cfg | cfg | 浮点数 | 8.0 | 提示词遵循强度 | 分类器自由引导强度 | 值越高越遵循提示词 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择采样方式 | 采样算法类型 | euler最稳定 |
| scheduler | scheduler | 调度器列表 | normal | 选择时间调度方式 | 噪声调度器类型 | normal是默认选择 |
| positive | positive | CONDITIONING类型 | 必填 | 正面提示词 | 正向条件输入 | 连接你的正面提示词 |
| negative | negative | CONDITIONING类型 | 必填 | 负面提示词 | 负向条件输入 | 连接你的负面提示词 |
| latent_image_batch | latent_image_batch | LATENT类型 | 必填 | 噪声图片批次 | 来自BatchUnsampler的潜在图像批次 | 连接BatchUnsampler的输出 |
| denoise | denoise | 浮点数 | 1.0 | 去噪强度 | 去噪程度 | 1.0为完全去噪 |
| alpha_1 | alpha_1 | 浮点数 | 2.4 | 混合曲线参数 | 余弦混合调度的指数参数 | 控制混合的激进程度 |
| reverse_input_batch | reverse_input_batch | 布尔值 | True | 是否反转输入批次 | 是否反转噪声批次顺序 | 通常保持True |
| blending_schedule | blending_schedule | 列表选择 | cosine | 混合时间规律 | 混合调度函数类型 | cosine最自然 |
| stop_blending_at_pct | stop_blending_at_pct | 浮点数 | 1.0 | 停止混合的百分比 | 停止混合的步数百分比 | 1.0表示混合到最后 |
| clamp_blending_at_pct | clamp_blending_at_pct | 浮点数 | 1.0 | 限制混合的百分比 | 限制混合曲线的百分比位置 | 微调混合效果 |
| blending_function | blending_function | 列表选择 | addition | 混合数学方法 | 潜在空间混合函数 | addition简单,slerp更平滑 |
3.7 IterativeMixingKSamplerSimple 节点 - 简化K采样器(已弃用)
这是一个简化版的老式采样器,把噪声生成和采样合并在一个节点里。就像"一体机",方便但不够灵活。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 选择你要用的AI模型 | 扩散模型对象 | 连接你的checkpoint模型 |
| positive | positive | CONDITIONING类型 | 必填 | 正面提示词 | 正向条件输入 | 连接你的正面提示词 |
| negative | negative | CONDITIONING类型 | 必填 | 负面提示词 | 负向条件输入 | 连接你的负面提示词 |
| latent_image | latent_image | LATENT类型 | 必填 | 输入图片 | 输入的潜在空间图像 | 连接VAE编码后的图片 |
| seed | seed | 整数 | 0 | 随机种子 | 随机数生成种子 | 控制生成结果的随机性 |
| steps | steps | 整数 | 40 | 采样步数 | 采样总步数 | 40步平衡质量和速度 |
| cfg | cfg | 浮点数 | 8.0 | 提示词遵循强度 | 分类器自由引导强度 | 值越高越遵循提示词 |
| sampler_name | sampler_name | 采样器列表 | euler | 选择采样方式 | 采样算法类型 | euler最稳定 |
| scheduler | scheduler | 调度器列表 | normal | 选择时间调度方式 | 噪声调度器类型 | normal是默认选择 |
| denoise | denoise | 浮点数 | 1.0 | 去噪强度 | 去噪程度 | 1.0为完全去噪 |
| alpha_1 | alpha_1 | 浮点数 | 2.4 | 混合曲线参数 | 余弦混合调度的指数参数 | 控制混合的激进程度 |
| blending_schedule | blending_schedule | 列表选择 | cosine | 混合时间规律 | 混合调度函数类型 | cosine最自然 |
| blending_function | blending_function | 列表选择 | addition | 混合数学方法 | 潜在空间混合函数 | addition简单,slerp更平滑 |
| normalize_on_mean | normalize_on_mean | 布尔值 | False | 是否标准化 | 是否对输出进行均值标准化 | 已弃用功能,保持False |
3.8 LatentBatchStatisticsPlot 节点 - 数据分析图表
这个节点就像一个"体检报告生成器",它分析你的图片批次数据,生成统计图表,帮你了解数据质量。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| batch | batch | LATENT类型 | 必填 | 要分析的图片批次 | 输入的潜在空间图像批次 | 连接BatchUnsampler或其他批次输出 |
3.9 LatentBatchComparator 节点 - 批次对比器
这个节点就像一个"对比分析师",它把两组图片进行对比,生成相似度热力图,帮你看出差异。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| latent_batch_1 | latent_batch_1 | LATENT类型 | 必填 | 第一组要对比的图片 | 第一个潜在空间图像批次 | 连接第一个批次输出 |
| latent_batch_2 | latent_batch_2 | LATENT类型 | 必填 | 第二组要对比的图片 | 第二个潜在空间图像批次 | 连接第二个批次输出 |
4. 使用技巧和建议
4.1 基础使用流程
- 准备工作:先用普通方法生成一张512x512的图片
- 放大准备:用潜在空间放大节点(如NNLatentUpscale)把图片放大到1024x1024
- 生成噪声序列:用BatchUnsampler节点生成噪声序列
- 迭代混合:用IterativeMixingSampler配合SamplerCustom进行迭代混合
- 后处理:用低强度的普通采样器清理噪点
4.2 参数调优建议
alpha_1 参数调节:
- 0.5-1.0:温和混合,适合保持原图风格
- 1.0-3.0:平衡混合,大多数情况的最佳选择
- 3.0-5.0:激进混合,可能产生更多细节但也更多噪点
blending_schedule 选择:
- cosine:最自然的混合曲线,推荐首选
- linear:直线混合,效果更直接
- logistic:S型曲线,适合特殊需求
blending_function 选择:
- addition:简单相加,速度快
- slerp:球面插值,效果更平滑,推荐使用
- norm_only:仅调整方向,特殊效果
4.3 常见问题解决
问题1:生成的图片有颗粒感
- 降低alpha_1值到1.0-2.0之间
- 使用slerp混合函数
- 在最后加一个低强度(0.1-0.3)的普通采样器清理
问题2:放大效果不明显
- 检查是否正确连接了放大后的潜在图像
- 确保BatchUnsampler的steps设置合理(20-40)
- 尝试调高alpha_1值
问题3:处理速度太慢
- 减少BatchUnsampler的steps数量
- 关闭rewind功能
- 使用euler采样器而不是euler_perlin
5. 常见问题解答
Q:这个插件和普通的图片放大有什么区别?
A:普通放大只是简单地把像素变多,这个插件是用AI重新"想象"放大后的细节,所以效果更自然更清晰。
Q:为什么我的图片放大后还是很模糊?
A:可能是参数设置不当,试试调高alpha_1值,或者检查是否正确使用了潜在空间放大节点。
Q:可以一次放大4倍吗?
A:不建议。最好分两次,每次放大2倍,这样效果更好,也不容易出现奇怪的变形。
Q:哪些参数最重要?
A:alpha_1是最关键的参数,它控制混合强度。其次是blending_function,推荐用slerp。
Q:为什么有些节点标记为"已弃用"?
A:作者改进了算法,新版本效果更好。建议使用IterativeMixingSampler配合SamplerCustom的组合。
6. 高级技巧
6.1 配合ControlNet使用
- 用深度ControlNet保持结构一致性
- 用姿态ControlNet避免多手多脚问题
- 用边缘ControlNet保持轮廓清晰
6.2 配合IPAdapter使用
- 用IPAdapter保持风格一致性
- 可以在放大过程中微调风格
6.3 差分扩散应用
- 配合DifferentialDiffusion节点使用
- 可以实现局部精细控制
6.4 批量处理技巧
- 使用相同的seed可以获得一致的效果
- 调整batch_size可以同时处理多张图片
7. 总结
ComfyUI-Iterative-Mixer是一个功能强大的图像放大插件,它通过迭代混合技术实现了高质量的图像放大效果。虽然参数较多,但掌握核心参数(alpha_1、blending_function)就能获得不错的效果。
记住最重要的使用原则:
- 先用传统方法生成高质量的小图
- 用潜在空间放大节点进行初步放大
- 用这个插件进行细节增强
- 最后用低强度采样器清理噪点
这样的流程可以让你获得既清晰又自然的放大效果!