Astridkraft commited on
Commit
8ef3ac8
·
verified ·
1 Parent(s): 3e784d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +90 -0
app.py CHANGED
@@ -357,6 +357,96 @@ def main_ui():
357
  """
358
  ) as demo:
359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  # --- Info-Bereich (Startseite) ---
361
  gr.Markdown(
362
  """
 
357
  """
358
  ) as demo:
359
 
360
+ # --- Info-Bereich (Startseite) ---
361
+ gr.Markdown(
362
+ """
363
+ # Demo-Projekt: Stable Diffusion Text-to-Image / Image-to-Image
364
+ <br>
365
+
366
+ <div class="info-box" style="border-left: 4px solid #4F46E5; background: linear-gradient(135deg, #f8faff 0%, #ffffff 100%);">
367
+ <div style="font-size: 1.2em; font-weight: bold; color: #4F46E5; margin-bottom: 15px;">🎯 Projekt & Kompetenzen</div>
368
+ Dieses 4-Wochen-Projekt ist ein kleines <strong>Demo</strong> um meine zentralen Kompetenzen als <strong>AI-Engineer</strong> – sowohl in der technischen Umsetzung <br>
369
+ als auch in der strukturierten Entwicklung komplexer Workflows zu präsentieren. Es bildet <strong>grundlegende Stable-Diffusion-Prozesse</strong> ab, während ich in anderen <br>
370
+ GPU-basierten Umgebungen <strong>erweiterte Text-to-Image und Image-to-Image-Pipelines mit präzisem Inpainting über ControlNet</strong> realisiere. Durch den Einsatz von <br>
371
+ <strong>multi-modalen Modellen mit höherer Parameteranzahl</strong> wird eine deutlich detailliertere und kontrolliertere Bildgenerierung ermöglicht.
372
+ </div>
373
+ <br>
374
+
375
+ <div class="info-box" style="border-left: 4px solid #10B981; background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 100%);">
376
+ <div style="font-size: 1.2em; font-weight: bold; color: #10B981; margin-bottom: 15px;">📊 Code-Architektur & Roadmap</div>
377
+ Zudem führt der Link
378
+ <a class="clickable-file" href="https://huggingface.co/spaces/Astridkraft/Dokumentation" target="_blank">Roadmap</a>
379
+ zu einer <strong>durchdachten, skalierbaren, professionellen Code-Architektur</strong> für Text-to-Image- und Image-to-Image-Entwicklung <br>
380
+ die die <strong>gesamte Komplexität einer professionellen Umsetzung</strong> verdeutlicht.<br><br>
381
+ Die hiermit gezeigten Fähigkeiten meinerseits sind <strong>sicherlich auf andere Projekte übertragbar</strong>.
382
+ </div>
383
+ <br>
384
+
385
+ <div class="info-box" style="border-left: 4px solid #F59E0B; background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);">
386
+ <div style="font-size: 1.2em; font-weight: bold; color: #F59E0B; margin-bottom: 15px;">⚠️ Wichtiger Hinweis</div>
387
+ <strong>Hinweis:</strong><br>
388
+ Die Anwendung läuft derzeit auf <strong>CPU</strong> ist jedoch <strong>vollständig GPU-fähig </strong>.
389
+ Deshalb muss bei jeder Generierung eine <strong>längere Wartezeit</strong> eingeplant werden.<br>
390
+ Bei <strong>Verbindungsabbrüchen</strong> -insbesondere bei CPU-Nutzung- wird die aktuelle Generierung zunächst serverseitig vollständig abgeschlossen, <br>
391
+ bevor neue Anfragen bearbeitet werden. Das generierte Bild wird in diesem Fall <strong>nicht angezeigt</strong>.
392
+ Die Meldung <strong>Connection re-established</strong> signalisiert, dass <br>
393
+ die Verbindung wiederhergestellt wurde, die laufende Verarbeitung jedoch priorisiert wird. In der Konsequenz werden neue <br>
394
+ Generierungsanfragen in eine Warteschlange gestellt und erst nach vollständigem Abschluss der aktuellen serverseitigen Berechnung verarbeitet.
395
+ </div>
396
+ <br>
397
+
398
+ <div class="info-box" style="border-left: 4px solid #EF4444; background: linear-gradient(135deg, #fef2f2 0%, #ffffff 100%);">
399
+ <div style="font-size: 1.2em; font-weight: bold; color: #EF4444; margin-bottom: 15px;">🔧 Technischer Hintergrund</div>
400
+ <strong>Technischer Hintergrund zu Verbindungsabbrüchen:</strong><br>
401
+ Die Anwendung nutzt <strong>Gradio auf Hugging Face Spaces</strong> - eine Technologie, die <strong>keine temporäre Speicherung</strong>
402
+ generierter Bilder vorsieht. Jede Verbindung <br> wird als <strong>unabhängige Sitzung</strong> behandelt.
403
+ Dies wird <strong>besonders bei CPU-Nutzung relevant</strong>, da längere Transformationszeiten die Wahrscheinlichkeit
404
+ für <br> Timeouts und Seiten-Neuladungen erhöhen. Obwohl die Bildgenerierung serverseitig vollständig abgeschlossen wird,
405
+ kann das Ergebnis bei <br> Verbindungsunterbrechungen <strong>nicht an die neu geladene Seite übermittelt</strong> werden.<br><br>
406
+ </div>
407
+ <br>
408
+
409
+ <div class="info-box" style="border-left: 4px solid #8B5CF6; background: linear-gradient(135deg, #faf5ff 0%, #ffffff 100%);">
410
+ <div style="font-size: 1.2em; font-weight: bold; color: #8B5CF6; margin-bottom: 15px;">🔄 Anwendungsbereich & Workflow</div>
411
+ <strong>Anwendungsbereich</strong><br>
412
+ Die Bild-zu-Bild-Transformation ermöglicht die <strong>gezielte Modifikation bestehender Bildelemente</strong> -
413
+ beispielsweise die Umwandlung einer Laterne <br> in eine Fackel, einer Katze in einen Hund, oder die Versetzung einer Person
414
+ vom Büro an einen tropischen Strand bei Beibehaltung des Gesichts.<br>
415
+ Es können <strong>keine neuen Objekte generiert</strong>, sondern ausschließlich <strong>vorhandene Elemente transformiert</strong> werden.<br><br>
416
+
417
+ Die Funktion unterstützt zwei operative Modi:<br>
418
+ &nbsp;&nbsp;• <strong>Kontexttransformation:</strong> Veränderung der Umgebung bei Beibehaltung eines markierten Bildbereichs (z.B. Gesicht)<br>
419
+ &nbsp;&nbsp;• <strong>Fokustransformation:</strong> Veränderung eines markierten Bereichs (z.B. Objekt) bei Beibehaltung der Umgebung<br><br>
420
+
421
+ <strong>Optimale Workflow-Empfehlung:</strong><br>
422
+ Zur Gewährleistung optimaler Ergebnisse werden Bilder im Format <strong>512×512 Pixel</strong> verarbeitet.
423
+ Ein effizienter Workflow umfasst:<br>
424
+ &nbsp;&nbsp;1. Generierung von Basis-Bildern über <strong>Text-zu-Bild</strong><br>
425
+ &nbsp;&nbsp;2. Gezielte Transformation über <strong>Bild-zu-Bild</strong><br>
426
+ &nbsp;&nbsp;3. Optionale Textintegration auf generierten oder originalen Basis-Bildern<br><br>
427
+
428
+ <strong>Textintegration:</strong> Beide Arbeitsbereiche bieten die Möglichkeit zur <strong>flexiblen Textintegration</strong> auf generierten sowie originalen Bildvorlagen.
429
+ </div>
430
+ <br>
431
+
432
+ <div class="info-box" style="border-left: 4px solid #EC4899; background: linear-gradient(135deg, #fdf2f8 0%, #ffffff 100%);">
433
+ <div style="font-size: 1.2em; font-weight: bold; color: #EC4899; margin-bottom: 15px;">💡 Empfehlungen & Best Practices</div>
434
+ <strong>Empfehlung:</strong><br>
435
+ Für eine präzise Abstimmung der zentralen Parameter – Prompt, Negativ-Prompt, Veränderungsstärke (Strength), Inferenz-Schritte (Steps) <br>
436
+ und Prompt-Stärke (Guidance) – liefern leistungsfähige Sprachmodelle wie GPT, Grok oder DeepSeek hochqualitative, kontextbezogene Vorschläge.<br>
437
+ Prompt und Negativ-Prompt sollten auf <strong>Englisch</strong> eingegeben werden, da "Stable Diffusion" mit Bild-Text-Paaren auf Englisch trainiert <br>
438
+ wurde und CLIP einen Tokenizer für ein englisches Vokabular nutzt. Der CLIP-Tokenizer hat außerdem ein <strong>Limit von 77 Token</strong>, wodurch längere <br>
439
+ Prompteingaben automatisch abgeschnitten werden. Deutsche Wörter werden zwar übersetzt, führen aber zu Verzerrungen.
440
+ </div>
441
+ <br>
442
+
443
+ <div style="text-align: center; margin-top: 30px; padding: 25px; background: linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%); color: white; border-radius: 12px;">
444
+ <div style="font-size: 1.4em; font-weight: bold; margin-bottom: 10px;">🚀 Bereit für die AI-Bildgenerierung?</div>
445
+ Starten Sie jetzt mit der Erkundung der Text-zu-Bild und Bild-zu-Bild Funktionen!
446
+ </div>
447
+ """
448
+ )
449
+
450
  # --- Info-Bereich (Startseite) ---
451
  gr.Markdown(
452
  """