ilhamdev commited on
Commit
d8f802e
·
verified ·
1 Parent(s): ac88f6e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -11
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 agar request berikutnya cepat.
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 (sekalian jadi health-check Hugging Face) ----------
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=["*"], # nanti bisa diganti domain vercel.app kamu
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: UI Gradio di "/", REST API di /remove-bg
52
  app = gr.mount_gradio_app(app, demo, path="/")
53
 
54
- if __name__ == "__main__":
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