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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file rembg-2.0.28.tar.gz.

File metadata

  • Download URL: rembg-2.0.28.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for rembg-2.0.28.tar.gz
Algorithm Hash digest
SHA256 77b6043ef06c395e20d5609d8ec2de3670b4cb890de2d38c5d50b60449b87c95
MD5 e987e95fec7eda63bf916213d35b39c5
BLAKE2b-256 4e017b64a36dd1b3e0bdc2fc019e73a669e7664b8e8b2e6ce5027261a1ba9208

See more details on using hashes here.

File details

Details for the file rembg-2.0.28-py3-none-any.whl.

File metadata

  • Download URL: rembg-2.0.28-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for rembg-2.0.28-py3-none-any.whl
Algorithm Hash digest
SHA256 ecaf6f71a618709d92b871fc59fe7fb326823c9a3872f9b4db8b8e374257754d
MD5 9ab54240e09679aba1a2c9110b0015b1
BLAKE2b-256 02c35324ac706e2a6bfe3cc38b159929558ac8ec9738cf45cb6ce43f84d3f3d9

See more details on using hashes here.

Supported by

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