前言:

学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、局部重绘、控制人群、发型设计、更换模特服饰等。在ComfyUI的进阶之路上,ComfyUI Impact是每个人不可绕过的一条大河,所以本篇文章将带领大家理解并学会使用这些节点。祝大家学习顺利,早日成为ComfyUI的高手!

目录

一、安装方式

二、NoiselnjectionDetailerHookProvider节点

三、DenoiseSchedulerDetailerHookProvider节点

四、UnsamplerDetailerHookProvider节点

五、Switch (Any) / Inversed Switch(Any)节点

六、DetailerHookCombine节点

七、MaskDetailer (pipe)节点

八、示例工作流

一、安装方式

方法一:通过ComfyUI Manager安装(推荐)

打开Manager界面



方法二:使用git clone命令安装

在ComfyUI/custom_nodes目录下输入cmd按回车进入电脑终端

在终端输入下面这行代码开始下载

git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack

二、NoiselnjectionDetailerHookProvider节点

该节点专注于在图像处理过程中注入噪声,以帮助改善细节处理效果。这种方法可以在某些情况下提高图像的质量和真实感,特别是在处理低质量图像或需要增强细节的应用中。

参数:

schedule_for_cycle → 控制注入开始的时机,from_start表示从第一个循环开始注入噪声,skip_start表示跳过第一个循环的噪声注入

source → 噪声的来源,可选GPU和CPU

seed → 生成噪声的随机数种子

control_after_generate → 控制随机数种子的变更方式

start_strength → 初始的噪声注入量

end_strength → 结束时的噪声注入量

注意:随着噪声注入的进行,噪声的强度从start_strength逐渐增加或减小到end_strength。这样可以实现噪声强度随时间或步骤的平滑过渡。

输出:

DETAILER_HOOK → 经过噪声注入处理后的样本数据

注意:NoiselnjectionDetailerHookProvider节点使用时需要安装ComfyUI_Noise,因为该节点内部使用了BNK_InjectionBoise。当系统提示以下类似的界面时(可能根据浏览器的不同而不一样),点击确定自动安装并重启ComfyUI即可。

示例:

注意事项

· 噪声类型和强度:根据具体需求选择适当的噪声类型和强度,避免过度注入噪声导致图像质量下降。

· 处理性能:噪声注入和细化处理可能需要较高的计算资源,确保系统性能足够支持处理需求。

· 图像质量:监控处理后的图像质量,确保噪声注入带来的细节增强效果符合预期。

通过使用NoiselnjectionDetailerHookProvider节点,可以在图像处理工作流程中实现有效的噪声注入和细化处理,提升图像的细节表现和整体质量。

三、DenoiseSchedulerDetailerHookProvider节点

该节点专注于在图像处理过程中调度噪声去除操作,以帮助改善图像的细节处理效果。这种方法可以有效地减少图像中的噪声,同时保留和增强图像的细节。

参数:

schedule_for_cycle → 控制注入开始的时机

target_denoise → 目标去噪值,即希望模型在扩散过程中逐渐达到的去噪值

输出:

DETAILER_HOOK → 经过处理后的样本数据

注意:当循环次数等于1时,该节点将不起作用!

示例:

注意事项

· 去噪强度和策略:根据具体需求选择适当的去噪强度和调度策略,避免过度去噪导致细节丢失。

· 处理性能:去噪和细化处理可能需要较高的计算资源,确保系统性能足够支持处理需求。

· 图像质量监控:监控处理后的图像质量,确保去噪带来的细节增强效果符合预期。

通过使用DenoiseSchedulerDetailerHookProvider节点,可以在图像处理工作流程中实现有效的噪声去除和细化处理,提升图像的细节表现和整体质量。

四、UnsamplerDetailerHookProvider节点

该节点专注于在图像处理过程中进行反采样操作,以恢复图像细节并进行优化处理。这种方法可以在图像放大、超分辨率、去模糊等应用中提升图像质量。

输入:

model → 输入大模型

positive → 正向提示词

negative → 反向提示词

注意:这里的正反向提示词是输入需要移除的元素,比如我想要突出“干净”这个元素,那我就应该在正向提示词里输入“脏”这类的提示词,反向提示词原理类似。

参数:

steps → 总步数

start_end_at_step → 开始的步数即从总步数的第几步开始采样还原

end_end_at_step → 结束的步数即从总步数的第几步结束采用还原

