
Rembg Python 图片去背景快速上手指南3 个配方搞定批量抠图【免费下载链接】rembgRembg is a tool to remove images background项目地址: https://gitcode.com/GitHub_Trending/re/rembgRembg 是一个 Python 图片背景移除库传入一张图它自动识别主体并输出透明背景的 PNG 抠图。适合有基础编程概念、要处理电商产品图、证件照和素材图的新手核心 API 只有一个remove函数。️ 它解决什么问题手动抠图的痛点在于重复劳动电商上架前要把几十张产品图统一换成白底证件照制作要把红底批量转蓝底逐张描边费时且边缘质量不稳定。Rembg 的思路是让模型来判断前景——你只负责指定用哪个模型脚本负责跑完整批。下图是一张汽车照片经 Rembg 处理后的结果背景已透明主体边缘完整保留。安装命令与环境要求硬性要求只有一个Python 版本在 3.11 到 3.13 之间3.11, 3.14用python --version确认即可。安装命令按硬件二选一装库还是装库加命令行看后缀# CPU 版任何机器都能跑 pip install rembg[cpu] # 仅库 pip install rembg[cpu,cli] # 库 rembg 命令行 # NVIDIA GPU 版需要 CUDA 环境 pip install rembg[gpu]AMD 显卡走rembg[rocm]通道仅 Linux。模型文件在首次运行时自动下载缓存到~/.u2net目录之后离线也能用。完整说明见 README.md。⚡ 最小可用示例3 行代码去背景最短可运行脚本长这样from rembg import remove from PIL import Image img Image.open(input.jpg) # 1. 读取图片 out remove(img) # 2. 去背景默认走 u2net 模型 out.save(output.png) # 3. 保存结果输出为透明 PNG逐行说明Image.open只负责读文件remove的输入也可以是字节串或 numpy 数组返回值类型与输入保持一致remove内部完成模型推理输出前景掩码并把背景置为透明不传模型参数时默认加载u2net首次运行会触发模型下载最后落盘的是 RGBA 图像背景区域全透明可直接用于合成或后续处理。先跑通这一步再谈调参。 模型选择对照按场景挑模型Rembg 内置 16 个预训练模型常用的一览如下各模型的实现代码在 rembg/sessions/ 里可以逐行看模型适用场景特点u2net通用默认模型质量与速度均衡u2netp通用u2net 轻量版速度更快silueta通用体积压缩到 43MB适合资源受限环境u2net_human_seg人体专注人形分割u2net_cloth_seg衣物将衣服解析为上半身、下半身、全身三类isnet-general-use通用另一套精度较高的通用模型isnet-anime动漫角色面向动漫风格人物birefnet-general通用高精度通用模型birefnet-general-lite通用birefnet 的轻量版birefnet-portrait人像人像专用发丝效果好sam复杂场景支持指定点坐标引导分割选型一句话先想清楚处理什么、要多高的精度再选模型。通用需求先用默认 u2net 试人像精度不够换 birefnet-portrait动漫素材直接用 isnet-anime。️ 实用配方配方一证件照换底色人像素材选人像专用模型先抠出透明图再合成到新底色上from rembg import remove, new_session from PIL import Image session new_session(birefnet-portrait) cutout remove(Image.open(id.jpg), sessionsession) # 透明抠图 bg Image.new(RGBA, cutout.size, (67, 142, 219, 255)) # 红底蓝 result Image.alpha_composite(bg, cutout) result.convert(RGB).save(id_new.jpg, JPEG)注意 JPEG 不保存透明通道所以要先合成到实底色上再存想保留透明背景就存 PNG。配方二批量抠图脚本处理整个目录时关键动作是只创建一次会话并全程复用否则每次调用remove都会重新加载模型速度掉得很厉害from pathlib import Path from rembg import remove, new_session session new_session(u2net) # 只建一次循环内复用 for f in Path(input_dir).glob(*.png): data remove(f.read_bytes(), sessionsession) Path(output_dir, f{f.stem}.out.png).write_bytes(data)这里输入用read_bytes()读字节remove原样返回字节整条 I/O 链路类型一致省去反复转 PIL 对象。配方三背景替换为指定颜色 边缘优化想让背景直接变成某种颜色而不是透明或者想让边缘更干净用这两个参数组合out remove( img, bgcolor(255, 255, 255, 255), # 背景直接填白 alpha_mattingTrue, # 抠取式后处理边缘更自然 alpha_matting_foreground_threshold240, alpha_matting_background_threshold10, alpha_matting_erode_size10, )alpha matting 是基于掩码重新估算 alpha 通道的后处理步骤对毛发、绒毛、半透明边缘这类难啃的过渡带有效代价是单张耗时增加。嫌它慢可以改用轻量的post_process_maskTrue先试试。❓ 常见问题模型下载失败模型首次运行时下载并缓存到~/.u2net可用环境变量U2NET_HOME改存放位置网络受限时可手动放置模型文件后再运行。内存不够、大图卡顿先换轻量的u2netp或silueta或把图片缩小分辨率再处理。速度慢NVIDIA 显卡换rembg[gpu]CPU 上可用环境变量OMP_NUM_THREADS调整推理线程数。边缘效果差开启alpha_matting或post_process_mask同一张图跑多个模型对比输出各模型的样例结果在 tests/results/ 中可直接查看。延伸阅读从 3 行脚本到批量产线抠图到合成的链路已经完整剩下的工作量是拿自己的素材把模型对照表过一遍。API 参数细节查 USAGE.md命令行、HTTP 服务和 Docker 部署方式看 README.md。【免费下载链接】rembgRembg is a tool to remove images background项目地址: https://gitcode.com/GitHub_Trending/re/rembg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考