Tim13ekd commited on
Commit
fb76288
·
verified ·
1 Parent(s): 8d4c431

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -16
app.py CHANGED
@@ -82,8 +82,9 @@ def create_timed_drawtext(word, start_time, duration, font_option, font_size, y_
82
  f"if(lt(t,{end_time}), ({end_time}-t)/{WORD_FADE_DURATION}, 0))))"
83
  )
84
 
85
- # --- STYLING BASIEREND AUF AUSWAHL ---
86
 
 
87
  params = {
88
  "fontcolor": "white",
89
  "borderw": 2,
@@ -93,28 +94,36 @@ def create_timed_drawtext(word, start_time, duration, font_option, font_size, y_
93
  "fontsize_override": font_size
94
  }
95
 
96
- if style == "pop":
97
- # Heller, auffälliger Text
 
 
98
  params["fontcolor"] = "yellow"
99
  params["borderw"] = 3
100
  params["fontsize_override"] = font_size * 1.1
101
 
102
- elif style == "bold word":
103
- # Starker Kontrast, dickerer Rand
104
  params["fontcolor"] = "white"
105
- params["borderw"] = 4
106
  params["fontsize_override"] = font_size * 1.05
107
 
108
- elif style == "badge":
109
- # Text in einem leicht transparenten Kasten
110
  params["fontcolor"] = "white"
111
  params["borderw"] = 0
112
  params["box"] = 1
113
- # 0x000000@0.6 ist semi-transparentes Schwarz
114
- params["boxcolor"] = "0x000000@0.6"
115
-
116
- # Default ist "modern" (params bleiben Standard)
117
 
 
 
 
 
 
 
 
 
118
  # Filter-String basierend auf den dynamischen Parametern erstellen
119
  drawtext_filter = (
120
  f"drawtext=text='{escaped_word}'{font_option}:"
@@ -122,7 +131,7 @@ def create_timed_drawtext(word, start_time, duration, font_option, font_size, y_
122
  f"fontsize={params['fontsize_override']}:"
123
  f"borderw={params['borderw']}:"
124
  f"bordercolor={params['bordercolor']}:"
125
- # Füge Box-Parameter nur hinzu, wenn box=1 (Badge-Stil)
126
  + (f"box={params['box']}:boxcolor={params['boxcolor']}:boxborderw=10:" if params["box"] else "") +
127
  f"x=(w-text_w)/2:y=(h-text_h)*{y_pos}:"
128
  f"alpha='{alpha_expression}'"
@@ -282,11 +291,11 @@ with gr.Blocks() as demo:
282
  font_size_input = gr.Number(value=80, label="Schriftgröße (px)")
283
  ypos_input = gr.Slider(0.0, 1.0, value=0.9, label="Y-Position (0=Oben, 1=Unten)")
284
 
285
- # NEUE EINGABE FÜR STILE
286
  subtitle_style_input = gr.Dropdown(
287
- ["modern", "pop", "bold word", "badge"],
288
  label="Untertitel-Stil",
289
- value="modern",
290
  interactive=True
291
  )
292
 
 
82
  f"if(lt(t,{end_time}), ({end_time}-t)/{WORD_FADE_DURATION}, 0))))"
83
  )
84
 
85
+ # --- STYLING BASIEREND AUF AUSWAHL (Style-Namen werden in Kleinbuchstaben übergeben) ---
86
 
87
+ # Default-Werte (Modern-Stil)
88
  params = {
89
  "fontcolor": "white",
90
  "borderw": 2,
 
94
  "fontsize_override": font_size
95
  }
96
 
97
+ style_lower = style.lower().replace(" ", "")
98
+
99
+ if style_lower == "pop":
100
+ # Heller, auffälliger Text (Gelb mit Kontur, etwas größer)
101
  params["fontcolor"] = "yellow"
102
  params["borderw"] = 3
103
  params["fontsize_override"] = font_size * 1.1
104
 
105
+ elif style_lower == "bold":
106
+ # Starker Kontrast, sehr dickerer Rand
107
  params["fontcolor"] = "white"
108
+ params["borderw"] = 5 # Dickerer Rand für "Bold"
109
  params["fontsize_override"] = font_size * 1.05
110
 
111
+ elif style_lower == "badge":
112
+ # Grüner Kasten (Mint) als Hintergrund für das aktive Wort
113
  params["fontcolor"] = "white"
114
  params["borderw"] = 0
115
  params["box"] = 1
116
+ # Mint Green (0x50C878) @1.0 (opak)
117
+ params["boxcolor"] = "0x50C878@1.0"
 
 
118
 
119
+ elif style_lower == "word":
120
+ # Gelber Kasten als Hintergrund für das aktive Wort
121
+ params["fontcolor"] = "white"
122
+ params["borderw"] = 0
123
+ params["box"] = 1
124
+ # Gold/Yellow (0xFFD700) @1.0 (opak)
125
+ params["boxcolor"] = "[email protected]"
126
+
127
  # Filter-String basierend auf den dynamischen Parametern erstellen
128
  drawtext_filter = (
129
  f"drawtext=text='{escaped_word}'{font_option}:"
 
131
  f"fontsize={params['fontsize_override']}:"
132
  f"borderw={params['borderw']}:"
133
  f"bordercolor={params['bordercolor']}:"
134
+ # Füge Box-Parameter nur hinzu, wenn box=1 (Badge- oder Word-Stil)
135
  + (f"box={params['box']}:boxcolor={params['boxcolor']}:boxborderw=10:" if params["box"] else "") +
136
  f"x=(w-text_w)/2:y=(h-text_h)*{y_pos}:"
137
  f"alpha='{alpha_expression}'"
 
291
  font_size_input = gr.Number(value=80, label="Schriftgröße (px)")
292
  ypos_input = gr.Slider(0.0, 1.0, value=0.9, label="Y-Position (0=Oben, 1=Unten)")
293
 
294
+ # NEUE EINGABE FÜR STILE: Enthält jetzt "Word" und nutzt korrekte Groß-/Kleinschreibung
295
  subtitle_style_input = gr.Dropdown(
296
+ ["Modern", "Pop", "Bold", "Badge", "Word"],
297
  label="Untertitel-Stil",
298
+ value="Modern",
299
  interactive=True
300
  )
301