cfg → 提示词引导系数,即提示词对结果产生影响的大小 过高会产生负面影响

sampler_name → 选择采样器(推荐使用节点默认的采样器)

scheduler → 选择调度器

normalize → 是否进行标准化处理 schedule_for_cycle → 控制采样还原操作的开始时机

输出:

DETAILER_HOOK → 经过处理后的样本数据

示例:

注意事项

· 反采样倍率:根据具体需求选择适当的反采样倍率,以获得最佳的细节恢复效果。

· 细化强度:调整细化处理的强度,避免过度细化导致的图像伪影或失真。

· 处理性能:反采样和细化处理可能需要较高的计算资源,确保系统性能足够支持处理需求。

· 图像质量监控:监控处理后的图像质量,确保反采样和细化处理带来的效果符合预期。

通过使用UnsamplerDetailerHookProvider节点,用户可以在图像处理工作流程中实现有效的反采样和细化处理,提升图像的细节表现和整体质量。

五、Switch (Any) / Inversed Switch(Any)节点

这俩节点用于在工作流中控制数据流的路由。它们允许用户根据条件动态地切换数据路径,适用于需要灵活控制数据流向的场景。

输入:

input1 → 输入数据

注意:这个两个节点可以转换任意类型的数据,数据类型通过连接输入的第一根线确定。

参数:

select → 可选择的输入参数 最小值为1,最大值为999999

sel_mode → 确定select参数的时刻,select_on_prompt表示在队列提示时确定,select_on_execution表示在工作流执行时确定

注意:在使用select_on_prompt时,select只能与队列提示中确定的部件或原始节点一起使用。

输出:

selected_value → 根据选定的输入参数确定的输入参数值

selected_label → 根据选定的输入参数确定的标签 如果找不到标签,则使用参数名作为标签

selected_index → 选择的索引,即传入的 select 参数的值

output1 → 根据选择的输入参数输出转换后的值

示例:



注意事项

· 条件配置:确保条件配置正确,以便Switch (Any)和Inversed Switch (Any)节点能够根据预期逻辑选择和分配数据路径。

· 数据一致性:确保输入和输出数据格式一致,以便各节点可以正确处理和传递数据。

· 处理性能:根据具体需求调整处理节点的配置,确保系统性能足够支持动态数据选择和分配需求。

通过使用Switch (Any)和Inversed Switch (Any)节点,可以在图像处理工作流程中实现灵活的动态数据流控制,提升工作流程的灵活性和效率。

六、DetailerHookCombine节点

该节点专注于将来自多个细化处理节点的结果进行合并。通过合并不同的细化处理结果,可以在一个节点中整合多种细化效果,提升图像的整体质量。

输入:

hook1 → 需要整合的第一个Detailer_Hook数据

hook2 → 需要整合的第二个Detailer_Hook数据

输出:

DETAILER_HOOK → 整合后的Detailer_Hook数据

注意:这里整合是将这两个Detailer_Hook数据各自实现的功能合并起来一起实现,而不是生成一个具有新功能的Detailer_Hook数据。

注意事项

· 输入数据质量:确保输入的细化处理结果质量良好,以获得最佳的合并效果。

· 合并参数配置:根据具体需求配置合并参数,以实现最佳的综合细化效果。

· 处理性能:合并多个细化处理结果可能需要较高的计算资源,确保系统性能足够支持处理需求。

通过使用DetailerHookCombine节点,可以在图像处理工作流程中实现多个细化处理结果的有效整合,提升图像的整体质量和细节表现。

七、MaskDetailer (pipe)节点

该节点专注于对基于掩码的图像部分进行细化处理。通过使用掩码,可以精准地选择图像中的特定区域进行优化,而不影响其他部分。

输入:

image → 输入图像

mask → 蒙板区域

basic_pipe → basic管道,包含了model、clip、vae、positive、negative等信息

refiner_basic_pipe_opt → refiner模型的basic管道,包含了refiner的model、clip、vae、positive、negative等信息

detailer_hook → 细节调整参数

参数:

guide_size → 参考尺寸 小于的目标图像被放大以匹配,而大于的图像将被跳过,因为它们不需要细节处理

guide_size_for → 设置guide_size基于什么 当设置为bbox时,它使用检测器检测到的bbox的边界框作为参考;当设置为crop_region时,它使用基于检测到的bbox所识别的裁剪区域作为参考

