@Ryrenz: 图片修复、抠图、高清放大,这 5 个开源工具本地免费全干了,一分钱不花,处理多少张都行,图片还不上传到别人服务器。 1、rembg(23.5k star) 一行命令去背景,商品图、证件照、头像批量抠图,边缘比在线工具干净,做电商主图的可以…
摘要
推荐5个开源本地图片处理工具:rembg去背景、Upscayl高清放大、IOPaint内容消除、Real-ESRGAN超分辨率、GFPGAN人脸修复,全部免费离线运行,不上传服务器。
查看缓存全文
缓存时间: 2026/07/02 06:19
图片修复、抠图、高清放大,这 5 个开源工具本地免费全干了,一分钱不花,处理多少张都行,图片还不上传到别人服务器。
1、rembg(23.5k star) 一行命令去背景,商品图、证件照、头像批量抠图,边缘比在线工具干净,做电商主图的可以整个文件夹一次性处理。
https://github.com/danielgatis/rembg…
2、Upscayl(46.6k star) 最好用的图片高清放大,有现成桌面软件不用配环境,模糊老图、小尺寸截图放大到 4 倍还清晰,Mac、Windows、Linux 都有安装包。
https://github.com/upscayl/upscayl
3、IOPaint(23.3k star) 消除画面里任何东西,圈住路人甲、水印、多余物体,AI 自动补上背景,相当于免费版 PS 的内容识别填充。
https://github.com/Sanster/IOPaint
4、Real-ESRGAN(36k star) 图像/视频超分辨率的标准底座,很多放大工具背后都是它,动漫图、真实照片各有专门模型,追求效果可以直接调它。
https://github.com/xinntao/Real-ESRGAN…
5、GFPGAN(37.5k star)
专修人脸,模糊、划痕、低清的老照片喂进去,五官细节重建得自然,给长辈修复老相片神器。
https://github.com/TencentARC/GFPGAN…
danielgatis/rembg
Source: https://github.com/danielgatis/rembg
Rembg is a tool to remove image backgrounds. It can be used as a CLI, Python library, HTTP server, or Docker container.
Sponsors
|
PhotoRoom Remove Background API
https://photoroom.com/api
Fast and accurate background remover API |
If this project has helped you, please consider making a donation.
Requirements
python: >=3.11, <3.14
Installation
Choose one of the following backends based on your hardware:
CPU support
pip install "rembg[cpu]" # for library
pip install "rembg[cpu,cli]" # for library + cli
GPU support (NVIDIA/CUDA)
First, check if your system supports onnxruntime-gpu by visiting onnxruntime.ai and reviewing the installation matrix.
If your system is compatible, run:
pip install "rembg[gpu]" # for library
pip install "rembg[gpu,cli]" # for library + cli
Note: NVIDIA GPUs may require
onnxruntime-gpu, CUDA, andcudnn-devel. See #668 for details. Ifrembg[gpu]doesn’t work and you can’t install CUDA orcudnn-devel, userembg[cpu]withonnxruntimeinstead.
GPU support (AMD/ROCm)
ROCm support requires the onnxruntime-rocm package. Install it by following AMD’s documentation.
Once onnxruntime-rocm is installed and working, install rembg with ROCm support:
pip install "rembg[rocm]" # for library
pip install "rembg[rocm,cli]" # for library + cli
Usage as a CLI
After installation, you can use rembg by typing rembg in your terminal.
The rembg command has 4 subcommands, one for each input type:
i- single filesp- folders (batch processing)s- HTTP serverb- RGB24 pixel binary stream
You can get help about the main command using:
rembg --help
You can also get help for any subcommand:
rembg <COMMAND> --help
rembg i
Used for processing single files.
Remove background from a remote image:
curl -s http://input.png | rembg i > output.png
Remove background from a local file:
rembg i path/to/input.png path/to/output.png
Omit the output path (writes <input_stem>.out.png next to the input):
rembg i path/to/input.png
# → path/to/input.out.png
If stdout is redirected (e.g. rembg i input.png > out.png), the output is written to stdout instead.
Specify a model:
rembg i -m u2netp path/to/input.png path/to/output.png
Return only the mask:
rembg i -om path/to/input.png path/to/output.png
Apply alpha matting:
rembg i -a path/to/input.png path/to/output.png
Pass extra parameters (SAM example):
rembg i -m sam -x '{ "sam_prompt": [{"type": "point", "data": [724, 740], "label": 1}] }' examples/plants-1.jpg examples/plants-1.out.png
Pass extra parameters (custom model):
rembg i -m u2net_custom -x '{"model_path": "~/.u2net/u2net.onnx"}' path/to/input.png path/to/output.png
rembg p
Used for batch processing entire folders.
Process all images in a folder:
rembg p path/to/input path/to/output
Watch mode (process new/changed files automatically):
rembg p -w path/to/input path/to/output
rembg s
Used to start an HTTP server.
rembg s --host 0.0.0.0 --port 7000 --log_level info
For complete API documentation, visit: http://localhost:7000/api
Disable the Gradio UI (reduces idle CPU usage):
rembg s --no-ui
Remove background from an image URL:
curl -s "http://localhost:7000/api/remove?url=http://input.png" -o output.png
Remove background from an uploaded image:
curl -s -F file=@/path/to/input.jpg "http://localhost:7000/api/remove" -o output.png
rembg b
Process a sequence of RGB24 images from stdin. This is intended to be used with programs like FFmpeg that output RGB24 pixel data to stdout.
rembg b <width> <height> -o <output_specifier>
Arguments:
| Argument | Description |
|---|---|
width | Width of input image(s) |
height | Height of input image(s) |
output_specifier | Printf-style specifier for output filenames (e.g., output-%03u.png produces output-000.png, output-001.png, etc.). Omit to write to stdout. |
Example with FFmpeg:
ffmpeg -i input.mp4 -ss 10 -an -f rawvideo -pix_fmt rgb24 pipe:1 | rembg b 1280 720 -o folder/output-%03u.png
Note: The width and height must match FFmpeg’s output dimensions. The flags
-an -f rawvideo -pix_fmt rgb24 pipe:1are required for FFmpeg compatibility.
Usage as a Library
Input and output as bytes:
from rembg import remove
with open('input.png', 'rb') as i:
with open('output.png', 'wb') as o:
input = i.read()
output = remove(input)
o.write(output)
Input and output as a PIL image:
from rembg import remove
from PIL import Image
input = Image.open('input.png')
output = remove(input)
output.save('output.png')
Input and output as a NumPy array:
from rembg import remove
import cv2
input = cv2.imread('input.png')
output = remove(input)
cv2.imwrite('output.png', output)
Force output as bytes:
from rembg import remove
with open('input.png', 'rb') as i:
with open('output.png', 'wb') as o:
input = i.read()
output = remove(input, force_return_bytes=True)
o.write(output)
Batch processing with session reuse (recommended for performance):
from pathlib import Path
from rembg import remove, new_session
session = new_session()
for file in Path('path/to/folder').glob('*.png'):
input_path = str(file)
output_path = str(file.parent / (file.stem + ".out.png"))
with open(input_path, 'rb') as i:
with open(output_path, 'wb') as o:
input = i.read()
output = remove(input, session=session)
o.write(output)
For more examples, see the examples page.
Usage with Docker
CPU Only
Replace the rembg command with docker run danielgatis/rembg:
docker run -v .:/data danielgatis/rembg i /data/input.png /data/output.png
NVIDIA CUDA GPU Acceleration
Requirements: Your host must have the NVIDIA Container Toolkit installed.
CUDA acceleration requires cudnn-devel, so you need to build the Docker image yourself. See #668 for details.
Build the image:
docker build -t rembg-nvidia-cuda-cudnn-gpu -f Dockerfile_nvidia_cuda_cudnn_gpu .
Note: This image requires ~11GB of disk space (CPU version is ~1.6GB). Models are not included.
Run the container:
sudo docker run --rm -it --gpus all -v /dev/dri:/dev/dri -v $PWD:/data rembg-nvidia-cuda-cudnn-gpu i -m birefnet-general /data/input.png /data/output.png
Tips:
- You can create your own NVIDIA CUDA image and install
rembg[gpu,cli]in it. - Use
-v /path/to/models/:/root/.u2netto store model files outside the container, avoiding re-downloads.
Models
All models are automatically downloaded and saved to ~/.u2net/ on first use.
Available Models
- u2net (download, source): A pre-trained model for general use cases.
- u2netp (download, source): A lightweight version of u2net model.
- u2net_human_seg (download, source): A pre-trained model for human segmentation.
- u2net_cloth_seg (download, source): A pre-trained model for Cloths Parsing from human portrait. Here clothes are parsed into 3 category: Upper body, Lower body and Full body.
- silueta (download, source): Same as u2net but the size is reduced to 43Mb.
- isnet-general-use (download, source): A new pre-trained model for general use cases.
- isnet-anime (download, source): A high-accuracy segmentation for anime character.
- sam (download encoder, download decoder, source): A pre-trained model for any use cases.
- birefnet-general (download, source): A pre-trained model for general use cases.
- birefnet-general-lite (download, source): A light pre-trained model for general use cases.
- birefnet-portrait (download, source): A pre-trained model for human portraits.
- birefnet-dis (download, source): A pre-trained model for dichotomous image segmentation (DIS).
- birefnet-hrsod (download, source): A pre-trained model for high-resolution salient object detection (HRSOD).
- birefnet-cod (download, source): A pre-trained model for concealed object detection (COD).
- birefnet-massive (download, source): A pre-trained model with massive dataset.
- bria-rmbg (download, source): A state-of-the-art background removal model by BRIA AI.
Environment Variables
| Variable | Description |
|---|---|
U2NET_HOME | Path to the directory where models are stored. Defaults to $XDG_DATA_HOME/.u2net (or ~/.u2net if XDG_DATA_HOME is not set). |
XDG_DATA_HOME | Base data directory used when U2NET_HOME is not set. Defaults to ~. |
MODEL_CHECKSUM_DISABLED | When set (e.g. MODEL_CHECKSUM_DISABLED=1), disables hash verification for downloaded models. This is useful if you want to use your own custom/converted model files without rembg re-downloading the originals. |
OMP_NUM_THREADS | Sets the number of threads used by ONNX Runtime for inference. |
Using custom model files
If you need to use a modified version of a model (e.g. converted to a different ONNX IR version for compatibility with an older CUDA toolkit), you can prevent rembg from overwriting it:
- Set
MODEL_CHECKSUM_DISABLED=1 - Place your custom
.onnxfile in the models directory (~/.u2net/by default) with the expected filename (e.g.u2net.onnx) - Rembg will detect the file exists and use it without re-downloading
FAQ
When will this library support Python version 3.xx?
This library depends on onnxruntime. Python version support is determined by onnxruntime’s compatibility.
Support
If you find this project useful, consider buying me a coffee (or a beer):
Star History
License
Copyright (c) 2020-present Daniel Gatis
Licensed under the MIT License.
相似文章
@XAMTO_AI: 35个宝藏网站不赶紧收好,以后可别怪我没事先提醒你。 说真的,互联网上藏着大量被低估的工具,大多数人每天还在用那些又贵又难用的软件,纯属不知道有更好的选择。今天一次性给你整理35个,从绕付费墙到AI修图,从自动化工作流到免费素材,全是实打…
作者整理了35个实用网站推荐,涵盖绕过付费墙、AI修图、自动化工作流、免费素材等类别,帮助用户替代昂贵或难用的软件,提升效率。
@CoderDaMing: 50个感觉'非法'却合法的网站 1. http://t.co/6Bb8Ovaf2u — 下载社交媒体任何视频 2. http://t.co/UoLnozmbk1 — 免费的Photoshop 3. http://t.co/FXolObJx…
这篇文章列出了50个免费且合法的在线工具和资源网站,涵盖视频下载、图像处理、AI辅助、学术搜索、编程工具等多个类别,全部免费使用。
@Smartpigai: 每次有人问我“做内容 / 视频 / 素材管理用啥工具”,我都懒得再解释了,直接一次性整理好,你自己存 1、视频剪辑(用代码做视频) https://github.com/remotion-dev/remotion… 2、语音转字幕 / 会…
一个帖子整理了多个用于内容创作的开源工具,包括视频剪辑、语音转字幕、AI绘图、媒体处理等,强调免费开源且可拼成自己的系统。
@berryxia: 兄弟们,肝出来了!并且全部免费开源了! 我把PP-OCRv6直接做成了本地工作台,在Mac上用CoreML加速,一键就能切换Tiny、Small、Medium三个模型大小! Tiny只有1.5MB适合极致轻量,Medium 34.5MB主…
作者将PP-OCRv6做成本地工作台并免费开源,支持Mac CoreML加速,提供Tiny/Small/Medium三种模型,支持图片上传、批量处理和多种导出格式,本地运行保护隐私。
@Jolyne_AI: 跟大家安利一款好用的截图识别 AI 工具:Snippai。完全开源免费,识别稳、准、快。 不止能把图片里的文字和公式抠出来,还能读懂图像内容、把表格转成可用格式,甚至对截图里的题目直接给思路和答案。 GitHub:http://githu…
Snippai 是一款完全开源免费的截图识别 AI 工具,支持公式转 LaTeX、文字提取、表格转 Markdown、图像理解、截图解题、代码解释、色彩分析和截图翻译等功能。
