Update app.py
Browse files
app.py
CHANGED
|
@@ -6,31 +6,27 @@ from fastapi.responses import Response
|
|
| 6 |
from rembg import remove, new_session
|
| 7 |
from PIL import Image
|
| 8 |
|
| 9 |
-
# Model dimuat SEKALI saat startup
|
| 10 |
-
# "u2netp" = model ringan (~4MB, download cepat).
|
| 11 |
-
# Ganti ke "u2net" atau "isnet-general-use" jika ingin kualitas lebih tinggi.
|
| 12 |
session = new_session("u2netp")
|
| 13 |
|
| 14 |
def remove_bg(img: Image.Image) -> Image.Image:
|
| 15 |
return remove(img, session=session)
|
| 16 |
|
| 17 |
-
# ---------- 1) UI GRADIO (
|
| 18 |
demo = gr.Interface(
|
| 19 |
fn=remove_bg,
|
| 20 |
inputs=gr.Image(type="pil", label="Upload Gambar"),
|
| 21 |
outputs=gr.Image(type="pil", label="Hasil (PNG Transparan)"),
|
| 22 |
title="Remove Background API",
|
| 23 |
description="Backend remove background. REST API: POST /remove-bg",
|
| 24 |
-
api_name="remove_bg",
|
| 25 |
)
|
| 26 |
|
| 27 |
# ---------- 2) REST API FASTAPI (untuk frontend Vercel) ----------
|
| 28 |
app = FastAPI()
|
| 29 |
|
| 30 |
-
# Izinkan frontend Vercel memanggil API ini (CORS)
|
| 31 |
app.add_middleware(
|
| 32 |
CORSMiddleware,
|
| 33 |
-
allow_origins=["*"],
|
| 34 |
allow_methods=["*"],
|
| 35 |
allow_headers=["*"],
|
| 36 |
)
|
|
@@ -48,9 +44,7 @@ async def api_remove_bg(file: UploadFile = File(...)):
|
|
| 48 |
output_img.save(buf, format="PNG")
|
| 49 |
return Response(content=buf.getvalue(), media_type="image/png")
|
| 50 |
|
| 51 |
-
# Gabungkan:
|
| 52 |
app = gr.mount_gradio_app(app, demo, path="/")
|
| 53 |
|
| 54 |
-
|
| 55 |
-
import uvicorn
|
| 56 |
-
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
|
| 6 |
from rembg import remove, new_session
|
| 7 |
from PIL import Image
|
| 8 |
|
| 9 |
+
# Model dimuat SEKALI saat startup
|
|
|
|
|
|
|
| 10 |
session = new_session("u2netp")
|
| 11 |
|
| 12 |
def remove_bg(img: Image.Image) -> Image.Image:
|
| 13 |
return remove(img, session=session)
|
| 14 |
|
| 15 |
+
# ---------- 1) UI GRADIO (sekaligus health-check) ----------
|
| 16 |
demo = gr.Interface(
|
| 17 |
fn=remove_bg,
|
| 18 |
inputs=gr.Image(type="pil", label="Upload Gambar"),
|
| 19 |
outputs=gr.Image(type="pil", label="Hasil (PNG Transparan)"),
|
| 20 |
title="Remove Background API",
|
| 21 |
description="Backend remove background. REST API: POST /remove-bg",
|
|
|
|
| 22 |
)
|
| 23 |
|
| 24 |
# ---------- 2) REST API FASTAPI (untuk frontend Vercel) ----------
|
| 25 |
app = FastAPI()
|
| 26 |
|
|
|
|
| 27 |
app.add_middleware(
|
| 28 |
CORSMiddleware,
|
| 29 |
+
allow_origins=["*"],
|
| 30 |
allow_methods=["*"],
|
| 31 |
allow_headers=["*"],
|
| 32 |
)
|
|
|
|
| 44 |
output_img.save(buf, format="PNG")
|
| 45 |
return Response(content=buf.getvalue(), media_type="image/png")
|
| 46 |
|
| 47 |
+
# Gabungkan: Gradio UI di "/", REST API di /remove-bg
|
| 48 |
app = gr.mount_gradio_app(app, demo, path="/")
|
| 49 |
|
| 50 |
+
# JANGAN pakai uvicorn.run() — Hugging Face Spaces akan menjalankan `app` secara otomatis
|
|
|
|
|
|