# Rembg (Serverless)
[](https://pepy.tech/project/rembg-aws-lambda)
[](https://pepy.tech/project/rembg-aws-lambda)
[](https://pepy.tech/project/rembg-aws-lambda)
[](https://img.shields.io/badge/License-MIT-blue.svg)
[](https://huggingface.co/spaces/KenjieDec/RemBG)
[](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-serverless`](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-serverless",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>3.7",
"maintainer_email": null,
"keywords": "remove, background, u2net",
"author": "Daniel Gatis",
"author_email": "danielgatis@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e1/60/8d2e433aeadf3f00abdb28c49344395798d8942bf2987669afa6667becd9/rembg_serverless-0.1.3.5.tar.gz",
"platform": null,
"description": "# Rembg (Serverless)\n\n[](https://pepy.tech/project/rembg-aws-lambda)\n[](https://pepy.tech/project/rembg-aws-lambda)\n[](https://pepy.tech/project/rembg-aws-lambda)\n[](https://img.shields.io/badge/License-MIT-blue.svg)\n[](https://huggingface.co/spaces/KenjieDec/RemBG)\n[](https://bgremoval.streamlit.app/)\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-serverless`](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## 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\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": null,
"summary": "Remove image background",
"version": "0.1.3.5",
"project_urls": {
"Homepage": "https://github.com/rnag/rembg-aws-lambda"
},
"split_keywords": [
"remove",
" background",
" u2net"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4c921bc7001fcbbe90cadd21428fab1b4ff05048f9193788888aaedcb12c59b8",
"md5": "c4c5551ae492b8482a04b3dd48df01b2",
"sha256": "577be43ffc311aa0b6a6096c68c2b45576329b4e40f9cd4dc988e650908a128a"
},
"downloads": -1,
"filename": "rembg_serverless-0.1.3.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c4c5551ae492b8482a04b3dd48df01b2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.12,>3.7",
"size": 8507671,
"upload_time": "2024-09-30T13:01:15",
"upload_time_iso_8601": "2024-09-30T13:01:15.599866Z",
"url": "https://files.pythonhosted.org/packages/4c/92/1bc7001fcbbe90cadd21428fab1b4ff05048f9193788888aaedcb12c59b8/rembg_serverless-0.1.3.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e1608d2e433aeadf3f00abdb28c49344395798d8942bf2987669afa6667becd9",
"md5": "5ba8f6430c697d4c6cf0fa49d6a64e8e",
"sha256": "464778a14163e73895bee459f7785876605a3b17326815402cb0aba0f2f2ee97"
},
"downloads": -1,
"filename": "rembg_serverless-0.1.3.5.tar.gz",
"has_sig": false,
"md5_digest": "5ba8f6430c697d4c6cf0fa49d6a64e8e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>3.7",
"size": 4278188,
"upload_time": "2024-09-30T13:01:19",
"upload_time_iso_8601": "2024-09-30T13:01:19.704849Z",
"url": "https://files.pythonhosted.org/packages/e1/60/8d2e433aeadf3f00abdb28c49344395798d8942bf2987669afa6667becd9/rembg_serverless-0.1.3.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-30 13:01:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rnag",
"github_project": "rembg-aws-lambda",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "rembg-serverless"
}