Download README.md from ilhamdev/rembg: direct link, hf CLI and curl.
- Browser
- Download file 8.17 kB
-
https://huggingface.co/spaces/ilhamdev/rembg/resolve/main/README.md
- Command line
-
hf download hf://spaces/ilhamdev/rembg/README.md
-
curl -L -o README.md https://huggingface.co/spaces/ilhamdev/rembg/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.30.0
title: Rembg
emoji: π
colorFrom: red
colorTo: pink
sdk: gradio
sdk_version: 6.27.0
python_version: '3.12'
app_file: app.py
pinned: true
RemBG: Pemotong Latar Belakang Foto Berbasis AI
Aplikasi web modern untuk menghapus latar belakang foto secara otomatis dengan hasil PNG transparan 32-bit RGBA. Menggabungkan frontend Next.js 14 bertema Neubrutalism dengan backend Hugging Face ZeroGPU bertenaga pustaka Python rembg (BiRefNet & ISNet).
Pratinjau Tampilan Antarmuka
1. Halaman Utama (Neubrutalism Light Mode)
2. Pratinjau Interaktif Sebelum & Sesudah (Before/After Slider)
Bandingkan foto asli referensi dengan hasil pemisahan latar belakang riil dari model BiRefNet Portrait:

3. Editor Kerja Utama (Workspace Pemrosesan)
Area unggah drag-and-drop, seleksi model segmentasi, opsi alpha matting, dan inspeksi hasil:

