“Rembg is a tool to remove images background.” — GitHub 仓库简介,截至目前该项目已经累积 19.1K⭐,展示了它在开发者社区中的高人气!在视觉内容需求越来越旺盛的今天,例如电商商品图、个人社交照、海报设计等场景,都离不开高效准确的背景抠图工具。Rembg 正是一个能够轻松在本地完成高质量图片背景抠图的开源利器,以下通过项目详解、示例演示、多角度对比,带你深度了解它的魅力。
5 秒一键抠图,无需绿幕,支持批量、命令行、API,精度接近商业工具。
- 核心功能
- 人物 / 物体 / 动物高精度分离
- 输出透明 PNG、自定义背景
- CLI、Python、HTTP 服务
GitHub项目网址:https://github.com/danielgatis/rembg
Rembg 基于 Python,使用深度学习模型(U‑Net / U‑2‑Net)进行图像分割,一键识别前景,剔除背景,输出带透明通道的最终图像。支持本地命令行、Python 包、服务端 API、集成到第三方工具等各种形式。

核心功能与特性
- 多场景高精度分离:基于 U²-Net、BiRefNet 等先进深度学习模型,不仅能精准处理人物(保留发丝细节),还能通用处理动物、商品、汽车等物体,精度可媲美商业工具。
- 多形态无缝使用:提供四种使用方式,满足不同人群需求:
- 命令行 (CLI):一行命令即可完成单张或批量处理。
- Python 库:几行代码即可集成到自己的应用中。
- HTTP 服务:可启动为后端服务,通过 API 调用,方便集成到 Web 应用。
- Docker 容器:一键部署,隔离环境。
- 灵活的输出与配置:默认输出透明 PNG,支持自定义背景替换;可根据硬件选择 CPU 或 GPU (CUDA/ROCM) 加速,且模型库丰富(如
u2net、isnet-anime等),可针对不同场景切换。
核心功能
| 功能名称 | 核心价值 | 使用示例 |
| 命令行处理 | 步骤简单,适合批量自动化 | rembg i input.jpg output.png 或 rembg p input_folder output_folder |
| Python API | 程序式调用,适合集成服务端 | python<br>from rembg import remove<br>output = remove(img_bytes) |
| 多模型支持 | 包括 u2net、u2netp、human_seg 等 | 精细抠毛发、人物、衣物分割等 |
| GPU 加速 | ONNXRuntime‑GPU 支持,处理更快 | pip install rembg[gpu],显卡加速体验 |
| 广泛兼容性 | 插件、Web App、GIMP 等多平台集成 | ComfyUI、Stable Diffusion WebUI、GIMP 插件 |
技术架构
深入项目可发现其内在架构如下:
| 技术组件 | 描述 | 优势 |
| U‑2‑Net / U‑Net 模型 | 编码器‑解码器结构,像素级分割 | 捕捉整体与细节边缘兼具,高分割精度 ([cloud.baidu.com][3]) |
| ONNXRuntime 支持 | CPU + GPU 加速推理 | 高效执行,适配多种硬件 |
| PIL + BytesIO 处理 | 支持图像文件、字节流、Pillow 对象 | 接入灵活、形式多变 |
| 多接口驱动 | CLI、Python、服务端、插件 | 适合一键处理、自动化流水线、App 集成 |
快速上手示例
1. 安装
bashbash
# CPU 版本
pip install rembg[cli]
# GPU 版本 (需配置 CUDA)
pip install rembg[gpu,cli]
2. 命令行一键抠图
bashbash
# 处理单张图片
rembg i input.jpg output.png
# 批量处理整个文件夹
rembg p input_folder output_folder
3. Python 代码调用
pythonpython
from rembg import remove
from PIL import Image
input_img = Image.open('input.png')
output_img = remove(input_img)
output_img.save('output.png')
![]()