vab42 commited on
Commit
c4569ad
·
verified ·
1 Parent(s): 14f4232

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -26
app.py CHANGED
@@ -11,8 +11,12 @@ logging.basicConfig(level=logging.INFO)
11
  logger = logging.getLogger(__name__)
12
 
13
  # --- Konfiguration ---
 
14
  TOGETHER_API_KEY = os.environ.get("TOGETHER_API_KEY")
15
- FLUX_MODEL = "black-forest-labs/FLUX.1-dev-lora" # Dein gewähltes Modell
 
 
 
16
 
17
  # Initialisiere den Together.ai Client
18
  client = None
@@ -33,6 +37,10 @@ else:
33
 
34
  # --- Bildgenerierungsfunktion ---
35
  def generate_image(prompt: str, steps: int = 25, n_images: int = 1) -> list[Image.Image] or str:
 
 
 
 
36
  if not client:
37
  logger.error("generate_image: Client ist nicht initialisiert.")
38
  return "Fehler: Together.ai Client konnte nicht initialisiert werden. Bitte API-Key prüfen und sicherstellen, dass er gesetzt ist."
@@ -41,25 +49,12 @@ def generate_image(prompt: str, steps: int = 25, n_images: int = 1) -> list[Imag
41
 
42
  try:
43
  logger.info(f"Versuche, Bildgenerierung mit Modell {FLUX_MODEL} zu starten über client.images.generate()...")
44
-
45
- # VERSUCH: Einen Dummy-LoRA-Eintrag hinzufügen.
46
- # OHNE SPEZIFISCHES LORA WIRD DIESES MODELL KEINE BILDER GENERIEREN!
47
- # Zusammen mit Together.ai müsstest du hier einen echten, von Together.ai unterstützten LoRA-Namen angeben.
48
- # Dies ist nur ein Test, um zu sehen, ob das Fehlen des 'image_loras'-Parameters das Problem ist.
49
- lora_params = [] # Standardmäßig leer lassen, wenn keine spezifischen LoRAs genutzt werden
50
-
51
- # WICHTIG: Wenn du einen echten LoRA verwenden möchtest, musst du hier den korrekten Namen/Pfad eingeben.
52
- # Diesen müsstest du von Together.ai erfahren oder in ihrer Doku finden.
53
- # Beispiel (NICHT GARANTIERT DASS ES FUNKTIONIERT OHNE ECHTEN LORA-NAMEN):
54
- # lora_params = [{"path": "togethercomputer/lora-pixel-art", "scale": 0.8}]
55
- # Oder einfach weglassen, wenn das Modell ohne spezifisches LoRA arbeiten sollte (was es nicht zu scheinen tut).
56
-
57
  response = client.images.generate(
58
  model=FLUX_MODEL,
59
  prompt=prompt,
60
- steps=steps,
61
- n=n_images,
62
- # image_loras=lora_params # <--- DIESE ZEILE WÜRDE HIER EINGEFÜGT, WENN WIR EINEN ECHTEN LORA HÄTTEN
63
  )
64
  logger.info(f"Bildgenerierung erfolgreich angefordert. Antwort-Typ: {type(response)}")
65
 
@@ -78,7 +73,7 @@ def generate_image(prompt: str, steps: int = 25, n_images: int = 1) -> list[Imag
78
 
79
  if not images:
80
  logger.warning("Keine Bilder erfolgreich dekodiert oder erhalten.")
81
- return "Keine Bilder generiert. Möglicherweise ungültige Prompt-Antwort, API-Problem oder Guthaben aufgebraucht. Für LORA-Modelle ist oft ein spezifischer 'image_loras'-Parameter erforderlich!"
82
 
83
  return images
84
  else:
@@ -89,22 +84,21 @@ def generate_image(prompt: str, steps: int = 25, n_images: int = 1) -> list[Imag
89
  logger.error(f"FEHLER bei der Bildgenerierung: {e}", exc_info=True)
90
  if "rate limit" in str(e).lower() or "billing" in str(e).lower():
91
  return f"Fehler bei der Bildgenerierung: {e}. Dein Together.ai API-Limit wurde möglicherweise erreicht oder dein Guthaben ist aufgebraucht."
92
- return f"Fehler bei der Bildgenerierung: {e}. Together.ai erwartet möglicherweise den 'image_loras'-Parameter oder es gibt ein anderes Problem."
93
 
94
- # --- Gradio Interface Definition (unverändert) ---
95
  with gr.Blocks() as demo:
96
  gr.Markdown(
97
  """
98
- # FLUX.1 Dev LORA Bildgenerator
99
- Generiere Bilder mit dem FLUX.1 Dev LORA-Modell von Black Forest Labs über Together.ai.
100
- Beachte: Für LORA-Modelle ist oft ein spezifischer 'image_loras'-Parameter erforderlich!
101
  """
102
  )
103
  with gr.Row():
104
  with gr.Column():
105
  prompt_input = gr.Textbox(
106
  label="Prompt",
107
- placeholder="Gib deinen Prompt hier ein. Du benötigst möglicherweise einen Trigger-Word und ein LoRA-Modell!",
108
  lines=3
109
  )
110
  steps_slider = gr.Slider(
@@ -113,7 +107,7 @@ with gr.Blocks() as demo:
113
  value=25,
114
  step=1,
115
  label="Schritte (Steps)",
116
- info="Höhere Schritte können die Qualität verbessern."
117
  )
118
  num_images_slider = gr.Slider(
119
  minimum=1,
@@ -121,7 +115,7 @@ with gr.Blocks() as demo:
121
  value=1,
122
  step=1,
123
  label="Anzahl der Bilder",
124
- info="Wie viele Bilder gleichzeitig generiert werden sollen."
125
  )
126
  generate_button = gr.Button("Bilder generieren")
127
  with gr.Column():
 
11
  logger = logging.getLogger(__name__)
12
 
13
  # --- Konfiguration ---
14
+ # Hole den Together API Key aus den Umgebungsvariablen (wird als Secret gesetzt)
15
  TOGETHER_API_KEY = os.environ.get("TOGETHER_API_KEY")
16
+
17
+ # Das FLUX-Modell, das du über Together.ai nutzen möchtest
18
+ # NEUER MODELLNAME: FLUX.1-dev (ohne -lora)
19
+ FLUX_MODEL = "black-forest-labs/FLUX.1-dev"
20
 
21
  # Initialisiere den Together.ai Client
22
  client = None
 
37
 
38
  # --- Bildgenerierungsfunktion ---
39
  def generate_image(prompt: str, steps: int = 25, n_images: int = 1) -> list[Image.Image] or str:
40
+ """
41
+ Generiert Bilder mit dem FLUX-Modell über Together.ai.
42
+ Gibt eine Liste von PIL.Image-Objekten oder eine Fehlermeldung zurück.
43
+ """
44
  if not client:
45
  logger.error("generate_image: Client ist nicht initialisiert.")
46
  return "Fehler: Together.ai Client konnte nicht initialisiert werden. Bitte API-Key prüfen und sicherstellen, dass er gesetzt ist."
 
49
 
50
  try:
51
  logger.info(f"Versuche, Bildgenerierung mit Modell {FLUX_MODEL} zu starten über client.images.generate()...")
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  response = client.images.generate(
53
  model=FLUX_MODEL,
54
  prompt=prompt,
55
+ steps=steps, # Dieser Wert kommt vom Slider
56
+ n=n_images
57
+ # KEIN 'image_loras' PARAMETER FÜR FLUX.1-dev
58
  )
59
  logger.info(f"Bildgenerierung erfolgreich angefordert. Antwort-Typ: {type(response)}")
60
 
 
73
 
74
  if not images:
75
  logger.warning("Keine Bilder erfolgreich dekodiert oder erhalten.")
76
+ return "Keine Bilder generiert. Möglicherweise ungültige Prompt-Antwort, API-Problem oder Guthaben aufgebraucht."
77
 
78
  return images
79
  else:
 
84
  logger.error(f"FEHLER bei der Bildgenerierung: {e}", exc_info=True)
85
  if "rate limit" in str(e).lower() or "billing" in str(e).lower():
86
  return f"Fehler bei der Bildgenerierung: {e}. Dein Together.ai API-Limit wurde möglicherweise erreicht oder dein Guthaben ist aufgebraucht."
87
+ return f"Fehler bei der Bildgenerierung: {e}. Versuche es später erneut."
88
 
89
+ # --- Gradio Interface Definition ---
90
  with gr.Blocks() as demo:
91
  gr.Markdown(
92
  """
93
+ # FLUX.1 Dev Bildgenerator
94
+ Generiere Bilder mit dem FLUX.1 Dev-Modell von Black Forest Labs über Learn.Create.Repeat.
 
95
  """
96
  )
97
  with gr.Row():
98
  with gr.Column():
99
  prompt_input = gr.Textbox(
100
  label="Prompt",
101
+ placeholder="Gib deinen Prompt hier ein, z.B. 'tollwütiger Maulwurf mit Axt in schwedischem Wald'",
102
  lines=3
103
  )
104
  steps_slider = gr.Slider(
 
107
  value=25,
108
  step=1,
109
  label="Schritte (Steps)",
110
+ info="Höhere Schritte können die Qualität verbessern, erhöhen aber die Generierungszeit."
111
  )
112
  num_images_slider = gr.Slider(
113
  minimum=1,
 
115
  value=1,
116
  step=1,
117
  label="Anzahl der Bilder",
118
+ info="Wie viele Bilder gleichzeitig generiert werden sollen (kann länger dauern)."
119
  )
120
  generate_button = gr.Button("Bilder generieren")
121
  with gr.Column():