Spaces:
Sleeping
Sleeping
חזרה לקוד המקורי התקני
Browse files- app.py +9 -11
- backend.py +3 -6
app.py
CHANGED
@@ -25,13 +25,10 @@ def inference(image: Image.Image, gemini_api_key: str):
|
|
25 |
progress(fraction, desc=description)
|
26 |
|
27 |
try:
|
|
|
28 |
encoded_image = process_image(image, gemini_api_key, progress_callback=progress_callback)
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
# החזרת רשימה עם התמונה היחידה בפורמט base64
|
33 |
-
return [img_str], gr.update(value="", visible=False)
|
34 |
-
|
35 |
except Exception as e:
|
36 |
# טיפול בשגיאה והחזרת הודעה ב-Textbox
|
37 |
error_message = f"שגיאה: {type(e).__name__}\n"
|
@@ -62,19 +59,20 @@ demo = gr.Interface(
|
|
62 |
)
|
63 |
],
|
64 |
outputs=[
|
65 |
-
gr.
|
66 |
-
gr.Textbox(label="שגיאות", visible=False)
|
67 |
],
|
68 |
title=title_str,
|
69 |
description=description_str,
|
70 |
examples=[
|
71 |
-
[EXAMPLE_IMAGE]
|
72 |
],
|
73 |
flagging_mode="never",
|
74 |
-
theme=gr.themes.Default()
|
75 |
)
|
76 |
|
77 |
|
78 |
if __name__ == "__main__":
|
79 |
# ניתן להגדיר share=True אם רוצים לשתף מחוץ לרשת המקומית
|
80 |
-
demo.launch()
|
|
|
|
25 |
progress(fraction, desc=description)
|
26 |
|
27 |
try:
|
28 |
+
# כעת נקרא ל-process_image עם אפשרות לעדכן התקדמות
|
29 |
encoded_image = process_image(image, gemini_api_key, progress_callback=progress_callback)
|
30 |
+
decoded_image = Image.open(BytesIO(base64.b64decode(encoded_image)))
|
31 |
+
return decoded_image, gr.update(value="", visible=False) # החזרת תמונה ו-Textbox מוסתר
|
|
|
|
|
|
|
|
|
32 |
except Exception as e:
|
33 |
# טיפול בשגיאה והחזרת הודעה ב-Textbox
|
34 |
error_message = f"שגיאה: {type(e).__name__}\n"
|
|
|
59 |
)
|
60 |
],
|
61 |
outputs=[
|
62 |
+
gr.Image(type="pil", label="תוצאה סופית"),
|
63 |
+
gr.Textbox(label="שגיאות", visible=False) # הוספת רכיב להצגת שגיאות
|
64 |
],
|
65 |
title=title_str,
|
66 |
description=description_str,
|
67 |
examples=[
|
68 |
+
[EXAMPLE_IMAGE] # תמונה בלבד, ללא מפתח API
|
69 |
],
|
70 |
flagging_mode="never",
|
71 |
+
theme=gr.themes.Default() # עיצוב קליל לממשק
|
72 |
)
|
73 |
|
74 |
|
75 |
if __name__ == "__main__":
|
76 |
# ניתן להגדיר share=True אם רוצים לשתף מחוץ לרשת המקומית
|
77 |
+
demo.launch()
|
78 |
+
|
backend.py
CHANGED
@@ -8,7 +8,7 @@ import cv2
|
|
8 |
from PIL import Image, ImageFilter
|
9 |
from scipy.ndimage import binary_dilation
|
10 |
from omegaconf import OmegaConf
|
11 |
-
|
12 |
# -----------------------------
|
13 |
# 1) הגדרת המפתח API של Gemini כפרמטר
|
14 |
# -----------------------------
|
@@ -242,7 +242,7 @@ def process_image(
|
|
242 |
pil_image: Image.Image,
|
243 |
gemini_api_key: str,
|
244 |
progress_callback=None
|
245 |
-
) ->
|
246 |
if not gemini_api_key:
|
247 |
raise ValueError("מפתח API של Gemini אינו מוזן.")
|
248 |
"""
|
@@ -335,8 +335,5 @@ def process_image(
|
|
335 |
progress_callback(1.0, "סיימנו! מחזירים את התוצאה הסופית.")
|
336 |
|
337 |
# המרת התמונה ל-base64
|
338 |
-
|
339 |
-
final_image.save(buffered, format="JPEG")
|
340 |
-
encoded_image = base64.b64encode(buffered.getvalue()).decode("utf-8")
|
341 |
-
|
342 |
return encoded_image
|
|
|
8 |
from PIL import Image, ImageFilter
|
9 |
from scipy.ndimage import binary_dilation
|
10 |
from omegaconf import OmegaConf
|
11 |
+
|
12 |
# -----------------------------
|
13 |
# 1) הגדרת המפתח API של Gemini כפרמטר
|
14 |
# -----------------------------
|
|
|
242 |
pil_image: Image.Image,
|
243 |
gemini_api_key: str,
|
244 |
progress_callback=None
|
245 |
+
) -> Image.Image:
|
246 |
if not gemini_api_key:
|
247 |
raise ValueError("מפתח API של Gemini אינו מוזן.")
|
248 |
"""
|
|
|
335 |
progress_callback(1.0, "סיימנו! מחזירים את התוצאה הסופית.")
|
336 |
|
337 |
# המרת התמונה ל-base64
|
338 |
+
encoded_image = encode_image_to_base64(final_image)
|
|
|
|
|
|
|
339 |
return encoded_image
|