max_size → 最大尺寸 将目标图像的最长边限制为小于max_size的安全措施,它解决了bbox可能变得过大的问题,特别是如果它有细长的形状

mask_mode → 掩码在细化处理中的应用方式

seed → 内置KSampler的种子

control_after_generate → 蒙板模式,用于指示在细节增强过程中是仅对掩膜内部进行处理还是对整个图像进行处理。

steps → 去噪步数(也可以理解成生成图片的步数)

cfg → 提示词引导系数,即提示词对结果产生影响的大小 过高会产生负面影响

sampler_name → 选择采样器

scheduler → 选择调度器

denoise → 去噪幅度 值越大对图片产生的影响和变化越大

feather → 羽化的大小

crop_factor → 裁剪因子,用于裁剪图像

drop_size → 降低尺寸,用于控制细节增强过程中的图像降低尺寸的大小

refiner_ratio → 使用SDXL时,设置要refiner模型的功能在总进程中所占的比例。

batch_size → 设置潜空间数量

cycle → 采样的迭代次数 **当与Detailer_hook一起使用时,此选项允许添加间歇性噪声,也可用于逐渐减小去噪大小,最初建立基本结构,然后对其进行细化。

inpaint_model → 修补模型,用于控制是否启用图像修补模型

noise_mask_feather → 噪声蒙板羽化,用于控制噪声蒙板的羽化程度

注意:noise_mask_feather不能保证图像更自然,同时它可能会在边缘产生伪影,大家按需设置!

输出:

image → 重绘后的图像

cropped_refined → 使用refiner模型后的裁剪后的图像

ropped_enhanced_alpha → 经过裁剪处理后重绘图像的Alpha通道

basic_pipe → basic管道,包含了model、clip、vae、positive、negative等信息 当多个MaskDetailer (pipe)节点连续使用时方便节点的连接

refiner_basic_pipe_opt → refiner模型的basic管道,包含了refiner的model、clip、vae、positive、negative等信息 当多个MaskDetailer (pipe)节点连续使用时方便节点的连接

注意事项

· 掩码质量:确保输入的掩码数据准确,以获得最佳的细化处理效果。

· 细化参数配置:根据具体需求配置细化处理的参数,以实现最佳的图像优化效果。

· 处理性能:细化处理可能需要较高的计算资源,确保系统性能足够支持处理需求。

· 输入数据格式:确保图像和掩码的数据格式一致,以便MaskDetailer (pipe)节点能够正确处理和传递数据。

通过使用MaskDetailer (pipe)节点,可以在图像处理工作流程中实现对特定区域的有效细化处理,提升图像的整体质量和细节表现。

八、示例工作流

熟练使用以上节点,你就可以搭建一个简单的“脸部修复”的工作流了。

该工作流囊括了这篇文章学习的所有节点,将该工作流学习一遍,会对上面所学的节点有一个更深层次的理解。该工作流实现了钢铁侠胸甲的细节增强。主要思路就是加载图片,并在图片中画上胸甲的蒙板,将图片和蒙板一并输入到MaskDetailer (pipe)节点中进行胸甲的重绘,同时加入了一系列控制噪声的Detailer Hook节点来进行重绘时噪声的精细把控,实现更好的出图效果。图中三张结果图,第一张为加载的原图,第二张为仅使用MaskDetailer (pipe)节点的图,第三张为加入控制噪声的Detailer Hook节点的图,可以看到,从左到右图片的质量是递增的,所以在我们进行局部修复是,加入控制噪声的Detailer Hook节点可以增强出图质量。上述的三张图的原图如下(从左到右):





孜孜以求,方能超越自我。坚持不懈,乃是成功关键。

