Rembg est un outil pour supprimer l'arrière-plan des images.
Si ce projet vous a aidé, pensez à faire un don.
PhotoRoom Supprimer l'API d'arrière-plan https://photoroom.com/api API de suppression d'arrière-plan rapide et précise |
python: >3.7, <3.13
Si onnxruntime
est déjà installé, installez simplement rembg
:
pip install rembg # for library
pip install " rembg[cli] " # for library + cli
Sinon, installez rembg
avec une prise en charge explicite CPU/GPU.
Prise en charge du processeur :
pip install rembg[cpu] # for library
pip install " rembg[cpu,cli] " # for library + cli
Prise en charge des GPU :
Tout d’abord, vous devez vérifier si votre système prend en charge onnxruntime-gpu
.
Accédez à https://onnxruntime.ai et vérifiez la matrice d'installation.
Si oui, exécutez simplement :
pip install " rembg[gpu] " # for library
pip install " rembg[gpu,cli] " # for library + cli
Après l'étape d'installation, vous pouvez utiliser rembg en tapant simplement rembg
dans la fenêtre de votre terminal.
La commande rembg
comporte 4 sous-commandes, une pour chaque type d'entrée :
i
pour les fichiersp
pour les dossierss
pour le serveur httpb
pour le flux binaire RVB24 pixelsVous pouvez obtenir de l'aide sur la commande principale en utilisant :
rembg --help
Ainsi que toutes les sous-commandes utilisant :
rembg < COMMAND > --help
i
Utilisé lorsque l'entrée et la sortie sont des fichiers.
Supprimer l'arrière-plan d'une image distante
curl -s http://input.png | rembg i > output.png
Supprimer l'arrière-plan d'un fichier local
rembg i path/to/input.png path/to/output.png
Supprimer l'arrière-plan en spécifiant un modèle
rembg i -m u2netp path/to/input.png path/to/output.png
Supprime l'arrière-plan en renvoyant uniquement le masque
rembg i -om path/to/input.png path/to/output.png
Supprimer l'arrière-plan en appliquant un passe-partout alpha
rembg i -a path/to/input.png path/to/output.png
Passer les paramètres des extras
SAM example
rembg i -m sam -x ' { "sam_prompt": [{"type": "point", "data": [724, 740], "label": 1}] } ' examples/plants-1.jpg examples/plants-1.out.png
Custom model example
rembg i -m u2net_custom -x ' {"model_path": "~/.u2net/u2net.onnx"} ' path/to/input.png path/to/output.png
p
Utilisé lorsque l'entrée et la sortie sont des dossiers.
Supprimer l'arrière-plan de toutes les images d'un dossier
rembg p path/to/input path/to/output
Comme avant, mais en surveillant les fichiers nouveaux/modifiés à traiter
rembg p -w path/to/input path/to/output
s
Utilisé pour démarrer le serveur http.
rembg s --host 0.0.0.0 --port 7000 --log_level info
Pour consulter la documentation complète sur les points de terminaison, accédez à : http://localhost:7000/api
.
Supprimer l'arrière-plan d'une URL d'image
curl -s " http://localhost:7000/api/remove?url=http://input.png " -o output.png
Supprimer l'arrière-plan d'une image téléchargée
curl -s -F file=@/path/to/input.jpg " http://localhost:7000/api/remove " -o output.png
b
Traitez une séquence d'images RVB24 à partir de stdin. Ceci est destiné à être utilisé avec un autre programme, tel que FFMPEG, qui génère des données de pixels RVB24 vers la sortie standard, qui sont transmises au stdin de ce programme, bien que rien ne vous empêche de saisir manuellement des images sur stdin.
rembg b image_width image_height -o output_specifier
Arguments :
output-%03u.png
, alors les fichiers de sortie seront nommés output-000.png
, output-001.png
, output-002.png
, etc. Les fichiers de sortie seront enregistré au format PNG quelle que soit l’extension spécifiée. Vous pouvez l'omettre pour écrire les résultats sur la sortie standard.Exemple d'utilisation avec FFMPEG :
ffmpeg -i input.mp4 -ss 10 -an -f rawvideo -pix_fmt rgb24 pipe:1 | rembg b 1280 720 -o folder/output-%03u.png
Les valeurs de largeur et de hauteur doivent correspondre à la dimension des images de sortie de FFMPEG. Remarque pour FFMPEG, la partie " -an -f rawvideo -pix_fmt rgb24 pipe:1
" est requise pour que l'ensemble fonctionne.
Entrée et sortie sous forme d'octets
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 )
Entrée et sortie sous forme d'image PIL
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 )
Entrée et sortie sous forme de tableau numpy
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 )
Forcer la sortie en octets
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 , force_return_bytes = True )
o . write ( output )
Comment parcourir les fichiers de manière performante
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 )
Pour voir une liste complète d'exemples sur la façon d'utiliser rembg, rendez-vous sur la page des exemples.
Remplacez simplement la commande rembg
par docker run danielgatis/rembg
.
Essayez ceci :
docker run -v path/to/input:/rembg danielgatis/rembg i input.png path/to/output/output.png
Tous les modèles sont téléchargés et enregistrés dans le dossier d'accueil de l'utilisateur dans le répertoire .u2net
.
Les modèles disponibles sont :
Si vous avez besoin de modèles plus précis, essayez ceci : #193 (commentaire)
Cette bibliothèque dépend directement de la bibliothèque onnxruntime. Par conséquent, nous ne pouvons mettre à jour la version de Python que lorsque onnxruntime fournit la prise en charge de cette version spécifique.
Vous avez aimé certains de mes travaux ? Achetez-moi un café (ou plus probablement une bière)
Copyright (c) 2020-présent Daniel Gatis
Sous licence MIT