任选其一
main(rebg_type="web") # 更精准,低清晰度,需要网络
main(rebg_type="onnx") # 更快速,更清晰,需要性能
在线apikey,remove.bg网站。临时邮箱 ,可用域名:@bestdefinitions.com
思路来源:https://github.com/huanghaozi/AutoMatting (在此基础上,批量获取,自动切换apikey解决频繁,错误,额度等问题,自动换背景图,规范导入导出文件名,不足之处就是没有大佬的GUI)
-
必要依赖:
pip install -r requiremens.txt
-
可选依赖:
安装cv2,
pip install opencv-contrib-python==4.5.5.64
。适用于:python3.7 python3.8 python3.9 解释器安装Pillow,
pip install Pillow==9.3.0
。适配rembg==2.0.30
以下内容为rembg库官方文档,仅用于存档。
Rembg is a tool to remove images background.
If this project has helped you, please consider making a donation.
python: >3.7, <3.11
CPU support:
pip install rembg
GPU support:
pip install rembg[gpu]
After the installation step you can use rembg just typing rembg
in your terminal window.
The rembg
command has 3 subcommands, one for each input type:
i
for filesp
for folderss
for http server
You can get help about the main command using:
rembg --help
As well, about all the subcommands using:
rembg <COMMAND> --help
Used when input and output are files.
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 specifying a model
rembg i -m u2netp path/to/input.png path/to/output.png
Remove the background returning only the mask
rembg i -om path/to/input.png path/to/output.png
Remove the background applying an alpha matting
rembg i -a path/to/input.png path/to/output.png
Used when input and output are folders.
Remove the background from all images in a folder
rembg p path/to/input path/to/output
Same as before, but watching for new/changed files to process
rembg p -w path/to/input path/to/output
Used to start http server.
To see the complete endpoints documentation, go to: http://localhost:5000/docs
.
Remove the background from an image url
curl -s "http://localhost:5000/?url=http://input.png" -o output.png
Remove the background from an uploaded image
curl -s -F file=@/path/to/input.jpg "http://localhost:5000" -o output.png
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)
How to iterate over files in a performatic way
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)
Just replace the rembg
command for docker run danielgatis/rembg
.
Try this:
docker run danielgatis/rembg i path/to/input.png path/to/output.png
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.
- silueta (download, source): Same as u2net but the size is reduced to 43Mb.
If You need more fine tunned models try this: danielgatis/rembg#193 (comment)
- 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
- https://arxiv.org/pdf/2005.09007.pdf
- https://github.com/NathanUA/U-2-Net
- https://github.com/pymatting/pymatting
Liked some of my work? Buy me a coffee (or more likely a beer)
Copyright (c) 2020-present Daniel Gatis
Licensed under MIT License