- AI

ComfyUI 抠图横向对比 & 设计师操作指南

设计师用 ComfyUI 系列之抠图篇

ComfyUI 抠图横向对比 & 设计师操作指南

对设计师来说,抠图可能是日常最高频的操作之一了。虽然 Photoshop 现在处理选区越来越智能化,但借助 AI 的力量,我们能否进一步提升效率呢?

测试参照:Photoshop 选择主体的可用性

Photoshop 现在抠图已经非常方便,大部分时候只要「选择主体」,就能一键搞定,但如果对精度有要求,很多时候仍需要手动处理,尤其是在主体与背景反差不够明显的情况下。

比如我们在网上找一张刘亦菲的照片:

图片来自网络,如侵权请联系删除
图片来自网络,如侵权请联系删除

尝试用 Photoshop 选择主体:

选择主体得到的结果
选择主体得到的结果

结果足以令人满意,如果要求不高,简单处理一下选区就可以直接用了。当然,需要优化的地方仍旧存在,比如右肩的曲线,放大之后坑坑洼洼,曲线不够流畅,但手动处理一下也不会太麻烦。

放大之后明显可以看出细节的瑕疵
放大之后明显可以看出细节的瑕疵

如果我们给 Photoshop 上点强度,另外再找一张主体与背景暧昧不分明的照片,Photoshop 还能从容应对吗?

图片来自网络,如侵权请联系删除
图片来自网络,如侵权请联系删除

一望而知,这张图的边缘非常难处理。我们试着把图片导入 Photoshop,选择主体,得到的结果是这样的:

地狱的难度,魔鬼的结果……
地狱的难度,魔鬼的结果……

结果实在有些魔幻。如果我们尝试用 ComfyUI 来处理这张图,能否做得更好呢?

主流去背模型横向比较

AI 近两年的发展速度非常快,但目前的主流去背模型,可能还是如下几个:

相关节点很多,我们可以用 ComfyUI-RMBG 这样的去背专用节点,也可以用 ComfyUI-Easy-Use 这样的整合节点包,只要能调用对应的模型就行。

以 ComfyUI-RMBG 为例,节点安装之后,需要将相关模型下载到 ComfyUI/models/RMBG/ 文件夹。如果你希望下载所有模型,可以参照官方文档:

  • 首次使用自定义节点时,模型会自动下载到 ComfyUI/models/RMBG/
  • 通过此链接手动下载 RMBG-2.0 模型,然后放在 /ComfyUI/models/RMBG/RMBG-2.0 文件夹中。
  • 通过此链接手动下载 INSPYRENET 模型,然后放在 /ComfyUI/models/RMBG/INSPYRENET 文件夹中。
  • 通过此链接手动下载 BEN 模型,然后放在 /ComfyUI/models/RMBG/BEN 文件夹中。
  • 通过此链接手动下载 BEN2 模型,然后放在 /ComfyUI/models/RMBG/BEN2 文件夹中。
  • 通过此链接手动下载 BiRefNet-HR,然后放在 /ComfyUI/models/RMBG/BiRefNet-HR 文件夹中。
  • 通过此链接手动下载 SAM 模型,然后放在 /ComfyUI/models/SAM 文件夹中。
  • 通过此链接手动下载 GroundingDINO 模型,然后放在 /ComfyUI/models/grounding-dino 文件夹中。
  • 通过此链接手动下载 Clothes Segment 模型,然后放在 /ComfyUI/models/RMBG/segformer_clothes 文件夹中。
  • 通过此链接手动下载 Fashion Segment 模型,然后放在 /ComfyUI/models/RMBG/segformer_fashion 文件夹中。
  • 通过此链接手动下载 BiRefNet 模型,然后放在 /ComfyUI/models/RMBG/BiRefNet 文件夹中。

如果你懒得逐个下载,也没有翻墙的渠道,这里也有听雨老师整合的夸克网盘合集,包含所有模型在内:https://pan.quark.cn/s/5b9cf77ddf2c

我们快速建立一个横向对比工作流:

基于 ComfyUI-RMBG 建立的去背工作流
基于 ComfyUI-RMBG 建立的去背工作流

下方同步输出 Mask 遮罩,方便导入 Photoshop 后续处理。

在没有调整任何参数的情况下,结果如下:

包括 Photoshop 在内的结果对比
包括 Photoshop 在内的结果对比

