
哈喽,大家周末好,我们都知道在线抠图的工具有很多。传一张图上去,等处理完再下载。
但到了批量商品图、视频素材、头像包,每一张都走这个流程就很麻烦。
backgroundremover 把这件事拉回本地。
nadermx/backgroundremover
Stars:7,962 | Forks:648 | License:MIT | Language:Python |
|---|

backgroundremover 是一个命令行抠图工具。
你给它一张图,它输出透明背景的 PNG。
你给它一段视频,它也能把主体抠出来,导出带透明通道的 mov、webm 或 gif。

底层用的是 U2-Net 这类分割模型。
项目里预置了几个模型选择:
u2net 负责通用物体。u2net_human_seg 更偏人物。u2netp 更轻,速度更快,但精度也会低一些。
这不是一个网页小工具的壳。
它更像是给开发者、剪辑流程、批处理脚本准备的本地能力。
抠图这件事,单张图片可以手动处理。
但一旦变成一批商品图、一组头像素材,或者一段视频,反复上传、下载、改格式就很低效。
而且素材能不能放到外部服务上,也是个问题。
backgroundremover 的思路是把处理拉回本地。


装好 Python、PyTorch、ffmpeg 之后,直接在终端里跑。
图片、视频、整个文件夹,都能走同一套命令。
对内容生产、商品图处理、视频素材清理来说,还是挺实用的。
它不只处理图片。README 里给了视频用法。
把视频背景移除后导出透明 mov:
backgroundremover -i "/path/to/video.mp4" -tv -o "output.mov"

还支持把视频主体叠到另一段视频上,或者叠到一张背景图上。
参数也给得比较细。可以开启 alpha matting 调边缘,也可以只输出 mask,还可以给透明区域换成纯色或另一张背景图。
入口不止一个。可以当 CLI 用,可以在 Python 代码里调用,也可以启动一个 HTTP API server,用 POST 上传图片处理。
这个项目的价值不在于界面多漂亮。
它把一个很常见的 AI 图像能力,做成了能塞进脚本的工具。
比如你有一个商品图目录:
backgroundremover -if "/path/to/image-folder" -of "/path/to/output-folder"
一行命令,批量处理。

人物图可以换用人像模型,边缘发糊可以开 alpha matting,要接到后端服务里可以先跑 HTTP server 验证流程。

这类项目适合看两个地方:一是模型能力够不够,二是工程入口够不够顺。backgroundremover 至少把入口做得比较全。
最短路径是直接装包:
pip install backgroundremover
处理一张图:
backgroundremover -i "/path/to/image.jpeg" -o "output.png"
人像可以指定模型:
backgroundremover -i "/path/to/image.jpeg" -m "u2net_human_seg" -o "output.png"
想要边缘更细,可以打开 alpha matting:
backgroundremover -i "/path/to/image.jpeg" -a -ae 5 -o "output.png"

也支持 Docker。README 特别提醒了视频处理时的共享内存问题——如果跑视频,可能需要加 --shm-size=2g。
第一次运行时会自动检查并下载 U2-Net 模型。
它适合三类人。
第一类,要批量处理图片的开发者。
第二类,想把抠图能力接进内部工具的人。
第三类,经常处理透明视频、绿幕、素材合成的内容团队。

但也要先看清楚几个点。
它依赖 PyTorch 和 ffmpeg。如果只想偶尔处理一张图,安装成本不算低。
视频透明通道有播放器兼容问题。透明 mov 默认用 ProRes 4444,更适合剪辑软件,不一定适合所有播放器。
项目目前没有自动化测试,主要靠手动测试。
更稳妥的用法,是先拿自己的素材跑一小批。看边缘、速度、输出格式都合适了,再接到工作流里。
今天就先聊到这里。我们下期再见!