Remove image background and Image Upscaler
Project description
removebg_infusiblecoder
removebg_infusiblecoder is a tool to remove images background and upscale images using RealESRGAN.
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
Upscale image 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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a87426fdf8afc321e49aa8d85bb8c81beefdb7d73df9a4cd406031b1a5441583 |
|
MD5 | 7aee0f9fb5c2782c1419a03c46df3709 |
|
BLAKE2b-256 | f31dcc79077d696cec55c16ce132686151ad0e164099f804d0b3cd4fd71277d7 |
Hashes for removebg_infusiblecoder-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 926e5079c1bac0f37408765d2192acdb29bc14df7bd3118d1d247fd734a34c97 |
|
MD5 | 203e683183f230dd03e27794bd29a078 |
|
BLAKE2b-256 | 058672034e82eed9c6283e4dc63ba033b02c36044ebcb66c960ea33d8e381905 |