Rembg
Rembg is a tool to remove images background. That is it.
If this project has helped you, please consider making a donation.
Requirements
python: >3.7, <3.11
Installation
CPU support:
pip install rembg
GPU support:
pip install rembg[gpu]
Usage as a cli
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 from all images in a folder
rembg p path/to/input path/to/output
Usage as a server
Start the server
rembg s
And go to:
http://localhost:5000/docs
Image with background:
https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg
Image without background:
http://localhost:5000/?url=https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg
Also you can send the file as a FormData (multipart/form-data):
<form
action="http://localhost:5000"
method="post"
enctype="multipart/form-data"
>
<input type="file" name="file" />
<input type="submit" value="upload" />
</form>
Usage as a library
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)
Usage as a docker
Try this:
docker run -p 5000:5000 danielgatis/rembg s
Image with background:
https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg
Image without background:
http://localhost:5000/?url=https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Gull_portrait_ca_usa.jpg/1280px-Gull_portrait_ca_usa.jpg
Models
All models are downloaded and saved in the user home folder in the .u2net directory.
The available models are:
- 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.
How to train your own model
If You need more fine tunned models try this: https://github.com/danielgatis/rembg/issues/193#issuecomment-1055534289
Advance usage
Sometimes it is possible to achieve better results by turning on alpha matting. Example:
curl -s http://input.png | rembg i -a -ae 15 > output.png
| Original | Without alpha matting | With alpha matting (-a -ae 15) |
In the cloud
Please contact me at danielgatis@gmail.com if you need help to put it on the cloud.
References
- https://arxiv.org/pdf/2005.09007.pdf
- https://github.com/NathanUA/U-2-Net
- https://github.com/pymatting/pymatting
Buy me a coffee
Liked some of my work? Buy me a coffee (or more likely a beer)
License
Copyright (c) 2020-present Daniel Gatis
Licensed under MIT License
Release files for rembg 2.0.28
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rembg-2.0.28.tar.gz | 31.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rembg-2.0.28-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.9 kB
Release files / rembg-2.0.28.tar.gz
| Download URL | rembg-2.0.28.tar.gz |
|---|---|
| Size | 31.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77b6043ef06c395e20d5609d8ec2de3670b4cb890de2d38c5d50b60449b87c95
|
|
BLAKE2b-256 checksum How to use checksums |
4e017b64a36dd1b3e0bdc2fc019e73a669e7664b8e8b2e6ce5027261a1ba9208
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / rembg-2.0.28-py3-none-any.whl
| Download URL | rembg-2.0.28-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecaf6f71a618709d92b871fc59fe7fb326823c9a3872f9b4db8b8e374257754d
|
|
BLAKE2b-256 checksum How to use checksums |
02c35324ac706e2a6bfe3cc38b159929558ac8ec9738cf45cb6ce43f84d3f3d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|