Mystyc commited on
Commit
df6d41f
·
verified ·
1 Parent(s): 57a8da4

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +17 -5
server.py CHANGED
@@ -82,19 +82,31 @@ def _predict_from_removebg_api(image_blob: bytes):
82
  print("✅ Sukses menggunakan remove.bg API.")
83
  return StreamingResponse(io.BytesIO(response.content), media_type="image/png")
84
 
 
 
85
  def _predict_from_gradio_space(local_path: str, space_name: str, api_name: str):
86
  """Fungsi yang direfaktor untuk memanggil Gradio Space manapun dengan api_name dinamis."""
87
  print(f"Mencoba Prioritas Fallback: Gradio Space '{space_name}' dengan API '{api_name}'...")
88
  client = Client(src=space_name)
89
- result = client.predict(image=handle_file(local_path), api_name=api_name) # <-- Gunakan variabel api_name
90
 
91
- # Logika untuk mengambil hasil gambar dari output Gradio
92
- out_any = result[1] if isinstance(result, (list, tuple)) and len(result) >= 2 else result
93
- if isinstance(out_any, str) and os.path.exists(out_any):
94
- with open(out_any, "rb") as f:
 
 
 
 
 
 
 
 
 
95
  print(f"✅ Sukses menggunakan Gradio Space '{space_name}'.")
96
  return StreamingResponse(io.BytesIO(f.read()), media_type="image/png")
97
 
 
98
  raise ValueError(f"Output dari Gradio Space '{space_name}' tidak dikenali: {repr(result)}")
99
 
100
  # --- ENDPOINTS ---
 
82
  print("✅ Sukses menggunakan remove.bg API.")
83
  return StreamingResponse(io.BytesIO(response.content), media_type="image/png")
84
 
85
+ # GANTI SELURUH FUNGSI LAMA DENGAN YANG INI
86
+
87
  def _predict_from_gradio_space(local_path: str, space_name: str, api_name: str):
88
  """Fungsi yang direfaktor untuk memanggil Gradio Space manapun dengan api_name dinamis."""
89
  print(f"Mencoba Prioritas Fallback: Gradio Space '{space_name}' dengan API '{api_name}'...")
90
  client = Client(src=space_name)
91
+ result = client.predict(image=handle_file(local_path), api_name=api_name)
92
 
93
+ # --- LOGIKA BARU UNTUK MEMBACA HASIL ---
94
+ image_path = None
95
+ # Jika hasilnya adalah list atau tuple (seperti di Mystyc Space yang baru)
96
+ if isinstance(result, (list, tuple)) and len(result) > 0:
97
+ # Ambil elemen PERTAMA (indeks 0) sebagai path gambar
98
+ image_path = result[0]
99
+ # Jika hasilnya hanya string (seperti di Gradio Space yang lama)
100
+ elif isinstance(result, str):
101
+ image_path = result
102
+
103
+ # Lanjutkan proses jika path gambar valid
104
+ if image_path and isinstance(image_path, str) and os.path.exists(image_path):
105
+ with open(image_path, "rb") as f:
106
  print(f"✅ Sukses menggunakan Gradio Space '{space_name}'.")
107
  return StreamingResponse(io.BytesIO(f.read()), media_type="image/png")
108
 
109
+ # Jika format tidak dikenali sama sekali
110
  raise ValueError(f"Output dari Gradio Space '{space_name}' tidak dikenali: {repr(result)}")
111
 
112
  # --- ENDPOINTS ---