wyq09

bg-remover

by @wyq09 in Tools
0
0
# Install this skill:
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:新的通用模型

注意事项

  1. 输入格式:支持 JPG、PNG、WebP 等常见格式
  2. 输出格式:始终输出 PNG 格式(支持透明通道)
  3. 图片质量:输入图片分辨率越高,抠图效果越好
  4. 复杂背景:复杂背景可能需要手动后期调整
  5. 边缘处理:对于精细物体(如头发),可以使用 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)

错误处理

常见问题及解决方案:

  1. 内存不足:使用轻量级模型 u2netp 或缩小图片尺寸
  2. 处理速度慢:使用 GPU 版本或轻量级模型
  3. 边缘效果不佳:启用 alpha matting
  4. 识别不准确:尝试不同的模型

最佳实践

  1. 选择合适的模型(人像用人像模型,通用用 u2net)
  2. 根据需求在速度和质量间选择(u2netp 快但精度略低,u2net 慢但精度高)
  3. 对重要图片使用 alpha matting 优化边缘
  4. 批量处理时考虑使用轻量级模型提高效率

# README.md

bg-remover

智能图片背景移除工具,支持上传图片后自动去除背景,生成透明背景的 PNG 图片。适用于证件照、产品图、头像等各种场景。

Python
License
GitHub

功能特性

  • 自动识别并去除图片背景
  • 生成带透明通道的 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

  1. 将本仓库克隆到 Claude Code 的 skills 目录:
cd ~/.claude/skills
git clone https://github.com/wyq09/bg-remover.git
  1. 重启 Claude Code 即可使用

常见问题

Q: 处理速度慢怎么办?

A: 可以尝试使用轻量级模型 u2netp,或安装 GPU 版本加速。

Q: 边缘效果不好怎么办?

A: 启用 Alpha Matting 可以获得更好的边缘效果。

Q: 内存不足怎么办?

A: 使用轻量级模型 u2netp,或缩小图片尺寸后再处理。

Q: 识别不准确怎么办?

A: 尝试不同的模型,根据图片类型选择合适的模型。

注意事项

  1. 输入图片分辨率越高,抠图效果越好
  2. 复杂背景可能需要手动后期调整
  3. 对于精细物体(如头发),建议使用 Alpha Matting 优化
  4. 首次运行会自动下载 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.