Remove image background
Project description
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:
i
for filesp
for folderss
for 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
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
Hashes for removebg_infusiblecoder-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cdd0ae5c486a8fb9dc922ce6fff3b4c6e4252d52198dd16655920c03f207fe7 |
|
MD5 | 2b96019264439ab2afa3486f4a90c5e8 |
|
BLAKE2b-256 | 9f24db11ea2cffaee0ef1040f0398a82ffb5d18eaed1afc3b621e800ea2451a7 |
Hashes for removebg_infusiblecoder-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80998e13eb27221aa022a41cad80be8baa861af3aa68b2d71928cbd5ff68064e |
|
MD5 | e0b742fb360e814b0e9dc2ff744d78aa |
|
BLAKE2b-256 | b0a7a5f54baf7cdb619ca7e11e5c23bea67eadff0c7846803e630a1d4c96e51b |