Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add wyq09/bg-remover
Or install specific skill: npx add-skill https://github.com/wyq09/bg-remover
# Description
智能图片背景移除工具。当用户请求「去除图片背景」「抠图」「移除背景」「生成透明背景图片」或类似需求时使用。支持上传图片后自动识别主体并去除背景,生成带透明通道的PNG图片。
# SKILL.md
name: bg-remover
description: 智能图片背景移除工具。当用户请求「去除图片背景」「抠图」「移除背景」「生成透明背景图片」或类似需求时使用。支持上传图片后自动识别主体并去除背景,生成带透明通道的PNG图片。
author: wuyiqun
license: MIT
图片背景移除 Skill
环境要求与自动修复
环境要求
- Python 3.8 或更高版本
- pip(Python 包管理器)
- rembg 库
一键自动修复环境
重要:首次使用前,请先运行环境修复脚本!
macOS / Linux:
cd ~/.claude/skills/bg-remover
./install.sh
Windows (PowerShell):
cd ~/.claude/skills/bg-remover
.\install.ps1
脚本会自动:
1. 检查 Python 版本(需 3.8+)
2. 检查并安装 pip
3. 检查并安装 rembg 库
4. 测试 rembg 功能是否正常
自动环境检查
当用户使用此 skill 时,如果检测到环境不符合要求,系统会自动运行修复脚本。
环境检查清单:
- [ ] Python 3.8+ 已安装
- [ ] pip 可用
- [ ] rembg 库已安装并可正常导入
使用场景
当用户请求以下任何操作时,使用此 skill:
- 去除图片背景
- 抠图
- 移除图片背景
- 生成透明背景图片
- 图片背景变透明
- 抠出图片中的人物/物体
- 制作证件照(去除背景)
- 产品图去背景
工作流程
1. 接收用户输入
用户可能提供:
- 本地图片文件路径
- 图片 URL
- 直接上传的图片文件
2. 处理图片背景移除
根据可用资源,选择以下方法之一:
方法 A:使用 remove.bg API(推荐)
如果用户有 remove.bg API 密钥:
from removebg import RemoveBg
import os
# 初始化
removebg = RemoveBg("YOUR_API_KEY", "error.log")
# 处理图片
removebg.remove_background_from_img_file("input.jpg")
# 输出:input_no_bg.png
方法 B:使用 rembg 库(本地处理)
使用开源的 rembg 库进行本地处理:
from rembg import remove
from PIL import Image
# 读取图片
input_path = "input.jpg"
output_path = "output.png"
# 处理
with open(input_path, "rb") as input_file:
input_data = input_file.read()
output_data = remove(input_data)
# 保存结果
with open(output_path, "wb") as output_file:
output_file.write(output_data)
方法 C:使用在线服务
可以使用以下在线服务:
- remove.bg
- PhotoRoom API
- Clipdrop (Remove Background)
- Adobe Firefly
3. 输出结果
向用户提供:
- 处理后的透明背景 PNG 图片
- 对比预览(原图 vs 处理后)
- 图片保存路径或下载链接
安装依赖
# 使用 rembg(推荐,免费本地处理)
pip install rembg[gpu] # GPU 加速版本
# 或
pip install rembg # CPU 版本
# 使用 remove.bg API
pip install removebg
# 使用 rembg 命令行工具
pip install rembg-cli
使用示例
示例 1:基本抠图
用户输入:
帮我去除这张图片的背景:photo.jpg
处理步骤:
1. 读取图片文件
2. 使用 rembg 去除背景
3. 保存为 PNG 格式
4. 显示处理结果
示例 2:批量处理
用户输入:
把这个文件夹里的所有图片都去除背景
处理步骤:
1. 扫描文件夹中的所有图片
2. 逐个处理
3. 保存到输出文件夹
示例 3:URL 图片处理
用户输入:
去除这张图片的背景:https://example.com/image.jpg
处理步骤:
1. 下载图片
2. 处理背景
3. 返回结果
命令行使用(rembg)
# 基本用法
rembg i input.jpg output.png
# 处理整个文件夹
rembg p input_folder/ output_folder/
# 使用不同的 AI 模型
rembg i input.jpg output.png -m u2netp # 轻量级模型
rembg i input.jpg output.png -m u2net # 标准模型(默认)
rembg i input.jpg output.png -m silueta # 人像专用
# 添加 alpha matting(边缘优化)
rembg i input.jpg output.png -a
可用模型
rembg 支持以下模型:
- u2net:通用模型(默认),适合大多数场景
- u2netp:轻量级模型,速度快
- u2net_human_seg:人像分割专用
- silueta:人像专用模型
- isnet-general-use:新的通用模型
注意事项
- 输入格式:支持 JPG、PNG、WebP 等常见格式
- 输出格式:始终输出 PNG 格式(支持透明通道)
- 图片质量:输入图片分辨率越高,抠图效果越好
- 复杂背景:复杂背景可能需要手动后期调整
- 边缘处理:对于精细物体(如头发),可以使用 alpha matting 优化
高级选项
Alpha Matting(边缘优化)
对于边缘复杂的图片,启用 alpha matting 可以获得更好的边缘效果:
from rembg import remove, new_session
session = new_session("u2net", alpha_matting=True,
alpha_matting_foreground_threshold=240,
alpha_matting_background_threshold=10,
alpha_matting_erode_size=10)
返回遮罩
如果只需要获取遮罩而非去除背景的图片:
from rembg import remove
import io
input_data = open("input.jpg", "rb").read()
# only_mask=True 只返回遮罩
output_data = remove(input_data, only_mask=True)
错误处理
常见问题及解决方案:
- 内存不足:使用轻量级模型
u2netp或缩小图片尺寸 - 处理速度慢:使用 GPU 版本或轻量级模型
- 边缘效果不佳:启用 alpha matting
- 识别不准确:尝试不同的模型
最佳实践
- 选择合适的模型(人像用人像模型,通用用 u2net)
- 根据需求在速度和质量间选择(u2netp 快但精度略低,u2net 慢但精度高)
- 对重要图片使用 alpha matting 优化边缘
- 批量处理时考虑使用轻量级模型提高效率
# README.md
bg-remover
智能图片背景移除工具,支持上传图片后自动去除背景,生成透明背景的 PNG 图片。适用于证件照、产品图、头像等各种场景。
功能特性
- 自动识别并去除图片背景
- 生成带透明通道的 PNG 图片
- 支持多种输入格式(JPG、PNG、WebP 等)
- 支持批量处理
- 多种 AI 模型可选
- 边缘优化(Alpha Matting)
- 完全本地处理,保护隐私
安装
前置要求
- Python 3.8 或更高版本
安装依赖
# CPU 版本(推荐)
pip install rembg
# GPU 加速版本(需要 CUDA)
pip install rembg[gpu]
# 命令行工具
pip install rembg-cli
使用方法
命令行使用
# 基本用法
rembg i input.jpg output.png
# 处理整个文件夹
rembg p input_folder/ output_folder/
# 使用不同模型
rembg i input.jpg output.png -m u2netp # 轻量级模型
rembg i input.jpg output.png -m u2net # 标准模型(默认)
rembg i input.jpg output.png -m silueta # 人像专用
# 边缘优化
rembg i input.jpg output.png -a
Python 代码使用
from rembg import remove
# 读取图片
with open('input.jpg', 'rb') as f:
input_data = f.read()
# 去除背景
output_data = remove(input_data)
# 保存结果
with open('output.png', 'wb') as f:
f.write(output_data)
使用 Alpha Matting 优化边缘
from rembg import remove, new_session
# 创建带边缘优化的会话
session = new_session(
'u2net',
alpha_matting=True,
alpha_matting_foreground_threshold=240,
alpha_matting_background_threshold=10,
alpha_matting_erode_size=10
)
# 使用会话处理
with open('input.jpg', 'rb') as f:
output_data = remove(f.read(), session=session)
with open('output.png', 'wb') as f:
f.write(output_data)
可用模型
| 模型 | 说明 | 适用场景 |
|---|---|---|
u2net |
通用模型(默认) | 大多数场景 |
u2netp |
轻量级模型 | 速度优先 |
u2net_human_seg |
人像分割 | 人物照片 |
silueta |
人像专用模型 | 人像优化 |
isnet-general-use |
新通用模型 | 高质量需求 |
使用场景
- 证件照制作:去除原背景,方便更换背景色
- 电商产品图:产品展示、白底图制作
- 社交媒体:头像、朋友圈图片处理
- 设计素材:为设计提供透明背景素材
- 批量处理:大量图片自动化处理
Claude Code Skill 使用
本项目也是一个 Claude Code Skill,可以直接在 Claude Code 中使用:
/bg-remover 去除这张图片的背景
/bg-remover 抠图
/bg-remover 移除背景
配置 Skill
- 将本仓库克隆到 Claude Code 的 skills 目录:
cd ~/.claude/skills
git clone https://github.com/wyq09/bg-remover.git
- 重启 Claude Code 即可使用
常见问题
Q: 处理速度慢怎么办?
A: 可以尝试使用轻量级模型 u2netp,或安装 GPU 版本加速。
Q: 边缘效果不好怎么办?
A: 启用 Alpha Matting 可以获得更好的边缘效果。
Q: 内存不足怎么办?
A: 使用轻量级模型 u2netp,或缩小图片尺寸后再处理。
Q: 识别不准确怎么办?
A: 尝试不同的模型,根据图片类型选择合适的模型。
注意事项
- 输入图片分辨率越高,抠图效果越好
- 复杂背景可能需要手动后期调整
- 对于精细物体(如头发),建议使用 Alpha Matting 优化
- 首次运行会自动下载 AI 模型(约 176MB)
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
作者
wuyiqun
链接
贡献
欢迎提交 Issue 和 Pull Request!
Made with ❤️ by wuyiqun
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.