ComfyUI插件:ComfyUI Impact 节点(三)的更多相关文章

  1. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2340661.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  2. [Unity插件]Lua行为树(三):组合节点Sequence

    Sequence的继承关系如下: Sequence->Composite->ParentTask->Task 上一篇已经实现了简单版本的ParentTask和Task(基于Behav ...

  3. 为maven插件设置参数的三种方法

    很多的maven插件都提供了丰富的可选参数,用户可以通过设置特定的参数值来控制maven插件的行为.设置插件参数的方法主要有三种,分别是命令行设置,POM文件中为插件设置全局参数和POM文件中为插件设 ...

  4. Ztree插件,定位节点时(focus)不能进入可视区域BUG解决方案

    相关插件版本: jquery.ztree.exedit-3.4.js jquery.ztree.all-3.4.js jquery-1.8.0.js function onAsyncSuccess(e ...

  5. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)

    本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习. GameplayAbilities插件 ...

  6. Jstree 使用CheckBox插件 选中父节点时被禁用的子节点也会选中问题

    问题描述: 最近用jstree遇到一个问题,使用CheckBox插件时,当父节点选中时,被禁用的子节点也会选中如下 解决方案: 1.  将jstree升级到最新的版本,v3.3.4及以上就可以 2. ...

  7. Unity给力插件之ShaderForge(三)

    地形模型材质: 使用Unity自带的地形会出现一些问题,所以我尽量使用手工制作的模型来制作地形.而地形又需要只使用一个材质球,于是在此制作一个简单的Shader. 效果图: 注意: 1.颜色遮罩的图片 ...

  8. WordPress插件制作笔记(三)---Stars Comments Article

    wp 文章星级评价 插件 下载地址4:http://pan.baidu.com/s/1eQnGIGU [articles_star_vote_score_optiontable_serialize_c ...

  9. jenkins插件安装与升级[三]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 默认的插件 Folders Plugin OWASP Markup Form ...

  10. Mybatis插件原理分析(三)分页插件

    在Mybatis中插件最经常使用的是作为分页插件,接下来我们通过实现Interceptor来完成一个分页插件. 虽然Mybatis也提供了分页操作,通过在sqlSession的接口函数中设置RowBo ...

随机推荐

  1. android端http请求重发问题定位过程

    昨天生产系统上报出一个问题:用户做一次扫码交易,出现了两条交易记录.幸好支付渠道对支付码有限制只成功了一笔,没有出现多扣钱的问题.现在我们要排查一下,为什么做一次操作会出现两条交易记录.我们的后台服务 ...

  2. Visual Studio编程效率提升技巧集(提高.NET编程效率)

    前言 本文大姚将为你介绍一些Visual Studio的使用技巧和建议,旨在帮助.NET开发者更加高效地利用Visual Studio进行编程工作.无论你是.NET初学者还是经验丰富的.NET开发者, ...

  3. 异构数据源同步之数据同步 → DataX 使用细节

    开心一刻 中午我妈微信给我消息 妈:儿子啊,妈电话欠费了,能帮妈充个话费吗 我:妈,我知道了,我帮你充 当我帮我妈把话费充好,正准备回微信的时候,我妈微信给我发消息了 妈:等会儿子,不用充了,刚刚有个 ...

  4. webpack externals忽略不打入的包

    例如项目中使用从 CDN 引入 jQuery,而不是把它打包进来使用 import $ from 'jquery' webpack.config.js externals: { jquery: 'jQ ...

  5. ABC347题解

    省流:输+赢 D 按位分析. 既然两个数异或后的结果是 \(C\),那就考虑 \(C\) 中为 \(1\) 的数中有几个是在 \(X\) 当中的. 假如 \(\text{a - popcnt(X) = ...

  6. windows 命令行调整分辨率

    windows 命令行调整分辨率 下载:qres_v1.1 https://abcker.lanzouq.com/i1uzA1a5uo8j 解压出来,如:D:\Soft\QRes,不要使用中文名目录. ...

  7. vs code 中开发 .net5 mvc

    asp.net core mvc ------------ 安装vscode-solution-explorer,C# 2个扩展.遇到yes就点yes. 新建一个文件夹:D:\repos\Net5Mv ...

  8. 使用shell脚本在Linux中管理Java应用程序

    目录 前言 一.目录结构 二.脚本实现 1. 脚本内容 2. 使用说明 2.1 配置脚本 2.2 脚本部署 2.3 操作你的Java应用 总结 前言 在日常开发和运维工作中,管理基于Java的应用程序 ...

  9. 非空处理 Java非空判断 非空处理及mysql数据库字段的not null

    1.mysql## 去掉非空,如果非空又没有默认值,这样程序在添加数据的时候i,如果没有设置值就会报错.该操作很危险.##ALTER TABLE `order_test` ADD COLUMN `te ...

  10. C# Linq.FirstOrDefault、Linq.Where、Linq.AsParallel、List.Exists、List.Find、Dictionar.TryGetValue、HashSet.Contains 性能的比较

    今天我们来比较一下集合检索方法性能更优问题,测试代码 public class Entity { public int Id { get; set; } public int No { get; se ...