Skip to main content

Remove image background

Project description

Rembg

Downloads Downloads Downloads License Hugging Face Spaces

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

Buy me a coffee

Liked some of my work? Buy me a coffee (or more likely a beer)

Buy Me A Coffee

License

Copyright (c) 2020-present Daniel Gatis

Licensed under MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rembg-2.0.28.tar.gz (31.1 kB view hashes)

Uploaded Source

Built Distribution

rembg-2.0.28-py3-none-any.whl (12.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page