ComfyUI-BiRefNet-Super 插件完整使用教程
1. 插件简介
ComfyUI-BiRefNet-Super 插件(原地址:https://github.com/rubi-du/ComfyUI-BiRefNet-Super)是一个专门用来"抠图"的神器!就像我们用美图秀秀一键抠图一样,这个插件可以帮你把图片中的主体(比如人物、物体)从背景中完美分离出来。
插件主要功能:
- 自动去除图片背景,把主体完美抠出来
- 支持多种抠图方法,适应不同类型的图片
- 可以处理人像、物体、动物等各种主体
- 支持视频抠图处理
- 提供高精度的抠图效果
能给我们带来什么效果:
- 制作证件照换背景
- 电商产品图去背景
- 人物抠图制作合成图
- 视频绿幕效果处理
- 制作透明背景的PNG图片
2. 如何安装
方法一:Git 命令安装(推荐)
- 找到你的 ComfyUI 文件夹
- 进入
custom_nodes文件夹 - 在这里打开命令行窗口
- 输入以下命令:
git clone https://github.com/rubi-du/ComfyUI-BiRefNet-Super.git
cd ComfyUI-BiRefNet-Super
pip install -r requirements.txt
- 重启 ComfyUI
方法二:手动下载安装
- 访问 https://github.com/rubi-du/ComfyUI-BiRefNet-Super
- 点击绿色的 "Code" 按钮,选择 "Download ZIP"
- 解压到 ComfyUI 的
custom_nodes文件夹中 - 重启 ComfyUI
方法三:ComfyUI-Manager 安装
- 在 ComfyUI 界面中打开 ComfyUI-Manager
- 搜索 "ComfyUI-BiRefNet-Super"
- 点击安装
- 重启 ComfyUI
3. 节点详细解析
3.1 BiRefNet 节点 - 主要抠图工具
这个节点就像一个智能剪刀,可以自动识别图片中的主体并把它从背景中切出来。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | IMAGE类型 | - | 需要抠图的原始图片 | 输入待处理的图像数据 | 连接加载图片节点的输出 |
| 模型名称 | model_name | 下拉选择 | BiRefNet | 选择用哪个"大脑"来抠图 | 选择预训练的BiRefNet模型 | 人像用BiRefNet-portrait,通用用BiRefNet |
| 设备类型 | device | cpu/cuda | cuda | 用电脑的哪个部件来工作 | 选择CPU或GPU进行推理 | 有显卡选cuda,没有选cpu |
| CPU大小 | cpu_size | 数字 | 0 | 让电脑内存帮忙处理的比例 | 控制CPU内存使用量 | 显存不够时可以设置为1-4 |
| 本地模型 | load_local_model | true/false | false | 是否使用自己下载的模型 | 是否加载本地模型文件 | 有本地模型文件时设为true |
| 模型路径 | local_model_path | 文件路径 | 空 | 本地模型文件存放位置 | 本地模型文件的路径 | 如:models/birefnet/BiRefNet |
| 精度阈值 | mask_precision_threshold | 0.0-1.0 | 0.1 | 抠图精度的严格程度 | 控制遮罩精度的阈值 | 越小越精细,越大越粗糙 |
3.2 BiRefNet_onnx 节点 - 轻量级抠图工具
这个节点就像BiRefNet的精简版,运行更快,占用资源更少,适合日常使用。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | IMAGE类型 | - | 需要抠图的原始图片 | 输入待处理的图像数据 | 连接加载图片节点的输出 |
| 设备类型 | device | cpu/cuda | cpu | 用电脑的哪个部件来工作 | 选择CPU或GPU进行推理 | onnx模型建议用cpu |
| 模型名称 | model_name | 下拉选择 | birefnet-general | 选择用哪个"大脑"来抠图 | 选择ONNX格式的模型 | 通用选general,人像选portrait |
| 抠图方法 | cutout_func | putalpha/naive/alpha_matting | putalpha | 用什么方法把主体抠出来 | 选择前景分离算法 | putalpha效果最好,naive最快 |
| 前景阈值 | alpha_matting_foreground_threshold | 0-255 | 240 | 什么程度算是前景 | Alpha抠图前景像素阈值 | 越高越严格,只有很白的部分才算前景 |
| 背景阈值 | alpha_matting_background_threshold | 0-255 | 10 | 什么程度算是背景 | Alpha抠图背景像素阈值 | 越低越严格,只有很黑的部分才算背景 |
| 腐蚀大小 | alpha_matting_erode_size | 0-50 | 10 | 边缘处理的精细程度 | Alpha抠图腐蚀操作的大小 | 数字越大边缘越平滑 |
3.3 BiRefNet 模型加载节点 - 模型管理器
这个节点就像一个模型仓库管理员,负责加载和管理各种抠图模型。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型类型 | model_type | 下拉选择 | BiRefNet | 选择模型的种类 | 选择模型架构类型 | 不同类型适用不同场景 |
| 缓存模型 | cache_model | true/false | true | 是否记住已加载的模型 | 是否启用模型缓存 | 开启后切换模型更快 |
| 自动下载 | auto_download | true/false | true | 是否自动下载需要的模型 | 自动下载远程模型 | 首次使用建议开启 |
| 模型精度 | model_precision | fp16/fp32 | fp16 | 模型计算的精确度 | 模型数值精度 | fp16更快占用更少,fp32更准确 |
3.4 BiRefNet 批量处理节点 - 批量抠图工具
这个节点就像一个流水线工人,可以一次性处理多张图片,大大提高工作效率。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 图片列表 | images | IMAGE类型 | - | 需要批量处理的图片组 | 批量图像输入 | 连接多个图片或图片序列 |
| 批次大小 | batch_size | 1-16 | 4 | 一次处理几张图片 | 批处理的大小 | 显存大可以设置更大值 |
| 统一尺寸 | uniform_size | true/false | false | 是否把所有图片调整到相同大小 | 是否统一图像尺寸 | 批量处理时建议开启 |
| 输出格式 | output_format | png/jpg | png | 保存图片的格式 | 输出图像格式 | 抠图建议用png保持透明度 |
| 保存路径 | save_path | 文件路径 | 空 | 图片保存到哪个文件夹 | 批量保存的路径 | 如:output/batch_results |
3.5 BiRefNet 视频处理节点 - 视频抠图工具
这个节点就像一个视频编辑师,专门处理视频中的每一帧进行抠图。
3.5.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入视频 | video | VIDEO类型 | - | 需要抠图的视频文件 | 输入视频数据 | 连接视频加载节点 |
| 帧率处理 | frame_rate | 数字 | 30 | 每秒处理多少帧 | 视频帧率设置 | 根据原视频帧率设置 |
| 时间范围 | time_range | 时间段 | 全部 | 处理视频的哪个时间段 | 设置处理的时间范围 | 如:0-60s处理前1分钟 |
| 质量设置 | quality | 1-10 | 8 | 输出视频的质量等级 | 视频质量参数 | 越高质量越好但文件越大 |
| 抠图稳定性 | stability | 1-10 | 5 | 相邻帧之间的抠图一致性 | 时间稳定性参数 | 越高抠图效果越稳定 |
3.6 BiRefNet 后处理节点 - 抠图优化工具
这个节点就像一个图片美容师,专门优化和完善抠图效果。
3.6.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | image | IMAGE类型 | - | 已经抠好的图片 | 输入处理过的图像 | 连接BiRefNet节点的输出 |
| 输入遮罩 | mask | MASK类型 | - | 抠图的边界信息 | 输入遮罩数据 | 连接BiRefNet节点的mask输出 |
| 边缘平滑 | edge_smooth | 0-10 | 3 | 让抠图边缘更自然 | 边缘平滑程度 | 值越大边缘越柔和 |
| 羽化效果 | feather | 0-20 | 5 | 边缘虚化程度 | 边缘羽化像素数 | 让抠图边缘有渐变效果 |
| 去毛刺 | denoise | true/false | true | 是否去除抠图中的小杂点 | 是否进行去噪处理 | 开启后抠图更干净 |
| 填充空洞 | fill_holes | true/false | true | 是否填补抠图中的小洞 | 是否填充遮罩空洞 | 开启后抠图更完整 |
| 边缘扩展 | edge_expand | -5到5 | 0 | 让抠图边缘向外或向内扩展 | 边缘扩展像素数 | 正数扩大负数缩小 |
4. 使用技巧和建议
4.1 选择合适的模型
- BiRefNet-general: 适合各种类型的图片,是万能选手
- BiRefNet-portrait: 专门用于人像抠图,效果最好
- BiRefNet-lite: 轻量级版本,速度快但效果稍差
- BiRefNet-matting: 专业抠图,细节处理最好
4.2 优化抠图效果
- 图片质量越高,抠图效果越好
- 主体与背景对比度越大,抠图越准确
- 复杂背景建议先进行简单的预处理
- 头发丝等细节建议使用alpha_matting方法
4.3 提高处理速度
- 有独立显卡的用户建议选择 cuda 设备
- 批量处理时合理设置batch_size
- 使用onnx版本节点可以获得更快的速度
- 开启模型缓存可以减少重复加载时间
4.4 节省显存技巧
- 显存不足时可以设置cpu_size参数
- 使用fp16精度可以减少显存占用
- 降低batch_size可以减少内存使用
- 处理大图片时可以先缩小尺寸
5. 常见问题解答
Q1: 安装后找不到节点怎么办?
A: 检查是否正确安装了依赖包,重启ComfyUI,确认插件文件夹在custom_nodes目录中。
Q2: 抠图效果不好怎么办?
A: 尝试以下方法:
- 换用更适合的模型(人像用portrait模型)
- 调整mask_precision_threshold参数
- 使用alpha_matting抠图方法
- 对图片进行预处理提高对比度
Q3: 处理速度很慢怎么办?
A: 可以尝试:
- 使用onnx版本节点
- 选择cuda设备(需要有显卡)
- 降低图片分辨率
- 开启模型缓存
Q4: 显存不足错误怎么解决?
A: 可以:
- 设置cpu_size参数让CPU帮忙处理
- 使用fp16精度
- 降低batch_size
- 关闭其他占用显存的程序
Q5: 模型下载失败怎么办?
A: 可以:
- 检查网络连接
- 手动下载模型文件放到指定目录
- 设置load_local_model为true使用本地模型
6. 工作流程建议
6.1 基础抠图流程
- 加载图片 → BiRefNet节点 → 保存图片
- 适用于简单的抠图需求
6.2 高质量抠图流程
- 加载图片 → BiRefNet节点 → 后处理节点 → 保存图片
- 通过后处理优化抠图效果
6.3 批量处理流程
- 批量加载图片 → 批量处理节点 → 批量保存
- 适用于大量图片的批量处理
6.4 视频抠图流程
- 加载视频 → 视频处理节点 → 保存视频
- 用于视频中的抠图需求
7. 总结
ComfyUI-BiRefNet-Super 是一个功能强大的抠图插件,提供了多种节点来满足不同的抠图需求。通过合理搭配不同的节点和参数,可以实现高质量的抠图效果。建议新手从基础的BiRefNet节点开始学习,逐步尝试其他高级功能。
记住:抠图质量主要取决于原图质量和参数设置,多尝试不同的参数组合,找到最适合你图片的设置方案!