Fitur Utama
- Katalog 6 Model Segmentasi AI:
BiRefNet Portrait: Khusus potret manusia, mendeteksi helai rambut halus dan lekuk pakaian.BiRefNet General: Optimal untuk fotografi produk, katalog e-commerce, dan objek benda padat.ISNet General: Pemrosesan cepat dengan batas tepi tegas untuk subjek umum.ISNet Anime: Segmentasi spesifik ilustrasi 2D, karakter anime, dan grafik vektor.U2Net Standard: Model segmentasi serbaguna dengan stabilitas tinggi.U2Net Human: Segmentasi figur manusia ringan untuk kebutuhan cepat.
- Alpha Matting Tepi Halus: Opsi erosi piksel tepi dan ambang batas foreground/background untuk helai rambut tipis.
- Slider Perbandingan Interaktif: Tuas perbandingan Before/After responsif dengan kendali mouse, sentuhan layar (touch-friendly), dan aksesibilitas keyboard (
input[type="range"]). - Ketahanan Kuota & Arsitektur Dual-Engine:
- ZeroGPU + CPU Fallback: Inferensi primer dipercepat oleh ZeroGPU (
remove_bg). Jika kuota GPU limit atau antre, sistem otomatis melakukan failover ke worker CPU (remove_bg_cpu) tanpa interupsi. - Multi-Token Rotation (
HF_TOKENS): Mendukung load-balancing kuota antar beberapa token akun Hugging Face secara acak. - Rotasi & Forwarding IP Publik: Melindungi server dari limit IP anonim terpusat dengan meneruskan IP pengunjung asli serta menyediakan generator IP publik acak untuk lingkungan internal.
- ZeroGPU + CPU Fallback: Inferensi primer dipercepat oleh ZeroGPU (
- Keamanan & Anti-Spam:
- Dilindungi Cloudflare Turnstile tanpa captcha yang mengganggu kenyamanan pengguna.
- Dilengkapi in-memory sliding window IP rate limiter (15 req/menit) untuk mencegah bot flood.
- Privasi Data Penuh: Berkas gambar hanya diproses sementara di memori GPU/CPU terisolasi dan langsung dibuang setelah kanal alpha diekstrak. Tidak ada penyimpanan permanen di server.
- Halaman Error 404 Kustom: Tampilan 404 berdesain Neubrutalism yang aman tanpa kebocoran informasi internal server.
- Telemetri Tanpa Pelacak Pribadi: Modul telemetri aman yang siap dihubungkan dengan Google Analytics (
gtag) atau Plausible tanpa merekam berkas gambar atau identitas pengguna.
Arsitektur Sistem
flowchart TD
A[Pengguna / Browser] -->|Unggah Gambar + Turnstile| B[Frontend Next.js 14]
B -->|Validasi Ukuran & Rate Limit| C[API Route /api/remove-bg]
C -->|Rotasi Token & IP Forwarding| D[Client hf-inference.js]
subgraph Hugging Face Space [ilhamdev-rembg.hf.space]
E[Endpoint ZeroGPU /remove_bg]
F[Endpoint CPU Fallback /remove_bg_cpu]
G[Pustaka Python rembg BiRefNet / ISNet]
end
D -->|Coba Primer: Akselerasi GPU| E
E -->|Injeksi Tensor GPU| G
E -.->|Jika ZeroGPU Quota Limit| F
F -->|Eksekusi Worker CPU| G
G -->|Ekstrak Alpha RGBA 32-bit| D
D -->|Stream Data URL PNG| C
C -->|Response JSON| B
B -->|Pratinjau Checkerboard & Unduh| A
Struktur Direktori Proyek
rembg/
βββ app.py # Entry point backend Gradio, API ZeroGPU & CPU Fallback
βββ requirements.txt # Dependensi Python (rembg, gradio, spaces, pillow)
βββ README.md # Dokumentasi proyek & konfigurasi HF Space
βββ DESIGN.md # Panduan desain Neubrutalism (warna, border, tipografi)
βββ docs/
β βββ screenshots/ # Tangkapan layar dokumentasi (hero, slider, workspace)
βββ frontend/ # Aplikasi web Next.js 14
βββ package.json
βββ next.config.js
βββ vercel.json # Konfigurasi deployment Vercel
βββ .env.example # Contoh variabel lingkungan
βββ public/
β βββ samples/ # Sampel foto sebelum dan sesudah AI
βββ src/
βββ app/
β βββ globals.css # Sistem desain Neubrutalism lengkap
β βββ layout.js # Metadata, Schema.org JSON-LD, OpenGraph
β βββ page.js # UI utama, dropzone, slider before/after
β βββ not-found.js # Halaman 404 kustom
β βββ robots.js # Generator robots.txt dinamis
β βββ sitemap.js # Generator sitemap.xml dinamis
β βββ icon.svg # Favicon Neubrutalist
β βββ api/
β βββ remove-bg/ # Handler pemrosesan utama + Turnstile
β βββ demo-remove-bg/ # Handler live demo sampel
βββ lib/
βββ analytics.js # Dispatcher telemetri aman privasi
βββ demo-data.js # Data URI gambar referensi 512x512 ter-embed
βββ hf-inference.js # Klien Hugging Face, token rotation, IP forwarding, failover CPU
βββ hf-inference.test.js# Pengujian unit modul inferensi
βββ rate-limit.js # Sliding-window rate limiter
βββ turnstile.js # Verifikator server-side Cloudflare Turnstile
Panduan Menjalankan Secara Lokal
1. Menjalankan Backend Python (Gradio)
Pastikan Python 3.10+ terpasang:
# Pasang dependensi Python
pip install -r requirements.txt
# Jalankan server Gradio
python app.py
Aplikasi backend akan aktif di http://localhost:7860.
2. Menjalankan Frontend Next.js
Masuk ke folder frontend:
cd frontend
# Pasang dependensi Node.js
npm install
# Buat berkas environment lokal dari template
cp .env.example .env.local
# Jalankan server pengembang
npm run dev
Buka browser di http://localhost:3000.
3. Menjalankan Pengujian Unit
cd frontend
npm test
Konfigurasi Variabel Lingkungan (frontend/.env.local)
| Variabel | Keterangan | Nilai Contoh |
|---|---|---|
NEXT_PUBLIC_SITE_URL |
Domain kanonikal untuk sitemap dan SEO | https://rembg.vercel.app |
NEXT_PUBLIC_HF_SPACE_URL |
Alamat backend Hugging Face ZeroGPU | https://ilhamdev-rembg.hf.space |
HF_TOKEN |
Token akun Hugging Face untuk alokasi kuota ZeroGPU resmi | hf_xxxxxxxxxxxxxxxxxxxxxxxx |
HF_TOKENS |
Multi-token dipisah koma untuk round-robin/random quota distribution | hf_token1,hf_token2 |
NEXT_PUBLIC_TURNSTILE_SITE_KEY |
Site Key Cloudflare Turnstile | Disediakan Cloudflare |
TURNSTILE_SECRET_KEY |
Secret Key Cloudflare Turnstile | Disediakan Cloudflare |
NEXT_PUBLIC_GSC_VERIFICATION |
Token verifikasi Google Search Console (opsional) | google-site-verification-... |
NEXT_PUBLIC_GA_ID |
Google Analytics Measurement ID (opsional) | G-XXXXXXXXXX |
Catatan Pengujian Lokal: Jika variabel Turnstile dikosongkan saat pengujian lokal, sistem otomatis menggunakan Dummy Test Key resmi dari Cloudflare (
1x00000000000000000000AA).
Lisensi & Atribusi
- Pustaka Segmentasi: danielgatis/rembg
- Model BiRefNet: ZhengPeng7/BiRefNet
- Hosting Inferensi: Hugging Face Spaces (ZeroGPU)
