Astridkraft commited on
Commit
14aa6e2
·
verified ·
1 Parent(s): 7e3aff9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -4
app.py CHANGED
@@ -15,6 +15,11 @@ IMG_SIZE = 512
15
 
16
  print(f"Running on: {device}")
17
 
 
 
 
 
 
18
  # === TEXT INTEGRATION IMPORT ===
19
  from text_integration import (
20
  add_text_to_image,
@@ -190,8 +195,17 @@ def update_live_preview(image, bbox_x1, bbox_y1, bbox_x2, bbox_y2, face_preserve
190
 
191
  return create_preview_image(image, bbox_coords, face_preserve, mode_color)
192
 
 
 
 
 
 
193
 
194
-
 
 
 
 
195
 
196
  def process_image_upload(image):
197
  """Verarbeitet Bild-Upload und gibt Bild + Koordinaten zurück"""
@@ -377,7 +391,7 @@ def main_ui():
377
  <div style="font-size: 1.2em; font-weight: bold; color: #4F46E5; margin-bottom: 15px;"><strong>🎯 Projekt & Kompetenzen</strong></div>
378
  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>
379
  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>
380
- 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>
381
  <strong>multi-modalen Modellen mit höherer Parameteranzahl</strong> wird eine deutlich detailliertere und kontrolliertere Bildgenerierung ermöglicht.
382
  </div>
383
  <br>
@@ -432,6 +446,10 @@ def main_ui():
432
  &nbsp;&nbsp;2. Gezielte Transformation über <strong>Bild-zu-Bild</strong><br>
433
  &nbsp;&nbsp;3. Optionale Textintegration auf generierten oder originalen Basis-Bildern<br>
434
 
 
 
 
 
435
  <strong>Die Textintegration </strong> ist verfügbar für generierte Bilder in beiden Arbeitsbereichen sowie für externe Bildquellen im Arbeitsbereich Bild zu Bild.<br>
436
  Es werden alle gängigen Bildformate (JPG, PNG, WEBP, BMP, TIFF) unterstützt. Die maximale Dateigröße beträgt 15 MB.
437
  </div>
@@ -472,7 +490,7 @@ def main_ui():
472
  with gr.Column(visible=False) as content_area:
473
 
474
  # === TAB: TEXT ZU BILD ===
475
- with gr.Tab("Text zu Bild"):
476
  gr.Markdown("**Beschreibe dein gewünschtes Bild:**")
477
 
478
  with gr.Row():
@@ -514,6 +532,30 @@ def main_ui():
514
  height=400,
515
  sources=[] #Button verschwinden, download trotzdem möglich! Gradio-Problem
516
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
517
 
518
  # TEXT INTEGRATION UNTERHALB DER BILDER
519
  with gr.Row():
@@ -623,7 +665,7 @@ def main_ui():
623
  )
624
 
625
  # === TAB: BILD ZU BILD ===
626
- with gr.Tab("Bild zu Bild"):
627
  gr.Markdown("**Lade ein Bild hoch und beschreibe die gewünschte Veränderung:**")
628
 
629
  with gr.Row():
@@ -841,6 +883,12 @@ def main_ui():
841
  outputs=[img_input, img_output]
842
  )
843
 
 
 
 
 
 
 
844
  # === START-BUTTON HANDLER ===
845
  info_components = [child for child in demo.children if child != content_area]
846
 
 
15
 
16
  print(f"Running on: {device}")
17
 
18
+
19
+ # === AUDIO-URL ===
20
+ AUDIO_URL = "https://dn721801.ca.archive.org/0/items/emotional-soft-piano-music-413513-2/emotional-soft-piano-music-413513%202.mp3"
21
+
22
+
23
  # === TEXT INTEGRATION IMPORT ===
