Skip to content
/ rembg Public
forked from danielgatis/rembg

Rembg is a tool to remove images background.

License

Notifications You must be signed in to change notification settings

krea-ai/rembg

 
 

Repository files navigation

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.

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:

How to train your own model

If You need more fine tunned models try this: danielgatis#193 (comment)

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 [email protected] 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

About

Rembg is a tool to remove images background.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Dockerfile 1.0%