介绍
这是一个用于给图片去除背景的开源项目。
项目地址:https://github.com/danielgatis/rembg
关于依赖 onnxruntime 的问题
在我写这篇文章的时候,Rembg 存在 bug 对于 onnxruntime 的依赖有问题,需要自行降级使用,无论是 CPU 还是 GPU 版本都需要。
稳定版本 1.20.1 可以正常使用
安装 CPU 版
我选择了第二行安装了 cli 版本。
pip install "rembg[cpu]" # for library
pip install "rembg[cpu,cli]" # for library + cli
安装完后他会默认安装最新的 onnxruntime ,你需要使用pip uninstall onnxruntime然后安装pip install onnxrumtime==1.20.1安装旧版的环境。才能够正常使用 CLI 。
安装 GPU 版(不推荐)
先说原因,Rembg 的 GPU 版本需要依赖 ONNX, CUDA, cuDNN 并且对于版本依赖非常敏感,除非你隔离环境比如使用 docker 否则安装会带来很大的痛苦。
安装环境检查
对于 Windows 11 来说,首先你需要安装一些基础的东西比如 python 、 pip 这些。
之后你需要根据你的电脑来选择不同的安装方式,这里我的系统是 Windows 11 ,使用 NVIDIA 显卡 。
首先查看 ONNX-GPU 是否兼容你的系统,前往 https://onnxruntime.ai/getting-started 选择 python 后选择你的相应的系统检查。可以的话进入下一步。

安装 CUDA
然后安装 CUDA 和相关的内容,首先前往 https://developer.nvidia.com/cuda-toolkit-archive CUDA Toolkit Archive 的所有版本下载页。我选择的是 12.8 的版本。如果你不需要使用 "Visual Studio Integration" 或者你根本不知道这是什么的话,选择自定义安装,将这个选项取消掉。因为如果你的系统没有安装 Visual Studio 的话他可能会安装失败报错。

安装 cuDNN
这里开始会变得非常地坑,首先 Rembg 会安装最新的 ONNX 我写这篇的时候最新的是 1.23 ,但是这个是不能够使用的。需要使用 onnxruntime-gpu 1.20.1,同时需要 cuDNN 9.0以上的版本。如果你想要使用 cuDNN 8 的话你的 ONNX 版本不能超过一定版本(具体多少我没测试),我测试的是 1.18 可以正常使用 。
选择安装 cuDNN 9
前往 https://developer.nvidia.com/cudnn-downloads 这里需要注册一个账号,请自行注册。
这里就更坑了, NVIDIA 对于 Windows 改变了打包方式,现在只有 .exe 安装程序,没有压缩包。同时使用安装程序,默认会将其安装到独立的 CUDNN 文件夹下,这会导致很多依赖的软件和程序无法找到 cuDNN 报错。不推荐修改他的安装目录强制合并到 CUDA 下。
解决方法是先默认安装,记录下安装位置,默认安装一般会在C:\Program Files\NVIDIA\CUDNN\v9.x。
安装完成后,修改系统的环境变量。在 环境变量->系统变量->Path 下增加一条 cuDNN 的 bin 目录 C:\Program Files\NVIDIA\CUDNN\v9.x、bin 。点击保存。
如果还是报错的话,手动将所有的 cuDNN 9 的文件(包含 bin, include, lib 的文件夹)复制合并到 CUDA 里面C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x 。
选择安装 cuDNN8
前往 https://developer.nvidia.com/rdp/cudnn-archive 下载对应 CUDA 版本 cuDNN 8 ,然后选择 zip 的压缩包格式。将压缩包里面的内容解压,并全部合并到 CUDA 的安装目录下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x 。
但这样的话你就要注意你的 ONNX 版本。
安装必要补丁 Zlibwapi.dll
NVIDIA 的安装包默认不包含这个,所以你运行的时候会报错。
官方下载地址(强烈推荐):http://www.winimage.com/zLibDll/zlib123dllx64.zip
博主备份下载地址:访问密码:crowsong 解压密码:crowsong.xyz
下载后解压文件,找到dll_x64\zlibwapi.dll,将其放入到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin目录下。
安装 Rembg
安装完后,使用命令安装 Rembg ,这里我使用的是N卡,所以选择 gpu 带 cli 版本。(第二行)
pip install "rembg[gpu]" # for library
pip install "rembg[gpu,cli]" # for library + cli
安装完后,他会默认安装最新版本的 onnxruntime-gpu ,你需要卸载然后根据你的 cuDNN 版本来安装对应的 ONNX ,我使用的是 cuDNN 9 所以,我安装的是onnxruntime-gpu 1.20.1。
(之后的修复我使用了Gemini 3 来辅助,我实在找不到解决方案了)
之后为了让 rembg.exe 命令行工具能找到 GPU 驱动和加速库,将 cuDNN 9 的 DLL 文件拷贝到 Python 的根目录中:
- 源路径:
C:\Program Files\NVIDIA\CUDNN\v9.17\bin\12.9\ - 目标路径:
C:\Users\archmagetony\AppData\Local\Programs\Python\Python310\ - 包含文件:
cudnn64_9.dll,cudnn_adv64_9.dll,cudnn_cnn64_9.dll,cudnn_ops64_9.dll等。
cuDNN 9 虽然在 Windows 上静态链接了 zlib,但某些底层组件仍可能显式寻找 zlibwapi.dll。确保该文件存在于 CUDA 的 bin 目录中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\zlibwapi.dll
批量处理脚本
让哈基米帮我措了个脚本,仅限win系统可以使用,并且你需要已经正确安装了 Rembg 。
项目地址:https://github.com/ArchmageTony/batch-rembg