你可以在图片上右键点击「在新标签页中打开图片」,来查看原图的细节。个人观感,RMBG-2.0 效果最好,BiRefNet 与 Photoshop 次之。

我们继续提升难度,找一张衣服是半透材质的照片来测试一下,原图如下:

图片来自网络,如侵权请联系删除
图片来自网络,如侵权请联系删除

结果很遗憾……包括 Photoshop 在内,暂时还没有 AI 能准确地识别面纱这种半透明材质应该如何从背景中分离出来,还是得靠设计界的非物质文化遗产通道抠图大法?

半透明材质处理结果的横向对比
半透明材质处理结果的横向对比

事到如今,我们对终极考验的结果已经变得不那么乐观,但测试成本又不高,试一下又何妨?最终的测试结果如下:

终极测试横向对比
终极测试横向对比

别说,RMBG-2.0 的处理结果还不错,比 Photoshop 强得多,其次是 BEN2。

追加 BiRefNet 子模型测试

BiRefNet 还有好几个子模型,下载了其中一部分,同样测试一遍作为参考:

BiRefNet 子模型去背结果参考
BiRefNet 子模型去背结果参考

需要注意,追加的测试都将 mask_offset 设置为了 -5,偏移的数值越低,抠图的半径越大下手越重,反之则保留的区域越多。在调试几次之后,对半透明区域的处理普遍有所提升。

另一张图的处理结果对比
另一张图的处理结果对比

这张图因为反差比较低,偏移值不好控制,全部设置为零,可见 BiRefNet-dynamic 的处理结果与 RMBG-2.0 是比较接近的。

ComfyUI-RMBG 批处理抠图

在 ComfyUI 中,批量处理并非难事。我们可以先用单张图片测试,确定哪个模型的效果最好,经过前面的一番比较,个人觉得 RMBG-2.0 的效果更突出,那么就以 RMBG-2.0 为例,建立新的批处理工作流,这是一个非常简单的工作流:

批量抠图工作流
批量抠图工作流

复制需要处理的文件夹路径,比如我的电脑上的某个文件夹有八张照片,复制其路径,粘贴至 Batch Load Image 的 path 变量中。注意,此节点需要安装 comfyui-mixlab-nodes

需要批处理的文件夹
需要批处理的文件夹

mask_offset 调整为 -2,运行工作流,片刻之后就得到抠图的结果:

批量抠图的结果
批量抠图的结果

ComfyUI-RMBG 还有一些附加功能,比如衣物分割、面部分割等等,顾名思义,就是在画面中提取指定的元素,在 Flux Kontext 炙手可热的当下,已经没有多大的意义,可以略过。

Flux Kontext 抠图尝试

我们都知道 Flux Kontext 最擅长的就是保持某部分不变而改变其他部分,比如刘亦菲的第一张照片,我们输入以下提示词:

Character remain unchanged, change the background to gorgeous palace

然后我们就得到宫殿里的刘亦菲,虽然有哪里似乎不一样了……

In a gorgeous palace.
In a gorgeous palace.

我们还可以尝试维持背景不变,但让角色转身背对我们:

Maintain the background as is; the character is facing away from the audience

于是我们就得到了:

魔法时刻!
魔法时刻!

等等,这个发型好像不太对,面部线条好像也不是一个人!但 Flux Kontext 还是基本理解了咱们的意图。总之,Flux Kontext 不完美,但已经很强大,我们尝试让背景变个色:

Character remain unchanged, change the background color to red

于是背景就变成了红色:

红色背景
红色背景

这个效果是不是已经很接近抠图了?那我们能否直接将背景转换成透明呢?

Character remain unchanged, change the background color to transparent

答案是否定的,Flux Kontext 并不会为我们输出一张透明的 PNG 图片。

Flux Kontext 理解的 transaprent
Flux Kontext 理解的 transaprent

但即便是这样退一步要求,Flux Kontext 也不能替代专门的抠图节点,因为它有时候会错误理解你的意图,比如这两张照片的处理结果:

背景变成红色
背景变成红色

这张的背景改色基本成功,但裙摆的范围被大幅削减了。

背景变成蓝色
背景变成蓝色

这张我想的是红色衣服,为了方便导入 Photoshop 后续抠图,那背景肯定要换成反差大的蓝色,结果 Flux Kontext 直接给我整体换成了蓝色,囧RZ……

毕竟术业有专攻,目前 AI 抠图还是考虑 ComfyUI-RMBG 这样的专精节点就好。