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.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6d41f43b97ff7b4f3132c20395d2b1b6370fd742ba17b63c88407cd2c1696e8 |
|
MD5 | 7e36e66bacefe10cdbbf87a6949fa4b4 |
|
BLAKE2b-256 | 647b020e129797722d1ab9b6959b541cb50bb995d0293074cb355064ddf2b2fd |
Hashes for removebg_infusiblecoder-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b53752e08135791f3b1da0bdfca87f995f0ac921a835eff84f49d9ce7f7ea742 |
|
MD5 | 3594910351514cbef754f78d6825e42f |
|
BLAKE2b-256 | 841d103df28c6de4de5621033ef5fa30f83825b20e049e4d4f5d8a29bd31e872 |