removebg_infusiblecoder
removebg_infusiblecoder is a tool to remove images background.
If this project has helped you, please consider making a donation.
Requirements
python: >3.7, <3.11
Installation
CPU support:
pip install removebg-infusiblecoder
GPU support:
pip install removebg-infusiblecoder[gpu]
Usage as a cli
After the installation step you can use removebg_infusiblecoder just typing removebg_infusiblecoder in your terminal window.
The removebg_infusiblecoder command has 3 subcommands, one for each input type:
ifor filespfor folderssfor http server
You can get help about the main command using:
removebg_infusiblecoder --help
As well, about all the subcommands using:
removebg_infusiblecoder <COMMAND> --help
removebg_infusiblecoder i
Used when input and output are files.
Remove the background from a remote image
curl -s http://input.png | removebg_infusiblecoder i > output.png
Remove the background from a local file
removebg_infusiblecoder i path/to/input.png path/to/output.png
Remove the background specifying a model
removebg_infusiblecoder -m u2netp i path/to/input.png path/to/output.png
Remove the background returning only the mask
removebg_infusiblecoder -om i path/to/input.png path/to/output.png
Remove the background applying an alpha matting
removebg_infusiblecoder -a i path/to/input.png path/to/output.png
removebg_infusiblecoder p
Used when input and output are folders.
Remove the background from all images in a folder
removebg_infusiblecoder p path/to/input path/to/output
Same as before, but watching for new/changed files to process
removebg_infusiblecoder p -w path/to/input path/to/output
removebg_infusiblecoder 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
Usage as a library
Input and output as bytes
from removebg_infusiblecoder 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 removebg_infusiblecoder 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 removebg_infusiblecoder 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 removebg_infusiblecoder 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)
Usage as a docker
Just replace the removebg_infusiblecoder command for docker run syedusama5556/removebg_infusiblecoder.
Try this:
docker run syedusama5556/removebg_infusiblecoder i path/to/input.png path/to/output.png
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.
- silueta (download, source): Same as u2net but the size is reduced to 43Mb.
How to train your own model
If You need more fine tunned models try this: https://github.com/danielgatis/rembg/issues/193#issuecomment-1055534289
Some video tutorials
- https://www.youtube.com/watch?v=3xqwpXjxyMQ
- https://www.youtube.com/watch?v=dFKRGXdkGJU
- https://www.youtube.com/watch?v=Ai-BS_T7yjE
- https://www.youtube.com/watch?v=dFKRGXdkGJU
- https://www.youtube.com/watch?v=D7W-C0urVcQ
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) 2022-present Syed Usama Ahmad
Licensed under MIT License
Release files for removebg-infusiblecoder 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| removebg_infusiblecoder-0.0.2.tar.gz | 37.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| removebg_infusiblecoder-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.0 kB
Release files / removebg_infusiblecoder-0.0.2.tar.gz
| Download URL | removebg_infusiblecoder-0.0.2.tar.gz |
|---|---|
| Size | 37.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0cdd0ae5c486a8fb9dc922ce6fff3b4c6e4252d52198dd16655920c03f207fe7
|
|
BLAKE2b-256 checksum How to use checksums |
9f24db11ea2cffaee0ef1040f0398a82ffb5d18eaed1afc3b621e800ea2451a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|
Release files / removebg_infusiblecoder-0.0.2-py3-none-any.whl
| Download URL | removebg_infusiblecoder-0.0.2-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80998e13eb27221aa022a41cad80be8baa861af3aa68b2d71928cbd5ff68064e
|
|
BLAKE2b-256 checksum How to use checksums |
b0a7a5f54baf7cdb619ca7e11e5c23bea67eadff0c7846803e630a1d4c96e51b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.6
|