ComfyUI HiFORCE 插件完全使用指南
1. 插件简介
ComfyUI HiFORCE 插件是由 HiFORCE 团队开发的一个强大的图像增强插件包。这个插件的GitHub原地址是:https://github.com/hiforce/comfyui-hiforce-plugin
这个插件能干什么?
- 就像给你的图像处理工具箱里加了一套高级装备
- 帮你更方便地生成图片,就像把原本需要很多步骤的事情变成一键操作
- 让你能够循环优化图片,就像反复修改一幅画直到满意为止
- 提供了更智能的图片放大和遮罩处理功能
能带来什么效果?
- 图片生成过程更加稳定和可控
- 可以实现渐进式的图片优化
- 更精细的图片局部处理
- 更高效的图片放大处理
2. 如何安装
方法一:手动安装(推荐新手)
- 打开你的 ComfyUI 安装文件夹
- 找到
custom_nodes文件夹(这就像是插件的专门存放地) - 在这个文件夹里打开命令行工具(Windows用户可以在地址栏输入
cmd后按回车) - 输入以下命令:
git clone https://github.com/hiforce/comfyui-hiforce-plugin.git
cd comfyui-hiforce-plugin
pip install -r requirements.txt
方法二:通过 ComfyUI Manager 安装
- 在 ComfyUI 界面中找到 Manager 按钮
- 点击 "Install Custom Nodes"
- 搜索 "HiFORCE"
- 点击安装
重要提醒: 这个插件需要先安装 ComfyUI-Impact-Pack,就像盖房子需要先打地基一样。
3. 节点详细解析
3.1 Basic Sampler(基础采样器)
这个节点是干嘛的?
这就像是一个改进版的图片生成器,比ComfyUI自带的生成器多了一个"完整绘制"的选项,让你能更好地控制图片的生成过程。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | 模型对象 | 无 | 就像选择哪个画家来画画 | 指定用于生成的扩散模型 | 连接你加载的模型节点 |
| 正面提示词 | positive | 文本 | 无 | 告诉画家你想要什么样的画 | 正向提示词,描述想要的内容 | 输入"beautiful landscape" |
| 负面提示词 | negative | 文本 | 无 | 告诉画家你不想要什么 | 负向提示词,描述不想要的内容 | 输入"blurry, dark" |
| 种子 | seed | 整数 | -1 | 就像画家的灵感来源编号 | 随机种子,控制生成的随机性 | 设置为42获得可重复结果 |
| 步数 | steps | 整数 | 20 | 画家要画多少遍才完成 | 扩散步数,影响生成质量 | 20-50之间比较好 |
| 引导强度 | cfg | 浮点数 | 7.0 | 画家听你话的程度 | 分类器自由引导强度 | 7.0是标准值,越大越听话 |
| 采样器 | sampler_name | 字符串 | euler | 画家的作画方式 | 采样算法的选择 | euler或dpm++适合新手 |
| 调度器 | scheduler | 字符串 | normal | 画家的作画节奏 | 噪声调度器类型 | normal适合大多数情况 |
| 潜在图像 | latent_image | 潜在对象 | 无 | 画布的初始状态 | 输入的潜在空间图像 | 连接Empty Latent Image |
| 完整绘制 | full_drawing | 布尔值 | true | 是否要画完整的图 | 是否进行完整的去噪过程 | true表示完整生成 |
3.2 Loopback Sampler(循环采样器)
这个节点是干嘛的?
这就像是一个会反复修改画作的画家,每次都会根据上一次的结果来改进,让图片质量逐步提升。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | 模型对象 | 无 | 选择哪个画家 | 扩散模型 | 连接模型节点 |
| 正面提示词 | positive | 文本 | 无 | 你想要的效果 | 正向提示词 | 描述想要的内容 |
| 负面提示词 | negative | 文本 | 无 | 你不想要的效果 | 负向提示词 | 描述不想要的内容 |
| 种子 | seed | 整数 | -1 | 随机数起点 | 随机种子 | 固定种子获得一致结果 |
| 步数 | steps | 整数 | 20 | 每轮处理的细致程度 | 每次循环的采样步数 | 10-30比较合适 |
| 引导强度 | cfg | 浮点数 | 7.0 | 听话程度 | 分类器自由引导强度 | 保持7.0即可 |
| 采样器 | sampler_name | 字符串 | euler | 处理方式 | 采样算法 | euler或dpm++都行 |
| 调度器 | scheduler | 字符串 | normal | 处理节奏 | 噪声调度器 | normal是标准选择 |
| 潜在图像 | latent_image | 潜在对象 | 无 | 初始画布 | 输入的潜在图像 | 连接图像源 |
| 循环次数 | loops | 整数 | 3 | 要重复处理几次 | 循环优化的次数 | 3-5次效果比较好 |
| 强度变化 | denoise_schedule | 浮点数列表 | [0.8,0.6,0.4] | 每次修改的力度 | 每次循环的去噪强度 | 递减效果更自然 |
3.3 HfTwoSamplersForMask(双采样器遮罩处理)
这个节点是干嘛的?
这就像是有两个专业画家,一个负责画前景,一个负责画背景,还能通过遮罩来控制哪个画家画哪个部分。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 启用开关 | enable | 布尔值 | true | 是否要使用这个功能 | 控制节点是否执行 | false时直接跳过处理 |
| 基础模型 | base_model | 模型对象 | 无 | 主画家 | 基础扩散模型 | 连接主要使用的模型 |
| 精修模型 | refiner_model | 模型对象 | 无 | 专门修饰的画家 | 精修扩散模型 | 连接细节处理模型 |
| 正面提示词 | positive | 文本 | 无 | 想要的效果 | 正向提示词 | 描述期望内容 |
| 负面提示词 | negative | 文本 | 无 | 不想要的效果 | 负向提示词 | 描述避免内容 |
| 遮罩 | mask | 遮罩对象 | 无 | 画布上的保护膜 | 指定处理区域的遮罩 | 白色区域会被处理 |
| 种子 | seed | 整数 | -1 | 随机起点 | 随机种子 | 固定值获得一致结果 |
| 基础步数 | base_steps | 整数 | 20 | 主画家工作次数 | 基础模型采样步数 | 15-25比较合适 |
| 精修步数 | refiner_steps | 整数 | 10 | 修饰画家工作次数 | 精修模型采样步数 | 5-15即可 |
| 引导强度 | cfg | 浮点数 | 7.0 | 听话程度 | 分类器自由引导强度 | 保持默认值 |
| 采样器 | sampler_name | 字符串 | euler | 工作方式 | 采样算法 | euler或dpm++都行 |
| 调度器 | scheduler | 字符串 | normal | 工作节奏 | 噪声调度器 | normal是标准选择 |
| 潜在图像 | latent_image | 潜在对象 | 无 | 初始画布 | 输入的潜在图像 | 连接图像源 |
3.4 HfTwoStepSamplers(两步采样器)
这个节点是干嘛的?
这就像是一个两阶段的绘画过程,先用一种方式打草稿,再用另一种方式精修,每个阶段都可以用不同的工具和遮罩。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 第一阶段模型 | first_model | 模型对象 | 无 | 打草稿的画家 | 第一阶段使用的模型 | 连接主要模型 |
| 第二阶段模型 | second_model | 模型对象 | 无 | 精修的画家 | 第二阶段使用的模型 | 连接精修模型 |
| 正面提示词 | positive | 文本 | 无 | 想要的效果 | 正向提示词 | 描述期望内容 |
| 负面提示词 | negative | 文本 | 无 | 不想要的效果 | 负向提示词 | 描述避免内容 |
| 第一阶段遮罩 | first_mask | 遮罩对象 | 无 | 草稿阶段的作画区域 | 第一阶段处理区域 | 指定初步处理区域 |
| 第二阶段遮罩 | second_mask | 遮罩对象 | 无 | 精修阶段的作画区域 | 第二阶段处理区域 | 指定精修处理区域 |
| 种子 | seed | 整数 | -1 | 随机起点 | 随机种子 | 固定值获得一致结果 |
| 第一阶段步数 | first_steps | 整数 | 15 | 草稿阶段工作量 | 第一阶段采样步数 | 10-20比较合适 |
| 第二阶段步数 | second_steps | 整数 | 10 | 精修阶段工作量 | 第二阶段采样步数 | 5-15即可 |
| 引导强度 | cfg | 浮点数 | 7.0 | 听话程度 | 分类器自由引导强度 | 保持默认值 |
| 第一阶段采样器 | first_sampler | 字符串 | euler | 草稿阶段工作方式 | 第一阶段采样算法 | euler适合快速生成 |
| 第二阶段采样器 | second_sampler | 字符串 | dpm++ | 精修阶段工作方式 | 第二阶段采样算法 | dpm++适合精细处理 |
| 调度器 | scheduler | 字符串 | normal | 工作节奏 | 噪声调度器 | normal是标准选择 |
| 潜在图像 | latent_image | 潜在对象 | 无 | 初始画布 | 输入的潜在图像 | 连接图像源 |
3.5 HfIterativeLatentUpscale(迭代潜在放大)
这个节点是干嘛的?
这就像是一个专业的照片放大师,能够逐步放大图片而不损失细节,就像用放大镜一层层地看清楚图片的每个部分。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 启用开关 | enable | 布尔值 | true | 是否要使用放大功能 | 控制节点是否执行 | false时直接跳过处理 |
| 样本 | samples | 潜在对象 | 无 | 要放大的图片 | 输入的潜在图像 | 连接图像源 |
| 放大方法 | upscale_method | 字符串 | nearest-exact | 放大的方式 | 上采样算法 | nearest-exact保持清晰 |
| 放大倍数 | scale_by | 浮点数 | 1.5 | 每次放大多少倍 | 每次迭代的放大倍数 | 1.25-2.0比较合适 |
| 迭代次数 | steps | 整数 | 3 | 要放大几次 | 迭代放大的次数 | 2-4次效果较好 |
| 临时放大倍数 | temp_scale | 浮点数 | 1.0 | 临时处理时的倍数 | 临时处理的放大倍数 | 通常保持1.0 |
| 使用临时放大 | use_temp_scale | 布尔值 | false | 是否使用临时放大 | 是否启用临时放大功能 | 一般保持false |
3.6 各种开关输入节点
这些节点是干嘛的?
这些就像是遥控器上的按钮,让你能够快速切换不同的设置,而不用重新连线。
3.6.1 采样器开关(Sampler Switch)
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 选择器 | switch | 整数 | 1 | 选择使用哪个采样器 | 切换不同的采样器输入 | 1选择第一个,2选择第二个 |
| 采样器A | sampler_a | 字符串 | euler | 第一个选择 | 第一个采样器选项 | 输入"euler" |
| 采样器B | sampler_b | 字符串 | dpm++ | 第二个选择 | 第二个采样器选项 | 输入"dpm++" |
3.6.2 调度器开关(Scheduler Switch)
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 选择器 | switch | 整数 | 1 | 选择使用哪个调度器 | 切换不同的调度器输入 | 1选择第一个,2选择第二个 |
| 调度器A | scheduler_a | 字符串 | normal | 第一个选择 | 第一个调度器选项 | 输入"normal" |
| 调度器B | scheduler_b | 字符串 | karras | 第二个选择 | 第二个调度器选项 | 输入"karras" |
3.6.3 模型开关(Model Switch)
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 选择器 | switch | 整数 | 1 | 选择使用哪个模型 | 切换不同的模型输入 | 1选择第一个,2选择第二个 |
| 模型A | model_a | 模型对象 | 无 | 第一个模型选择 | 第一个模型输入 | 连接主要模型 |
| 模型B | model_b | 模型对象 | 无 | 第二个模型选择 | 第二个模型输入 | 连接备用模型 |
4. 使用技巧和建议
4.1 新手入门建议
- 先从Basic Sampler开始:这是最容易上手的节点,就像学开车要先学自动挡一样
- 保持默认设置:刚开始不要随意改动参数,就像新手司机先按规矩开车
- 逐步实验:每次只改一个参数,看看效果如何,就像做菜时一样调味料
4.2 进阶使用技巧
-
组合使用节点:
- Basic Sampler + Loopback Sampler = 先生成基础图片,再循环优化
- HfTwoSamplersForMask + HfIterativeLatentUpscale = 先局部处理,再整体放大
-
参数调优经验:
- 循环次数不要太多(3-5次即可),就像炒菜不要翻动太频繁
- 放大倍数保持在1.25-2.0之间,就像放大照片不要一次性放太大
- 启用开关要善用,就像电器的开关,不用时及时关闭
-
性能优化:
- 合理使用启用开关,避免不必要的计算
- 调整步数平衡质量和速度
- 监控显存使用情况
4.3 常见搭配方案
-
基础图片生成流程:
模型加载 → Basic Sampler → 图片解码 → 保存 -
高质量循环优化流程:
模型加载 → Basic Sampler → Loopback Sampler → 图片解码 → 保存 -
局部精修流程:
模型加载 → HfTwoSamplersForMask → 图片解码 → 保存 -
高分辨率生成流程:
模型加载 → Basic Sampler → HfIterativeLatentUpscale → 图片解码 → 保存
5. 常见问题解答
5.1 安装相关问题
Q:安装时提示缺少依赖怎么办?
A:确保你已经安装了ComfyUI-Impact-Pack,这就像盖房子需要先有地基一样。
Q:插件装好了但是找不到节点?
A:重启ComfyUI,就像电脑卡了需要重启一样。
5.2 使用相关问题
Q:为什么启用开关设置为false,节点还在工作?
A:检查你的连接线路,可能有其他路径在工作,就像水管有多个开关一样。
Q:循环采样器生成的图片质量越来越差?
A:减少循环次数或者调整强度变化参数,就像煮汤不能一直加热一样。
Q:放大后图片变模糊了?
A:尝试调整放大方法或者减少放大倍数,就像放大镜倍数太高反而看不清一样。
5.3 性能相关问题
Q:处理速度很慢怎么办?
A:
- 减少步数设置
- 关闭不必要的启用开关
- 降低放大倍数
- 就像开车时减少不必要的操作一样
Q:显存不够用怎么办?
A:
- 减少同时处理的图片数量
- 降低图片分辨率
- 关闭部分高级功能
- 就像房间太小需要减少家具一样
6. 总结
ComfyUI HiFORCE 插件就像是给你的图片处理工具箱增加了一套专业设备。通过这些节点,你可以:
- 更精确地控制图片生成过程
- 实现渐进式的图片优化
- 进行高质量的图片放大
- 灵活地切换不同的处理方式
记住,熟能生巧,多多实践才能掌握这些工具的精髓。就像学习任何新技能一样,从简单开始,逐步进阶,最终你会发现这个插件能够帮你创造出令人惊艳的图片作品。
最后的小贴士:保存好你的工作流程,就像保存菜谱一样,这样下次就能快速重现好的效果了!