Rembg adalah alat untuk menghapus latar belakang gambar.
Jika proyek ini membantu Anda, mohon pertimbangkan untuk memberikan donasi.
PhotoRoom Hapus API Latar Belakang https://photoroom.com/api API penghapus latar belakang yang cepat dan akurat |
python: >3.7, <3.13
Jika Anda sudah menginstal onnxruntime
, cukup instal rembg
:
pip install rembg # for library
pip install " rembg[cli] " # for library + cli
Jika tidak, instal rembg
dengan dukungan CPU/GPU eksplisit.
dukungan CPU:
pip install rembg[cpu] # for library
pip install " rembg[cpu,cli] " # for library + cli
Dukungan GPU:
Pertama-tama, Anda perlu memeriksa apakah sistem Anda mendukung onnxruntime-gpu
.
Buka https://onnxruntime.ai dan periksa matriks instalasi.
Jika ya, jalankan saja:
pip install " rembg[gpu] " # for library
pip install " rembg[gpu,cli] " # for library + cli
Setelah langkah instalasi Anda dapat menggunakan rembg cukup mengetik rembg
di jendela terminal Anda.
Perintah rembg
memiliki 4 subperintah, satu untuk setiap tipe input:
i
untuk filep
untuk folders
untuk server httpb
untuk aliran biner piksel RGB24Anda bisa mendapatkan bantuan tentang perintah utama menggunakan:
rembg --help
Juga, tentang semua sub-perintah yang menggunakan:
rembg < COMMAND > --help
i
Digunakan ketika input dan output berupa file.
Hapus latar belakang dari gambar jarak jauh
curl -s http://input.png | rembg i > output.png
Hapus latar belakang dari file lokal
rembg i path/to/input.png path/to/output.png
Hapus latar belakang yang menentukan model
rembg i -m u2netp path/to/input.png path/to/output.png
Hapus latar belakang hanya mengembalikan topeng
rembg i -om path/to/input.png path/to/output.png
Hapus latar belakang dengan menerapkan matting alfa
rembg i -a path/to/input.png path/to/output.png
Melewati parameter tambahan
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
Digunakan ketika input dan output adalah folder.
Hapus latar belakang dari semua gambar dalam folder
rembg p path/to/input path/to/output
Sama seperti sebelumnya, tetapi perhatikan file baru/yang diubah untuk diproses
rembg p -w path/to/input path/to/output
s
Digunakan untuk memulai server http.
rembg s --host 0.0.0.0 --port 7000 --log_level info
Untuk melihat dokumentasi endpoint lengkap, kunjungi: http://localhost:7000/api
.
Hapus latar belakang dari url gambar
curl -s " http://localhost:7000/api/remove?url=http://input.png " -o output.png
Hapus latar belakang dari gambar yang diunggah
curl -s -F file=@/path/to/input.jpg " http://localhost:7000/api/remove " -o output.png
b
Memproses urutan gambar RGB24 dari stdin. Ini dimaksudkan untuk digunakan dengan program lain, seperti FFMPEG, yang mengeluarkan data piksel RGB24 ke stdout, yang disalurkan ke stdin program ini, meskipun tidak ada yang menghalangi Anda mengetik gambar secara manual di stdin.
rembg b image_width image_height -o output_specifier
Argumen:
output-%03u.png
, maka file keluaran akan diberi nama output-000.png
, output-001.png
, output-002.png
, dll. File keluaran akan menjadi disimpan dalam format PNG terlepas dari ekstensi yang ditentukan. Anda dapat menghilangkannya untuk menulis hasil ke stdout.Contoh penggunaan dengan FFMPEG:
ffmpeg -i input.mp4 -ss 10 -an -f rawvideo -pix_fmt rgb24 pipe:1 | rembg b 1280 720 -o folder/output-%03u.png
Nilai lebar dan tinggi harus sesuai dengan dimensi gambar keluaran dari FFMPEG. Catatan untuk FFMPEG, bagian " -an -f rawvideo -pix_fmt rgb24 pipe:1
" diperlukan agar semuanya berfungsi.
Input dan output sebagai byte
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 dan output sebagai gambar 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 )
Input dan output sebagai array 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 )
Paksa keluaran sebagai byte
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 )
Cara mengulangi file dengan cara yang performatif
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 )
Untuk melihat daftar lengkap contoh cara menggunakan rembg, buka halaman contoh.
Ganti saja perintah rembg
untuk docker run danielgatis/rembg
.
Coba ini:
docker run -v path/to/input:/rembg danielgatis/rembg i input.png path/to/output/output.png
Semua model diunduh dan disimpan di folder beranda pengguna di direktori .u2net
.
Model yang tersedia adalah:
Jika Anda memerlukan model yang lebih baik, coba ini: #193 (komentar)
Perpustakaan ini secara langsung bergantung pada perpustakaan onnxruntime. Oleh karena itu, kami hanya dapat memperbarui versi Python ketika onnxruntime menyediakan dukungan untuk versi spesifik tersebut.
Menyukai beberapa karya saya? Belikan saya kopi (atau lebih mungkin bir)
Hak Cipta (c) 2020-sekarang Daniel Gatis
Berlisensi di bawah Lisensi MIT