ComfyUI-sonar 插件完全新手教程
1. 插件简介
ComfyUI-sonar 是一个功能强大的 ComfyUI 插件,专门用来提供各种高级的图像生成控制功能。这个插件最初是为了实现 Sonar 采样(一种基于动量的采样方法)而开发的,后来发展成了一个"噪声工具箱"。
GitHub 原地址: https://github.com/blepping/ComfyUI-sonar
这个插件能给我们带来什么效果?
- 让图像生成更加稳定和可控,就像给汽车加了防抖系统
- 提供各种不同类型的噪声生成,就像调色板有了更多颜色选择
- 可以精确控制图像生成过程中的每个步骤,就像有了精密的温度控制器
- 支持高级的采样方法,让生成的图像质量更高、更符合预期
2. 如何安装
方法一:通过 ComfyUI Manager(推荐)
- 打开 ComfyUI,点击右侧的 "Manager" 按钮
- 在弹出的窗口中点击 "Install Custom Nodes"
- 搜索 "ComfyUI-sonar" 或直接搜索 "sonar"
- 找到对应插件后点击 "Install"
- 重启 ComfyUI 即可
方法二:手动安装
- 打开终端或命令行工具
- 进入你的 ComfyUI 安装目录下的
custom_nodes文件夹 - 运行命令:
git clone https://github.com/blepping/ComfyUI-sonar.git - 重启 ComfyUI
3. 节点详细解析
3.1 SonarSamplerEuler 节点
这个节点就像是一个智能的画笔控制器,它能记住之前的绘画动作并影响当前的绘画,让整个绘画过程更加流畅和连贯。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| direction | direction | -1.0 到 1.0 | 1.0 | 控制画笔的"偏好方向",就像调节画笔是往左偏还是往右偏 | 控制动量的方向性,正值为正向动量,负值为反向动量 | 通常用 1.0,如果想要特殊效果可以试试 -1.0 或 0.5 |
| momentum | momentum | 0.0 到 1.0 | 0.95 | 控制"记忆力"强度,数值越高越能记住之前的绘画动作 | 动量系数,控制历史信息对当前步骤的影响程度 | 建议保持在 0.85 以上,0.95 是很好的默认值 |
| momentum_hist | momentum_hist | 0.0 到 1.0 | 0.75 | 控制"记忆衰减",决定旧记忆多快被新记忆替换 | 历史动量的衰减系数,控制历史信息的保留程度 | 0.75 是平衡值,可以根据需要调整 |
| init_type | init_type | ZERO/RAND | ZERO | 决定开始时的"底色"类型,就像选择白纸还是有花纹的纸 | 初始化类型,决定动量历史的初始状态 | ZERO 更稳定,RAND 更有随机性 |
3.2 SonarSamplerEulerAncestral 节点
这个节点就像是上面那个智能画笔的"加强版",不仅能记住之前的动作,还会在每一步都加入一点点随机性,让画面更加生动自然。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| direction | direction | -1.0 到 1.0 | 1.0 | 控制画笔的"偏好方向",就像调节画笔是往左偏还是往右偏 | 控制动量的方向性,正值为正向动量,负值为反向动量 | 通常用 1.0,可以尝试不同数值获得不同效果 |
| momentum | momentum | 0.0 到 1.0 | 0.95 | 控制"记忆力"强度,数值越高越能记住之前的绘画动作 | 动量系数,控制历史信息对当前步骤的影响程度 | 建议保持在 0.85 以上 |
| momentum_hist | momentum_hist | 0.0 到 1.0 | 0.75 | 控制"记忆衰减",决定旧记忆多快被新记忆替换 | 历史动量的衰减系数,控制历史信息的保留程度 | 0.75 是平衡值 |
| init_type | init_type | ZERO/RAND | ZERO | 决定开始时的"底色"类型,就像选择白纸还是有花纹的纸 | 初始化类型,决定动量历史的初始状态 | ZERO 更稳定,RAND 更有随机性 |
3.3 SonarSamplerDPMPPSDE 节点
这个节点就像是一个更复杂的智能画笔,它使用了一种叫做 DPM++ SDE 的高级绘画技术,能够处理更复杂的绘画任务。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| direction | direction | -1.0 到 1.0 | 1.0 | 控制画笔的"偏好方向",就像调节画笔是往左偏还是往右偏 | 控制动量的方向性,正值为正向动量,负值为反向动量 | 这个采样器对极端值更宽容,可以尝试更大的范围 |
| momentum | momentum | 0.0 到 1.0 | 0.95 | 控制"记忆力"强度,数值越高越能记住之前的绘画动作 | 动量系数,控制历史信息对当前步骤的影响程度 | 建议保持在 0.85 以上 |
| momentum_hist | momentum_hist | 0.0 到 1.0 | 0.75 | 控制"记忆衰减",决定旧记忆多快被新记忆替换 | 历史动量的衰减系数,控制历史信息的保留程度 | 0.75 是平衡值 |
| init_type | init_type | ZERO/RAND | ZERO | 决定开始时的"底色"类型,就像选择白纸还是有花纹的纸 | 初始化类型,决定动量历史的初始状态 | 可以尝试不同的噪声类型 |
3.4 SonarGuidance 节点
这个节点就像是一个"参考图片助手",它能根据你提供的参考图片来指导图像生成过程,让生成的图片更接近你想要的效果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| guidance_type | guidance_type | euler/linear | euler | 选择"指导方式",就像选择是温和引导还是强制引导 | 指导算法类型,euler 更稳定,linear 更敏感 | euler 适合大多数情况,linear 适合精确控制 |
| guidance_factor | guidance_factor | 0.0 到 1.0 | 0.05 | 控制"指导强度",就像调节参考图片的影响力大小 | 指导系数,控制参考图像对生成过程的影响程度 | euler 用 0.01-0.1,linear 用 0.001-0.02 |
| start_step | start_step | 整数 | 1 | 决定从第几步开始使用指导,就像决定什么时候开始看参考图片 | 指导开始的步骤数,1 表示从第一步开始 | 可以设置为稍后开始,比如第 3 步 |
| end_step | end_step | 整数 | 9999 | 决定到第几步停止使用指导,就像决定什么时候不再看参考图片 | 指导结束的步骤数,9999 表示到最后 | 可以设置为较早结束,比如第 10 步 |
3.5 SonarCustomNoise 节点
这个节点就像是一个"噪声调色板",它能提供各种不同类型的噪声(就像各种不同的画笔纹理),让你的图像生成有更多变化。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| noise_type | noise_type | 多种选择 | gaussian | 选择"噪声口味",就像选择不同的画笔纹理 | 噪声类型,不同类型产生不同的随机性模式 | gaussian 是标准选择,可以尝试其他类型获得特殊效果 |
| seed | seed | 整数 | 随机 | 控制"随机种子",就像决定随机性的起始点 | 随机数种子,相同种子产生相同的噪声模式 | 固定种子可以复现结果,随机种子每次不同 |
3.6 SamplerConfigOverride 节点
这个节点就像是一个"高级设置面板",它能让你用文本的方式输入各种复杂的参数,就像在高级设置里调整各种细节。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| yaml_parameters | yaml_parameters | 文本 | 空 | 输入"高级配置代码",就像在配置文件里写设置 | YAML 格式的参数配置,可以覆盖节点的默认设置 | 例如:sonar_params:\n momentum_mode: new |
3.7 SonarNoisyLatentLike 节点
这个节点就像是一个"噪声生成器",它能根据你提供的图像尺寸和参数生成对应的噪声数据,为图像生成提供起始点。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| noise_type | noise_type | 多种选择 | gaussian | 选择"噪声口味",就像选择不同的画布纹理 | 噪声类型,决定生成的随机性模式 | gaussian 是标准选择,可以尝试其他类型 |
| seed | seed | 整数 | 随机 | 控制"随机种子",就像决定随机性的起始点 | 随机数种子,控制噪声的可重现性 | 固定种子可以复现结果 |
3.8 SonarSamplerNaive 节点
这个节点是一个"实验性的采样器",它提供了一些基础的 Sonar 采样功能,适合用来学习和实验。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| direction | direction | -1.0 到 1.0 | 1.0 | 控制画笔的"偏好方向",就像调节画笔是往左偏还是往右偏 | 控制动量的方向性,正值为正向动量,负值为反向动量 | 适合实验不同的方向值 |
| momentum | momentum | 0.0 到 1.0 | 0.95 | 控制"记忆力"强度,数值越高越能记住之前的绘画动作 | 动量系数,控制历史信息对当前步骤的影响程度 | 建议保持在 0.85 以上 |
3.9 SonarCustomNoiseToNoise 节点
这个节点就像是一个"格式转换器",它能将 Sonar 专用的噪声格式转换成 ComfyUI 标准的噪声格式,让不同的节点能够互相配合使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 无特殊参数 | 无 | 无 | 无 | 这个节点主要是做"翻译工作",不需要特殊设置 | 格式转换节点,将 SonarCustomNoise 转换为标准 NOISE 类型 | 直接连接即可使用 |
3.10 KRestartSamplerCustomNoise 节点
这个节点是一个"重启采样器",它能在采样过程中进行重启,配合自定义噪声使用,让图像生成更加灵活。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| restart_list | restart_list | 列表 | [0.1, 0.2] | 设置"重启时间点",就像在绘画过程中设置休息点 | 重启采样的时间点列表,控制重启的时机 | 例如:[0.1, 0.2] 表示在 10% 和 20% 进度时重启 |
4. 使用技巧和建议
4.1 新手入门建议
- 先从 SonarSamplerEulerAncestral 开始,它是最推荐的选择
- 保持 momentum 值在 0.85 以上,这是一个安全的范围
- direction 通常设置为 1.0,除非你想要特殊效果
- 如果觉得效果不够明显,可以尝试调整 momentum_hist 参数
4.2 高级使用技巧
- 使用 SonarGuidance 节点时,记住 linear 类型比 euler 类型更敏感
- 如果图像看起来模糊或洗白,可以尝试使用 BlehDiscardPenultimateSigma 节点
- 实验不同的噪声类型可能会带来意想不到的效果
- 可以通过 SamplerConfigOverride 节点进行更精细的控制
4.3 参数调节建议
- 保守设置:momentum=0.95, direction=1.0, momentum_hist=0.75
- 实验设置:momentum=0.90, direction=0.5, momentum_hist=0.85
- 极端设置:momentum=0.85, direction=-1.0, momentum_hist=0.95
5. 常见问题解答
Q1: 为什么使用 Sonar 采样器后图像质量没有明显提升?
A: 这可能是因为参数设置不当。建议先使用默认参数,然后逐步调整。确保 momentum 值不要低于 0.85。
Q2: 什么时候应该使用不同的采样器?
A:
- SonarSamplerEuler: 适合需要可预测结果的场景
- SonarSamplerEulerAncestral: 适合大多数情况,推荐首选
- SonarSamplerDPMPPSDE: 适合复杂场景和实验性用法
Q3: 如何选择合适的噪声类型?
A: 对于新手,建议从 gaussian(高斯噪声)开始,它是最标准和稳定的选择。如果想要特殊效果,可以尝试其他类型。
Q4: SonarGuidance 节点的参考图片应该如何准备?
A: 参考图片需要与生成图片的尺寸完全一致。图片应该清晰,且包含你希望在生成图片中看到的元素或风格。
Q5: 为什么有时候生成的图片与之前的不一致?
A: 这个插件还在开发中,版本更新可能会影响结果的一致性。如果需要完全一致的结果,建议记录使用的插件版本。
6. 总结
ComfyUI-sonar 插件是一个功能强大但相对复杂的工具。它最大的优势在于能够提供更稳定、更可控的图像生成过程。对于新手来说,建议从基础的 SonarSamplerEulerAncestral 节点开始,逐步熟悉各个参数的作用。
这个插件特别适合那些希望在图像生成过程中有更多控制权的用户。通过合理使用动量采样和各种噪声类型,你可以生成更加符合预期的高质量图像。
记住,最好的学习方法就是动手实践。不要害怕尝试不同的参数组合,每一次实验都会让你更好地理解这个插件的工作原理。