抠图(背景移除)工具,支持本地模型和在线 API 双模式,自动选择最优方案。
> 默认优先使用统一入口:scripts/run_bg_removal.py
> 标准抠图 / 发丝精修 / 定向提取 / BRIA 超精度尽量都走这一个脚本。
> 若需求是“放大 / 锐化 / 增强”,则走 scripts/upscale_image.py / scripts/sharpen_image.py / scripts/enhance_image.py。
从用户消息中提取:
_no_bg.png)batch_summary.md + batch_summary.json,把成功/失败清单一起交付支持图片格式:.png, .jpg, .jpeg, .webp, .bmp
三档精度选择:
| 精度档位 | 脚本 | 适用场景 | 速度 |
|---|---|---|---|
| --------- | ------ | --------- | ------ |
| 🟢 标准 | remove_bg.py | 纯色/清晰边缘、LOGO、商品 | 快 |
| 🎯 精修 | refine_matting.py | 发丝、毛绒、纱、烟雾、复杂边缘 | 中 |
| 🚀 超精度 | remove_bg_bria.py | 角色立绘、复杂服饰、边缘干净度优先 | 慢 |
何时用精修:
何时用超精度(BRIA):
处理来源优先级:
1. BRIA 已授权且用户要求极致边缘? → 用 BRIA
2. 需要发丝/半透明? → 用 pymatting 精修
3. 普通抠图? → 用 rembg 标准
4. 本地都不可用 + 有 API Key? → 调在线 API
5. 以上都不可用? → 提示安装或授权
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
-c "import rembg; print('rembg available')" 2>/dev/null && echo "OK"
若输出 OK 则本地可用。
> 注意:系统 /usr/bin/python3 依赖 Xcode 工具链(未安装时无法使用)。
> 必须使用 managed venv 下的 python3 路径。
检查环境变量(按优先级):
REMOVE_BG_API_KEY — Remove.bg API(通用)CLIPDROP_API_KEY — Clipdrop API(通用,高精度)TENCENT_SECRET_ID + TENCENT_SECRET_KEY — 腾讯云(仅人像)references/api_config.mdrun_bg_removal.py# 普通抠图(默认标准模式)
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/run_bg_removal.py <input_path> [output_path]
# 发丝精修
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/run_bg_removal.py <input_path> [output_path] --quality refine
# 超精度(BRIA,失败自动降级)
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/run_bg_removal.py <input_path> [output_path] --quality best
# 单独抠右边角色 / 左边角色 / 中间角色
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/run_bg_removal.py <input_path> [output_path] --subject right
# 整个目录批量抠右边角色
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/run_bg_removal.py <input_dir> <output_dir> --batch --subject right
自然语言 → 参数映射:
--quality refine--quality best--subject right|left|center--subject ...,必要时补 --subject-models birefnet-portrait,birefnet-general,u2net# 单张
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg.py <input_path> [output_path]
# 批量
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg.py <input_dir> <output_dir> --batch
# 或直接使用 rembg CLI(已安装于 managed venv)
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/rembg i \
-o <output_path> <input_path>
scripts/remove_bg.py 是核心脚本,自动下载所需模型(首次运行)。
默认模型:birefnet-general-v3(通用高精度),人像场景自动切换 u2net_human_seg。
# 全图精修
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/refine_matting.py <input_path> [output_path] \
--model birefnet-portrait \
--kernel 15 \
--method cf
# 发丝特别多 → 把 kernel 加大(例如 20)
# 追求速度 → --method knn
# 调试模式 → --debug(保存中间 mask/trimap)
原理(给调用者的认知模型):
rembg 语义分割 → 只输出 0/1 硬边缘(发丝被一刀切)
↓
trimap 生成:前景核心(255) + 未知区(128) + 背景(0)
↓
pymatting Closed-form / KNN Matting → 求解 alpha 值
↓
连续 0~255 的透明度 → 发丝、纱、烟雾的半透明细节全部保留
参数调优指南:
--kernel 10:发丝少(短发、商品)--kernel 15:正常人像(默认推荐)--kernel 20-25:长发飘逸、毛发丰富--method cf:精度优先(默认,适合静态高质量输出)--method knn:速度优先(效果略差,批量用)模型选择(--model):
birefnet-portrait:人像、卡通角色 ⭐ 默认推荐birefnet-general:通用物体birefnet-massive:最高精度,最慢birefnet-general-lite:轻量快速适用场景:
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/extract_target_subject.py <input_path> [output_path] \
--target right \
--models birefnet-portrait,birefnet-general
策略:
portrait 模型:主体边缘更干净
+
general 模型:更容易识别武器/头饰/飘带等附件
↓
对目标侧主体做多模型 alpha 融合
↓
输出单独角色 PNG(比单模型少漏件)
推荐参数:
--target right|left|center:提取目标方位--models birefnet-portrait,birefnet-general:默认推荐组合--models birefnet-portrait,birefnet-general,u2net:附件特别多时再加 u2net--max-gap 140:允许把与主体近邻的离散附件并入--debug:保存各模型 mask 和融合结果,定位为什么漏件> 经验:动漫/游戏海报不要只用 birefnet-portrait,它容易把远离身体的武器和头饰忽略;至少和 birefnet-general 融一次。
# 单张
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_bria.py <input_path> [output_path]
# 批量
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_bria.py <input_dir> <output_dir> --batch
# 调试:若想强制只测 BRIA、不允许回退
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_bria.py <input_path> [output_path] --no-fallback
自动回退策略:
BRIA 可用 → 直接输出超精度结果
BRIA 下载/授权失败 → 自动回退到方式 A+(refine_matting.py)
精修也失败 → 自动回退到方式 A(remove_bg.py)
注意:
briaai/RMBG-2.0https://huggingface.co/briaai/RMBG-2.0/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_api.py <input_path> [output_path] --api remove_bg
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_api.py <input_path> [output_path] --api tencent
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/remove_bg_api.py <input_path> [output_path] --api clipdrop
申请 Key:发邮件到 contact@clipdrop.co(注册送 100 credits 一次性)。
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/upscale_image.py <input_path> [output_path] \
--scale 2 \
--mode illustration
--scale 2:默认推荐,适合抠图后 PNG--scale 4:小图素材、头像、立绘二次处理--mode illustration:角色图 / 二次元 / 游戏海报 ⭐ 默认--mode photo:写实照片--mode lineart:线稿 / UI 图标 / 矢量风截图/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/sharpen_image.py <input_path> [output_path] \
--preset medium
light:轻锐化,安全保守medium:默认推荐strong:线条更利,但容易过冲,适合插画和游戏角色/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
scripts/enhance_image.py <input_path> [output_path] \
--scale 2 \
--mode illustration \
--preset light
自然语言 → 参数映射:
upscale_image.py --scale 2 --mode illustrationsharpen_image.py --preset mediumenhance_image.py --scale 2 --preset lightenhance_image.py --scale 2 --mode illustration --preset lightsharpen_image.py --preset strongbatch_summary.md:人类可读报告batch_summary.json:机器可读清单bria / fallback-refine / fallback-standard)所有依赖已安装在 managed venv 中:
/Users/dayviwang/.workbuddy/binaries/python/envs/default/
├── rembg[cpu] # 语义分割
├── pymatting # Alpha Matting 精修(发丝级)
├── numba / scipy # matting 加速与图像处理
├── torch / torchvision # BRIA 推理
├── transformers / kornia # BRIA 模型加载与预处理
└── pillow # 放大 / 锐化 / PNG 处理
验证:
/Users/dayviwang/.workbuddy/binaries/python/envs/default/bin/python3 \
-c "import rembg, pymatting, scipy, torch, torchvision, kornia, transformers; print('all ready')"
首次跑 refine_matting.py 时若缺模型,rembg 会自动下载到 ~/.u2net/(已预先下载完成)。
首次跑 remove_bg_bria.py 时会尝试下载 briaai/RMBG-2.0,但 需要先在 Hugging Face 登录并同意模型条款。
> 如需在其他环境重新安装:
> ```bash
> /Users/dayviwang/.workbuddy/binaries/python/versions/3.13.12/bin/python3 \
> -m pip install "rembg[cpu]" pymatting numba scipy pillow torch torchvision kornia transformers safetensors
> ```
在 ~/.workbuddy/skills/bg-removal/references/api_config.md 查看各平台 API Key 申请方式。
配置方式(写入 shell profile 或 .env):
export REMOVE_BG_API_KEY="your_key_here"
bg-removal-sharpen/
├── SKILL.md # 本文件
├── scripts/
│ ├── run_bg_removal.py # 🎛️ 抠图统一入口(标准 / 精修 / 定向提取 / BRIA)
│ ├── remove_bg.py # 标准抠图(rembg 粗分割)
│ ├── refine_matting.py # 🎯 发丝级精修(rembg + pymatting)
│ ├── extract_target_subject.py # 🧩 多主体角色定向提取(补回武器/头绳/飘带)
│ ├── remove_bg_bria.py # 🚀 BRIA RMBG-2.0 本地超精度模式
│ ├── upscale_image.py # 🔍 本地图片放大
│ ├── sharpen_image.py # ✨ 本地图片锐化
│ ├── enhance_image.py # 🪄 放大 + 锐化一体增强
│ ├── enhance_common.py # 公共增强工具函数
│ └── remove_bg_api.py # 在线 API 调用(Remove.bg / 腾讯云 / Clipdrop)
├── references/
│ └── api_config.md # API Key 申请指南
└── assets/ # 预留(示例图片等)
共 1 个版本