Remove image background
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rembg-2.0.28.tar.gz
.
File metadata
- Download URL: rembg-2.0.28.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
77b6043ef06c395e20d5609d8ec2de3670b4cb890de2d38c5d50b60449b87c95
|
|
MD5 |
e987e95fec7eda63bf916213d35b39c5
|
|
BLAKE2b-256 |
4e017b64a36dd1b3e0bdc2fc019e73a669e7664b8e8b2e6ce5027261a1ba9208
|
File details
Details for the file rembg-2.0.28-py3-none-any.whl
.
File metadata
- Download URL: rembg-2.0.28-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
ecaf6f71a618709d92b871fc59fe7fb326823c9a3872f9b4db8b8e374257754d
|
|
MD5 |
9ab54240e09679aba1a2c9110b0015b1
|
|
BLAKE2b-256 |
02c35324ac706e2a6bfe3cc38b159929558ac8ec9738cf45cb6ce43f84d3f3d9
|