rembg-aws-lambda


Namerembg-aws-lambda JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/rnag/rembg-aws-lambda
SummaryRemove image background
upload_time2023-04-02 23:10:23
maintainer
docs_urlNone
authorDaniel Gatis
requires_python>3.7, <3.11
license
keywords remove background u2net
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Rembg (AWS Lambda)

[![Downloads](https://pepy.tech/badge/rembg-aws-lambda)](https://pepy.tech/project/rembg-aws-lambda)
[![Downloads](https://pepy.tech/badge/rembg-aws-lambda/month)](https://pepy.tech/project/rembg-aws-lambda)
[![Downloads](https://pepy.tech/badge/rembg-aws-lambda/week)](https://pepy.tech/project/rembg-aws-lambda)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://img.shields.io/badge/License-MIT-blue.svg)
[![Hugging Face Spaces](https://img.shields.io/badge/🤗%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/KenjieDec/RemBG)
[![Streamlit App](https://img.shields.io/badge/🎈%20Streamlit%20Community-Cloud-blue)](https://bgremoval.streamlit.app/)


> This is a *stripped-down* fork of [`danielgatis/rembg`](https://github.com/danielgatis/rembg)
> designed for [AWS Lambda](https://aws.amazon.com/lambda/) environments.

[`rembg-aws-lambda`](https://pypi.org/project/rembg-aws-lambda/) is a tool to remove images background.

<p style="display: flex;align-items: center;justify-content: center;">
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-1.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-1.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-2.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-2.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-3.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-3.out.png" width="100" />
</p>

<p style="display: flex;align-items: center;justify-content: center;">
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-1.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-1.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-2.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-2.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-3.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-3.out.png" width="100" />
</p>

<p style="display: flex;align-items: center;justify-content: center;">
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-1.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-1.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-2.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-2.out.png" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-3.jpg" width="100" />
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-3.out.png" width="100" />
</p>

**Check out my similar project, [`profile-photo`](https://github.com/rnag/profile-photo),
which can create a [headshot](https://www.nfi.edu/headshot-photo/) from an image.**

## Requirements

```
python: >3.7, <3.11
```

## Installation

CPU support:

```bash
pip install rembg-aws-lambda
```

GPU support:

First of all, you need to check if your system supports the `onnxruntime-gpu`.

Go to https://onnxruntime.ai and check the installation matrix.

<p style="display: flex;align-items: center;justify-content: center;">
  <img src="https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/onnxruntime-installation-matrix.png" width="400" />
</p>

If yes, just run:

```bash
pip install rembg-aws-lambda[gpu]
```

## Usage as a library

Input and output as bytes

```python
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

```python
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

```python
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)
```

How to iterate over files in a performatic way

```python
from pathlib import Path
from rembg 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)
```

## Models

All models are downloaded and saved in the user home folder in the `.u2net` directory.

The available models are:

-   u2net ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A pre-trained model for general use cases.
-   u2netp ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2netp.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A lightweight version of u2net model.
-   u2net_human_seg ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net_human_seg.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A pre-trained model for human segmentation.
-   u2net_cloth_seg ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net_cloth_seg.onnx), [source](https://github.com/levindabhi/cloth-segmentation)): 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](https://github.com/danielgatis/rembg/releases/download/v0.0.0/silueta.onnx), [source](https://github.com/xuebinqin/U-2-Net/issues/295)): 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)

<a href="https://www.buymeacoffee.com/ritviknag" target="_blank"><img src="https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;"></a>

## License

Copyright:
  * (c) 2020-present  [Daniel Gatis](https://github.com/danielgatis)
  * (c) 2023-present  [Ritvik Nag](https://github.com/rnag)

Licensed under [MIT License](./LICENSE.txt)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rnag/rembg-aws-lambda",
    "name": "rembg-aws-lambda",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">3.7, <3.11",
    "maintainer_email": "",
    "keywords": "remove,background,u2net",
    "author": "Daniel Gatis",
    "author_email": "danielgatis@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/82/07/5059e42bfed0254d92c8017f6d39f01e3e44e4ca793977e63e76501791af/rembg-aws-lambda-0.2.0.tar.gz",
    "platform": null,
    "description": "# Rembg (AWS Lambda)\n\n[![Downloads](https://pepy.tech/badge/rembg-aws-lambda)](https://pepy.tech/project/rembg-aws-lambda)\n[![Downloads](https://pepy.tech/badge/rembg-aws-lambda/month)](https://pepy.tech/project/rembg-aws-lambda)\n[![Downloads](https://pepy.tech/badge/rembg-aws-lambda/week)](https://pepy.tech/project/rembg-aws-lambda)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://img.shields.io/badge/License-MIT-blue.svg)\n[![Hugging Face Spaces](https://img.shields.io/badge/\ud83e\udd17%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/KenjieDec/RemBG)\n[![Streamlit App](https://img.shields.io/badge/\ud83c\udf88%20Streamlit%20Community-Cloud-blue)](https://bgremoval.streamlit.app/)\n\n\n> This is a *stripped-down* fork of [`danielgatis/rembg`](https://github.com/danielgatis/rembg)\n> designed for [AWS Lambda](https://aws.amazon.com/lambda/) environments.\n\n[`rembg-aws-lambda`](https://pypi.org/project/rembg-aws-lambda/) is a tool to remove images background.\n\n<p style=\"display: flex;align-items: center;justify-content: center;\">\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-1.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-1.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-2.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-2.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-3.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/car-3.out.png\" width=\"100\" />\n</p>\n\n<p style=\"display: flex;align-items: center;justify-content: center;\">\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-1.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-1.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-2.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-2.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-3.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/animal-3.out.png\" width=\"100\" />\n</p>\n\n<p style=\"display: flex;align-items: center;justify-content: center;\">\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-1.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-1.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-2.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-2.out.png\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-3.jpg\" width=\"100\" />\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/examples/girl-3.out.png\" width=\"100\" />\n</p>\n\n**Check out my similar project, [`profile-photo`](https://github.com/rnag/profile-photo),\nwhich can create a [headshot](https://www.nfi.edu/headshot-photo/) from an image.**\n\n## Requirements\n\n```\npython: >3.7, <3.11\n```\n\n## Installation\n\nCPU support:\n\n```bash\npip install rembg-aws-lambda\n```\n\nGPU support:\n\nFirst of all, you need to check if your system supports the `onnxruntime-gpu`.\n\nGo to https://onnxruntime.ai and check the installation matrix.\n\n<p style=\"display: flex;align-items: center;justify-content: center;\">\n  <img src=\"https://raw.githubusercontent.com/rnag/rembg-aws-lambda/master/onnxruntime-installation-matrix.png\" width=\"400\" />\n</p>\n\nIf yes, just run:\n\n```bash\npip install rembg-aws-lambda[gpu]\n```\n\n## Usage as a library\n\nInput and output as bytes\n\n```python\nfrom rembg import remove\n\ninput_path = 'input.png'\noutput_path = 'output.png'\n\nwith open(input_path, 'rb') as i:\n    with open(output_path, 'wb') as o:\n        input = i.read()\n        output = remove(input)\n        o.write(output)\n```\n\nInput and output as a PIL image\n\n```python\nfrom rembg import remove\nfrom PIL import Image\n\ninput_path = 'input.png'\noutput_path = 'output.png'\n\ninput = Image.open(input_path)\noutput = remove(input)\noutput.save(output_path)\n```\n\nInput and output as a numpy array\n\n```python\nfrom rembg import remove\nimport cv2\n\ninput_path = 'input.png'\noutput_path = 'output.png'\n\ninput = cv2.imread(input_path)\noutput = remove(input)\ncv2.imwrite(output_path, output)\n```\n\nHow to iterate over files in a performatic way\n\n```python\nfrom pathlib import Path\nfrom rembg import remove, new_session\n\nsession = new_session()\n\nfor file in Path('path/to/folder').glob('*.png'):\n    input_path = str(file)\n    output_path = str(file.parent / (file.stem + \".out.png\"))\n\n    with open(input_path, 'rb') as i:\n        with open(output_path, 'wb') as o:\n            input = i.read()\n            output = remove(input, session=session)\n            o.write(output)\n```\n\n## Models\n\nAll models are downloaded and saved in the user home folder in the `.u2net` directory.\n\nThe available models are:\n\n-   u2net ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A pre-trained model for general use cases.\n-   u2netp ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2netp.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A lightweight version of u2net model.\n-   u2net_human_seg ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net_human_seg.onnx), [source](https://github.com/xuebinqin/U-2-Net)): A pre-trained model for human segmentation.\n-   u2net_cloth_seg ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net_cloth_seg.onnx), [source](https://github.com/levindabhi/cloth-segmentation)): A pre-trained model for Cloths Parsing from human portrait. Here clothes are parsed into 3 category: Upper body, Lower body and Full body.\n-   silueta ([download](https://github.com/danielgatis/rembg/releases/download/v0.0.0/silueta.onnx), [source](https://github.com/xuebinqin/U-2-Net/issues/295)): Same as u2net but the size is reduced to 43Mb.\n\n### How to train your own model\n\nIf You need more fine tunned models try this:\nhttps://github.com/danielgatis/rembg/issues/193#issuecomment-1055534289\n\n\n## Some video tutorials\n\n- https://www.youtube.com/watch?v=3xqwpXjxyMQ\n- https://www.youtube.com/watch?v=dFKRGXdkGJU\n- https://www.youtube.com/watch?v=Ai-BS_T7yjE\n- https://www.youtube.com/watch?v=dFKRGXdkGJU\n- https://www.youtube.com/watch?v=D7W-C0urVcQ\n\n## References\n\n- https://arxiv.org/pdf/2005.09007.pdf\n- https://github.com/NathanUA/U-2-Net\n- https://github.com/pymatting/pymatting\n\n## Buy me a coffee\n\nLiked some of my work? Buy me a coffee (or more likely a beer)\n\n<a href=\"https://www.buymeacoffee.com/ritviknag\" target=\"_blank\"><img src=\"https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: auto !important;width: auto !important;\"></a>\n\n## License\n\nCopyright:\n  * (c) 2020-present  [Daniel Gatis](https://github.com/danielgatis)\n  * (c) 2023-present  [Ritvik Nag](https://github.com/rnag)\n\nLicensed under [MIT License](./LICENSE.txt)\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Remove image background",
    "version": "0.2.0",
    "split_keywords": [
        "remove",
        "background",
        "u2net"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "874e7436ff7aa81b7951a23311a3855b818db7367b1fc55ce911eada759e2d1b",
                "md5": "44908ac5cd26497cea835b42099449f9",
                "sha256": "451c1103a74e5a9ab2b0b9d7ed30d32cb058b2c047a5683f724e97e149c5172d"
            },
            "downloads": -1,
            "filename": "rembg_aws_lambda-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "44908ac5cd26497cea835b42099449f9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">3.7, <3.11",
            "size": 164795483,
            "upload_time": "2023-04-02T23:09:13",
            "upload_time_iso_8601": "2023-04-02T23:09:13.515976Z",
            "url": "https://files.pythonhosted.org/packages/87/4e/7436ff7aa81b7951a23311a3855b818db7367b1fc55ce911eada759e2d1b/rembg_aws_lambda-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "82075059e42bfed0254d92c8017f6d39f01e3e44e4ca793977e63e76501791af",
                "md5": "7b203b97934da21216cc933366a4d983",
                "sha256": "c076de3a53e72b30a8210c8d232ccafd1328ed981cd7f686234ee8cfb4cdc537"
            },
            "downloads": -1,
            "filename": "rembg-aws-lambda-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7b203b97934da21216cc933366a4d983",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">3.7, <3.11",
            "size": 164825036,
            "upload_time": "2023-04-02T23:10:23",
            "upload_time_iso_8601": "2023-04-02T23:10:23.332040Z",
            "url": "https://files.pythonhosted.org/packages/82/07/5059e42bfed0254d92c8017f6d39f01e3e44e4ca793977e63e76501791af/rembg-aws-lambda-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-02 23:10:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "rnag",
    "github_project": "rembg-aws-lambda",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "rembg-aws-lambda"
}
        
Elapsed time: 0.10370s