跳转到内容

ComfyUI自动生成抠图素材

💡

我为什么学习使用 ComfyUI :

  • 更接近 SD 的底层工作原理,在更靠近一朵鲜花的地方,才能闻到它的芳
  • 自动化工作流(我也用 webui ,虽然很好,但我觉得 ComfyUI 更符合AI的精神,即消灭重复性工作)
  • 作为一个强大的可视化后端工具,可以实现 SD 之外的功能,如调用 api 及本文所讲的内容等
  • 可根据定制需求开发节点或模块

Hi,大家好,我是金属文。我制作这个工作流的动机是

  • 我的工作室经常需要一些抠图素材,用做海报、推文、短视频等用途
  • 传统的搜集抠图素材途径无非是网站下载、付费购买、自己PS。要么花钱,要么花时间,还不能根据自己的需求定制素材
  • 近期在github上看到一个名为 ComfyI2I 的项目,其中包含了丰富的蒙版处理节点

于是我基于 ComfyI2I 创建了这个 ComfyUI 工作流,不仅可以用作绿幕素材的抠图,还可以自动生成定制需求的抠图素材,全程只需要几秒,太香了!

先来看下效果:

下面我将分享创建整个工作流的思路以及详细步骤讲解

话不多说,开始干货教程

一、准备工作

安装 ComfyUI

这里不赘述了,新手可以参考【ComfyUI】本地部署ComfyUI上手指南,我就喜欢连连看

安装 ComfyI2I 模组

这是一组 img2img 的自定义节点集合,让你可以在 ComfyUI 上自由的进行绘画,并提供对蒙版的多种操作,如提取颜色、模糊边缘、控制颜色传递的强度、伽玛、对比度和亮度等。(又是感恩开源的一天❤)

项目地址:https://github.com/ManglerFTW/ComfyI2I

三种安装方式:

  • 我们进入项目,复制项目地址,然后打开 ComfyUI 的 Manager,点击 install via git url ,将项目地址粘贴上去,点确定,就自动安装了
  • 或直接下载项目的 zip 文件,解压放到 ComfyUI 根目录下的 custom_nodes 文件夹
  • 或在 custom_nodes 文件夹中打开 CMD 或 powershell 命令行,输入git clone https://github.com/ManglerFTW/ComfyI2I.git ,亦可

安装好后,别忘了重启一下 ComfyUI

二、创建工作流

此工作流包含两个组:生成绿幕素材 绿幕素材抠图

我为什么这么做?因为 SD 无法直接生成透明背景的png图片,所以要先生成一张素材图,前景是我们最重要的主体素材,背景是纯色(方便识别),既然要抠图,背景当然得是绿幕(不然怎么不叫白幕、黑幕),最后再把前景素材从背景中抠出来。道理听起来很简单

我把工作流文件放上来,大家可以下载拖入 ComfyUI 中自动加载工作流,然后对照本文进行学习 工作流链接:https://pan.quark.cn/s/01eae57419ce 提取码:KxgB

生成绿幕素材

首先加载默认文生图工作流,根据需要添加lora节点

我们要生成绿幕背景的素材,思路是:在绿幕上进行局部重绘

准备一张绿幕背景图,RGB为<0,255,0>,尺寸根据自己需要设置,我设置为512*768(匹配SD1.5模型)

将 empty latent image 节点删掉,加载 load image 节点,上传绿幕图

右键点击 load image 节点,进入蒙版编辑器绘制蒙版,点击保存(蒙版画出主体大致轮廓即可,不用特别精细)

然后我们要把绿幕和蒙版输入潜空间重绘,所以加载 vae encode for inpainting 节点,grow mask by 值适当高点

下面是正反提示词部分

由于最终输出的图片包含“主体”和“绿幕背景”两个部分,所以我们需要两个正向提示词节点(clip text encode prompt),一个填写“主体”描述,一个填写“green background”。并使用 conditioning concat 节点进行串联后发送到采样器,这样可以对两部分语义进行分隔。

反向提示词正常写,为了最终抠图效果,我们希望尽量避免出现绿色、阴影,把 green,shadow 加进去即可

最后连接好所有节点,选择好模型,设置采样器参数

跑图测试一下,完美

你还可以用这个工作流来训练一个绿幕lora

绿幕素材抠图

这个部分需要用到 ComfyI2I 的一些节点,思路是通过拾色器识别绿幕,为素材主体生成蒙版,再把绿幕切除掉,这样就得到了一张透明背景的 png 抠图素材

首先加载 image select color 节点,左侧与上个部分的 vae deconde 节点相连,RGB 设置为<0,255,0>,容差(variance)尽量高一些,设置为100

可以在右侧连上 preview image 节点预览,灵活调整容差值

然后把拾取颜色的图片转换为蒙版,添加 convert image to mask 节点,channel 设置为 green,左侧与 image select color 相连,右侧添加 mask ops 节点,这是一个非常实用的蒙版处理工具,我们主要设置4个参数:

channel(通道):green

shrink_grow(收缩范围):3-10

invert(将蒙版从绿幕反转为主体,0为不反转):1

blur_radius(羽化半径):0-2

shrink_grow 和 blur_radius 可以根据素材灵活调整

然后我们将 mask ops 节点右侧的 mask_image 连接 cut by mask 节点,将蒙版外的部分切除,最后 cut by mask 右侧连接 save image 节点,就大功告成了!

你也可以 image select color 节点左侧替换为 load image 节点,上传任一张绿幕素材进行抠图

现在你可以搭配上个工作流,愉快的抽卡了!

💡

工作流迭代改进点:

  1. 训练绿幕lora,生成更纯净的绿幕素材
  2. 对非绿幕的正常图片进行抠图

欢迎大家多交流,多提意见!

🧑关于我

👋Hi!我是金属文。一个AI探索者,希望我们能在自我提升之路上作伴。

🌐8年互联网运营

📱AIGC博主&重度使用者

👪奇点Group丨AIGC社群群主

💼曾任百度feed业务地区负责人

♏天蝎座

🧙ENFJ

🎸摇滚乐与🪐科技爱好者