24
  from text_integration import (
25
  add_text_to_image,
 
195
 
196
  return create_preview_image(image, bbox_coords, face_preserve, mode_color)
197
 
198
+ # === AUDIO-FUNKTION ===
199
+ def play_audio_on_image_click():
200
+ """Startet die Musikwiedergabe bei Klick auf das Bild"""
201
+ print("🎵 Musikwiedergabe wird gestartet...")
202
+ return gr.Audio(AUDIO_URL, autoplay=True, visible=True, label="Hintergrundmusik")
203
 
204
+ # === NEUE FUNKTION: STOP AUDIO BEIM TAB-WECHSEL ===
205
+ def stop_audio_on_tab_change():
206
+ """Stoppt die Musik beim Tab-Wechsel"""
207
+ print("🔇 Musik wird beim Tab-Wechsel gestoppt")
208
+ return None
209
 
210
  def process_image_upload(image):
211
  """Verarbeitet Bild-Upload und gibt Bild + Koordinaten zurück"""
 
391
  <div style="font-size: 1.2em; font-weight: bold; color: #4F46E5; margin-bottom: 15px;"><strong>🎯 Projekt & Kompetenzen</strong></div>
392
  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>
393
  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>
394
+ GPU-basierten Umgebungen <strong>erweitered Text-to-Image und Image-to-Image-Pipelines mit präzisem Inpainting über ControlNet</strong> realisiere. Durch den Einsatz von <br>
395
  <strong>multi-modalen Modellen mit höherer Parameteranzahl</strong> wird eine deutlich detailliertere und kontrolliertere Bildgenerierung ermöglicht.
396
  </div>
397
  <br>
 
446
  &nbsp;&nbsp;2. Gezielte Transformation über <strong>Bild-zu-Bild</strong><br>
447
  &nbsp;&nbsp;3. Optionale Textintegration auf generierten oder originalen Basis-Bildern<br>
448
 
449
+ <strong>Audio-Unterstützung:</strong><br>
450
+ Im Arbeitsbereich Text-zu-Bild steht eine <strong>Hintergrundmusik-Funktion</strong> zur Verfügung, die die Generierungszeit überbrückt. Der integrierte Audio-Player <br>
451
+ wird beim Tab-Wechsel unterbrochen.<br>
452
+
453
  <strong>Die Textintegration </strong> ist verfügbar für generierte Bilder in beiden Arbeitsbereichen sowie für externe Bildquellen im Arbeitsbereich Bild zu Bild.<br>
454
  Es werden alle gängigen Bildformate (JPG, PNG, WEBP, BMP, TIFF) unterstützt. Die maximale Dateigröße beträgt 15 MB.
455
  </div>
 
490
  with gr.Column(visible=False) as content_area:
491
 
492
  # === TAB: TEXT ZU BILD ===
493
+ with gr.Tab("Text zu Bild") as tab_text_to_image:
494
  gr.Markdown("**Beschreibe dein gewünschtes Bild:**")
495
 
496
  with gr.Row():
 
532
  height=400,
533
  sources=[] #Button verschwinden, download trotzdem möglich! Gradio-Problem
534
  )
535
+
536
+
537
+ # SICHTBARER AUDIO-PLAYER FÜR TEXT-ZU-BILD
538
+ hidden_audio_t2i = gr.Audio(
539
+ visible=True,
540
+ label="🎵 Hintergrundmusik zur Überbrückung der Wartezeit",
541
+ autoplay=True # WICHTIG: Hier autoplay setzen
542
+ )
543
+
544
+
545
+ # Klickbarer Bereich um das Bild
546
+ with gr.Row():
547
+ music_btn = gr.Button(
548
+ "🎵 Musik abspielen",
549
+ variant="secondary",
550
+ size="sm"
551
+ )
552
+
553
+ # Klick-Event für den Button
554
+ music_btn.click(
555
+ fn=play_audio_on_image_click,
556
+ outputs=hidden_audio_t2i
557
+ )
558
+
559
 
560
  # TEXT INTEGRATION UNTERHALB DER BILDER
561
  with gr.Row():
 
665
  )
666
 
667
  # === TAB: BILD ZU BILD ===
668
+ with gr.Tab("Bild zu Bild") as tab_image_to_image:
669
  gr.Markdown("**Lade ein Bild hoch und beschreibe die gewünschte Veränderung:**")
670
 
671
  with gr.Row():
 
883
  outputs=[img_input, img_output]
884
  )
885
 
886
+ # === NEUER EVENT-HANDLER: STOP AUDIO BEIM TAB-WECHSEL ===
887
+ tab_image_to_image.select(
888
+ fn=stop_audio_on_tab_change,
889
+ outputs=hidden_audio_t2i
890
+ )
891
+
892
  # === START-BUTTON HANDLER ===
893
  info_components = [child for child in demo.children if child != content_area]
894