NHLOCAL commited on
Commit
1af19a0
·
1 Parent(s): f8836c0

חזרה לקוד המקורי התקני

Browse files
Files changed (2) hide show
  1. app.py +9 -11
  2. 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
- # יצירת מחרוזת base64 data URL
30
- img_str = f"data:image/jpeg;base64,{encoded_image}"
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.Gallery(label="תוצאה סופית"), # שינוי מ-gr.Image ל-gr.Gallery
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
- from io import BytesIO
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
- ) -> str: # שינוי: החזרת מחרוזת base64
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
- buffered = BytesIO()
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