vab42 commited on
Commit
7eabf13
·
verified ·
1 Parent(s): 8d67e7a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -13
app.py CHANGED
@@ -59,24 +59,41 @@ def generate_image(prompt: str, steps: int = 10, n_images: int = 1) -> list[Imag
59
  steps=steps, # Dieser Wert kommt vom Slider
60
  n=n_images
61
  )
62
- logger.info("Bildgenerierung erfolgreich angefordert.")
63
 
64
  images = []
65
- if hasattr(response, 'data') and response.data:
66
- for image_data in response.data:
67
- img_bytes = base64.b64decode(image_data.b64_json)
68
- img = Image.open(io.BytesIO(img_bytes))
69
- images.append(img)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  return images
71
  else:
72
- logger.error(f"FEHLER: Unerwartete Antwortstruktur von Together.ai: {response}")
73
- return "Fehler: Ungültige Antwort von Together.ai. Bitte versuchen Sie es später erneut oder überprüfen Sie Ihr Guthaben."
74
 
75
  except Exception as e:
76
  logger.error(f"FEHLER bei der Bildgenerierung: {e}", exc_info=True)
77
- return f"Fehler bei der Bildgenerierung: {e}. Eventuell API-Limit erreicht, Prompt ungültig oder Together.ai Problem."
 
 
 
78
 
79
- # --- Gradio Interface Definition ---
80
  with gr.Blocks() as demo:
81
  gr.Markdown(
82
  """
@@ -89,13 +106,13 @@ with gr.Blocks() as demo:
89
  with gr.Column():
90
  prompt_input = gr.Textbox(
91
  label="Prompt",
92
- placeholder="Gib deinen Prompt hier ein, z.B. 'Ein futuristischer Roboter in einem tropischen Wald'",
93
  lines=3
94
  )
95
  steps_slider = gr.Slider(
96
  minimum=1,
97
- maximum=4, # <--- DIESE ZEILE WURDE GEÄNDERT!
98
- value=4, # <--- DIESE ZEILE WURDE GEÄNDERT!
99
  step=1,
100
  label="Schritte (Steps)",
101
  info="Die Anzahl der Schritte muss zwischen 1 und 4 liegen für FLUX.1 [schnell]."
 
59
  steps=steps, # Dieser Wert kommt vom Slider
60
  n=n_images
61
  )
62
+ logger.info(f"Bildgenerierung erfolgreich angefordert. Antwort-Typ: {type(response)}")
63
 
64
  images = []
65
+ # Überprüfen, ob 'data' Attribut existiert und iterierbar ist
66
+ if hasattr(response, 'data') and isinstance(response.data, list):
67
+ for i, image_data in enumerate(response.data):
68
+ # Überprüfen, ob 'b64_json' Attribut existiert und nicht None ist
69
+ if hasattr(image_data, 'b64_json') and image_data.b64_json is not None:
70
+ try:
71
+ img_bytes = base64.b64decode(image_data.b64_json)
72
+ img = Image.open(io.BytesIO(img_bytes))
73
+ images.append(img)
74
+ except Exception as decode_e:
75
+ logger.error(f"FEHLER beim Dekodieren von Bild {i}: {decode_e}", exc_info=True)
76
+ # Optional: Dummy-Bild oder Fehlermeldung für dieses spezifische Bild hinzufügen
77
+ else:
78
+ logger.warning(f"Warnung: Bilddaten {i} enthalten kein 'b64_json' oder es ist None.")
79
+
80
+ if not images:
81
+ logger.warning("Keine Bilder erfolgreich dekodiert oder erhalten.")
82
+ return "Keine Bilder generiert. Möglicherweise ungültige Prompt-Antwort oder API-Problem."
83
+
84
  return images
85
  else:
86
+ logger.error(f"FEHLER: Unerwartete Antwortstruktur von Together.ai. Response: {response}")
87
+ return "Fehler: Ungültige Antwort von Together.ai. Überprüfe API-Status oder Guthaben."
88
 
89
  except Exception as e:
90
  logger.error(f"FEHLER bei der Bildgenerierung: {e}", exc_info=True)
91
+ # Zusätzliche Info, falls es ein Problem mit dem Together.ai-Guthaben gibt
92
+ if "rate limit" in str(e).lower() or "billing" in str(e).lower():
93
+ return f"Fehler bei der Bildgenerierung: {e}. Dein Together.ai API-Limit wurde möglicherweise erreicht oder dein Guthaben ist aufgebraucht."
94
+ return f"Fehler bei der Bildgenerierung: {e}. Versuche es später erneut."
95
 
96
+ # --- Gradio Interface Definition (Bleibt unverändert) ---
97
  with gr.Blocks() as demo:
98
  gr.Markdown(
99
  """
 
106
  with gr.Column():
107
  prompt_input = gr.Textbox(
108
  label="Prompt",
109
+ placeholder="Gib deinen Prompt hier ein, z.B. 'Tollwütgier Maulwurd mit Axt in der Hand in schwedischer Blockhütte.'",
110
  lines=3
111
  )
112
  steps_slider = gr.Slider(
113
  minimum=1,
114
+ maximum=4,
115
+ value=4,
116
  step=1,
117
  label="Schritte (Steps)",
118
  info="Die Anzahl der Schritte muss zwischen 1 und 4 liegen für FLUX.1 [schnell]."