rembg is a python library which utilizes Neural Network AI models and ONNX to remove the backgrounds from supplied image files. Can be used as a library or a CLI tool.
#image-processing #background-removal #python #library #ai #neuralnet #machine-learning #ml
|
преди 2 години | |
---|---|---|
.github | преди 2 години | |
examples | преди 5 години | |
rembg | преди 2 години | |
tests | преди 2 години | |
.dockerignore | преди 3 години | |
.editorconfig | преди 5 години | |
.gitattributes | преди 3 години | |
.gitignore | преди 3 години | |
Dockerfile | преди 2 години | |
LICENSE.txt | преди 5 години | |
MANIFEST.in | преди 3 години | |
README.md | преди 2 години | |
build-exe | преди 2 години | |
onnxruntime-installation-matrix.png | преди 2 години | |
pyproject.toml | преди 2 години | |
pytest.ini | преди 3 години | |
rembg.py | преди 3 години | |
requirements-gpu.txt | преди 2 години | |
requirements.txt | преди 2 години | |
setup.cfg | преди 3 години | |
setup.py | преди 2 години | |
versioneer.py | преди 3 години |
Rembg is a tool to remove images background.
If this project has helped you, please consider making a donation.
![]() |
PhotoRoom Remove Background API
https://photoroom.com/api
Fast and accurate background remover API |
python: >3.7, <3.11
CPU support:
pip install rembg
GPU support:
First of all, you need to check if your system supports the onnxruntime-gpu
.
Go to https://onnxruntime.ai and check the installation matrix.
If yes, just run:
pip install rembg[gpu]
After the installation step you can use rembg just typing rembg
in your terminal window.
The rembg
command has 3 subcommands, one for each input type:
i
for filesp
for folderss
for http serverYou can get help about the main command using:
rembg --help
As well, about all the subcommands using:
rembg <COMMAND> --help
i
Used when input and output are files.
Remove the background from a remote image
curl -s http://input.png | rembg i > output.png
Remove the background from a local file
rembg i path/to/input.png path/to/output.png
Remove the background specifying a model
rembg i -m u2netp path/to/input.png path/to/output.png
Remove the background returning only the mask
rembg i -om path/to/input.png path/to/output.png
Remove the background applying an alpha matting
rembg i -a path/to/input.png path/to/output.png
Passing extras parameters
rembg i -m sam -x '{"input_labels": [1], "input_points": [[100,100]]}' path/to/input.png path/to/output.png
p
Used when input and output are folders.
Remove the background from all images in a folder
rembg p path/to/input path/to/output
Same as before, but watching for new/changed files to process
rembg p -w path/to/input path/to/output
s
Used to start http server.
To see the complete endpoints documentation, go to: http://localhost:5000/docs
.
Remove the background from an image url
curl -s "http://localhost:5000/?url=http://input.png" -o output.png
Remove the background from an uploaded image
curl -s -F file=@/path/to/input.jpg "http://localhost:5000" -o output.png
Input and output as bytes
from rembg import remove
input_path = 'input.png'
output_path = 'output.png'
with open(input_path, 'rb') as i:
with open(output_path, '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_path = 'input.png'
output_path = 'output.png'
input = Image.open(input_path)
output = remove(input)
output.save(output_path)
Input and output as a numpy array
from rembg import remove
import cv2
input_path = 'input.png'
output_path = 'output.png'
input = cv2.imread(input_path)
output = remove(input)
cv2.imwrite(output_path, output)
How to iterate over files in a performatic way
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)
Just replace the rembg
command for docker run danielgatis/rembg
.
Try this:
docker run danielgatis/rembg i path/to/input.png path/to/output.png
All models are downloaded and saved in the user home folder in the .u2net
directory.
The available models are:
original | u2net | u2netp | u2net_human_seg | u2net_cloth_seg | silueta | isnet-general-use | sam |
---|---|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
If You need more fine tunned models try this: https://github.com/danielgatis/rembg/issues/193#issuecomment-1055534289
Liked some of my work? Buy me a coffee (or more likely a beer)
Copyright (c) 2020-present Daniel Gatis
Licensed under MIT License