Rembg 开源图像抠图工具全教程:Python/命令行/HTTP API/Docker部署+多模型选型

发布时间:2026/7/12 18:58:44
Rembg 开源图像抠图工具全教程:Python/命令行/HTTP API/Docker部署+多模型选型 Rembg是一款免费开源AI抠图工具无需复杂算法一行代码/一条命令即可生成透明背景图片支持CPU/NVIDIA/AMD多硬件加速提供Python SDK、命令行、HTTP接口、Docker四种部署方式内置20分割模型适配人像、动漫、服装、高分辨率物体等场景本文完整覆盖安装、单图/批量处理、API服务、视频帧抠图、容器部署、自定义模型全流程实战代码。一、项目概述1.1 项目介绍Rembg 是一款开源、高性能图像背景去除工具支持多部署形态可直接一键去除图片背景生成透明PNG底层基于各类预训练分割模型U2Net、IS-Net、BiRefNet、SAM等适配通用实物、人像、动漫、服装、高分辨率物体等多场景抠图需求。 支持四种使用方式Python 第三方库集成到业务代码终端命令行工具单图/批量处理HTTP Web服务对外提供抠图APIDocker容器快速部署CPU/GPU两种镜像项目开源地址danielgatis/rembg开源协议 MIT官方提供商用付费抠图API PhotoRoom。1.2 环境前置要求Python 版本限制3.11 且 3.14依赖 onnxruntime 系列推理引擎分CPU、NVIDIA CUDA、AMD ROCm三种硬件后端。二、安装教程区分硬件后端2.1 CPU通用版本无独立显卡新手推荐仅作为Python库pip install rembg[cpu]库 命令行工具一体pip install rembg[cpu,cli]2.2 NVIDIA显卡 CUDA GPU加速先确认本机环境支持onnxruntime-gpu提前装好CUDA、cudnn-devel安装命令# 仅库 pip install rembg[gpu] # 库命令行 pip install rembg[gpu,cli]若CUDA环境配置失败可降级使用CPU版本运行。2.3 AMD显卡 ROCm 后端需提前部署onnxruntime-rocm再执行安装pip install rembg[rocm] pip install rembg[rocm,cli]三、命令行 CLI 使用详解安装cli后终端直接执行rembg提供4大核心子命令i单图、p批量文件夹、sHTTP服务、b二进制流适配FFmpeg。3.1 通用帮助命令# 查看全局帮助 rembg --help # 查看指定子命令帮助如单图处理 rembg i --help3.2 rembg i单张图片抠图本地文件基础用法# 指定输入输出路径 rembg i input.png output.png # 省略输出自动生成 input.out.png rembg i input.png # 管道重定向输出 rembg i input.png output.png远程网络图片流式处理curl -s http://xxx/input.png | rembg i output.png进阶参数用法指定轻量模型u2netprembg i -m u2netp input.png output.png仅输出分割掩码无透明前景rembg i -om input.png mask.png输出带Alpha遮罩原图rembg i -a input.png output.pngSAM模型点位提示抠图自定义前景点位rembg i -m sam -x { sam_prompt: [{type: point, data: [724, 740], label: 1}] } test.jpg out.png加载本地自定义ONNX模型rembg i -m u2net_custom -x {model_path: ~/.u2net/u2net.onnx} input.png output.png3.3 rembg p批量文件夹处理基础批量输入文件夹→输出文件夹rembg p ./input_imgs ./output_imgs监听模式自动处理新增/修改图片rembg p -w ./input_imgs ./output_imgs3.4 rembg s启动HTTP抠图API服务启动服务开放外网访问端口7000rembg s --host 0.0.0.0 --port 7000 --log_level info关闭Gradio前端UI降低CPU占用rembg s --no-uiAPI调用示例通过图片URL抠图curl -s http://127.0.0.1:7000/api/remove?urlhttp://xxx/test.png -o out.png上传本地文件抠图curl -s -F file./test.jpg http://127.0.0.1:7000/api/remove -o out.png服务内置API文档地址http://localhost:7000/api3.5 rembg b二进制RGB24数据流处理适配FFmpeg视频帧接收原始RGB像素流适合视频逐帧抠图参数宽度、高度、输出文件名格式化模板。 示例提取视频第10秒画面逐帧抠图保存ffmpeg -i input.mp4 -ss 10 -an -f rawvideo -pix_fmt rgb24 pipe:1 | rembg b 1280 720 -o output/output-%03u.png关键参数不能省略-an -f rawvideo -pix_fmt rgb24 pipe:1宽高必须和视频分辨率匹配。四、Python库代码集成开发常用核心入口函数remove()支持字节流、PIL图像、OpenCV数组三种输入格式批量处理推荐复用Session加速推理。4.1 字节流读写通用文件读写from rembg import remove # 读取原图字节抠图后写入透明图 with open(input.png, rb) as in_file: input_data in_file.read() output_data remove(input_data) with open(output.png, wb) as out_file: out_file.write(output_data)4.2 PIL Image 格式图像处理常用from rembg import remove from PIL import Image input_img Image.open(input.png) output_img remove(input_img) output_img.save(output.png)4.3 OpenCV NumPy数组格式from rembg import remove import cv2 input_arr cv2.imread(input.png) output_arr remove(input_arr) cv2.imwrite(output.png, output_arr)4.4 强制返回字节流from rembg import remove with open(input.png, rb) as i: data i.read() res remove(data, force_return_bytesTrue) with open(out.png, wb) as o: o.write(res)4.5 高性能批量处理复用Session推荐重复创建会话会重复加载模型大批量图片务必复用sessionfrom pathlib import Path from rembg import remove, new_session # 全局初始化一次模型会话 session new_session() # 遍历文件夹所有png图片 img_dir Path(./batch_input) for img_file in img_dir.glob(*.png): out_path img_file.parent / f{img_file.stem}.out.png with open(img_file, rb) as i, open(out_path, wb) as o: img_bytes i.read() # 复用session大幅提升批量速度 res_bytes remove(img_bytes, sessionsession) o.write(res_bytes)五、Docker容器部署5.1 CPU镜像开箱即用无需编译直接拉取官方镜像挂载本地目录/data处理图片docker run -v .:/data danielgatis/rembg i /data/input.png /data/output.png5.2 NVIDIA CUDA GPU镜像前置条件主机安装NVIDIA容器工具包构建GPU镜像镜像占用约11GBCPU版仅1.6GBdocker build -t rembg-gpu -f Dockerfile_nvidia_cuda_cudnn_gpu .运行容器开启GPU加速sudo docker run --rm -it --gpus all -v $PWD:/data rembg-gpu i -m birefnet-general /data/input.png /data/output.png优化挂载本地模型目录避免容器重复下载模型-v /本地模型路径:/root/.u2net六、内置模型大全按需选择首次运行自动下载模型至~/.u2net/可通过环境变量修改存储路径各模型适用场景模型名称适用场景特点u2net通用物体抠图基础通用模型效果均衡u2netp通用场景U2Net轻量版速度更快u2net_human_seg纯人像分割专门识别人体轮廓u2net_cloth_seg服装分割区分上衣/下装/全身衣物Silueta通用抠图体积仅43MB轻量化isnet-general-use通用高精度新一代通用分割模型isnet-anime动漫角色二次元人物抠图专用sam任意物体分割支持点位提示自定义抠选区域birefnet-general全场景通用综合效果最优birefnet-general-lite通用轻量化平衡速度与精度birefnet-portrait人像肖像人像细节优化birefnet-dis双目图像分割双目视觉专用birefnet-hrsod高分辨率显著物体大图物体检测birefnet-cod隐蔽物体检测低对比度隐藏物体birefnet-massive超大数据集训练复杂场景泛化强bria-rmbg商业级抠图BRIA AI开发细节优秀七、环境变量配置可通过系统环境变量自定义模型存储、推理行为U2NET_HOME模型文件存储目录优先级最高默认~/.u2netXDG_DATA_HOME未配置U2NET_HOME时数据根目录默认用户根目录MODEL_CHECKSUM_DISABLED1关闭模型哈希校验使用自定义修改后的ONNX模型时开启OMP_NUM_THREADS设置ONNX推理线程数控制CPU占用八、自定义本地模型使用流程设置环境变量关闭校验MODEL_CHECKSUM_DISABLED1将转换/修改后的.onnx模型放入默认目录~/.u2net/命名格式与原模型一致如u2net.onnx运行rembg时会直接加载本地文件不再自动下载官方模型九、常见问题说明Python版本兼容问题库版本由onnxruntime支持的Python版本决定仅支持3.11~3.13GPU加速失败检查CUDA、cuDNN、onnxruntime-gpu版本匹配无法配置显卡则切换CPU版本模型重复下载配置U2NET_HOME固定模型路径Docker部署挂载本地模型目录自定义模型加载失败务必开启MODEL_CHECKSUM_DISABLED关闭校验。