seawolf2357 commited on
Commit
776d15b
ยท
verified ยท
1 Parent(s): cdc6cbb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -21
app.py CHANGED
@@ -92,29 +92,41 @@ def text_rendering_generate_image(user_prompt, input_text, text_color, text_size
92
  # Try to load a font that supports multilingual text
93
  try:
94
  # Attempt to load a system font that supports multilingual text
95
- font = ImageFont.truetype("Arial Unicode.ttf", text_size)
 
 
96
  except IOError:
97
- # Fallback to default font
98
- font = ImageFont.load_default()
 
 
 
 
 
99
 
100
  # Parse position (top, center, bottom)
 
101
  if text_position == "top":
102
- position = (width // 2, text_size + 10)
103
  elif text_position == "bottom":
104
- position = (width // 2, height - text_size - 10)
105
  else: # center
106
  position = (width // 2, height // 2)
107
 
108
  # Add text with outline for better visibility
109
- # Draw text outline (shadow)
110
- for offset in [(1, 1), (-1, -1), (1, -1), (-1, 1)]:
111
- draw.text(
112
- (position[0] + offset[0], position[1] + offset[1]),
113
- input_text,
114
- fill="black",
115
- font=font,
116
- anchor="mm" # Center align the text
117
- )
 
 
 
 
118
 
119
  # Draw the main text
120
  draw.text(
@@ -171,7 +183,7 @@ def load_text_examples():
171
  "prompt": "cute character with speech bubble",
172
  "text": "Hello World!",
173
  "color": "#ffffff",
174
- "size": 36,
175
  "position": "center",
176
  "filename": "00.jpg",
177
  "height": 680,
@@ -182,7 +194,7 @@ def load_text_examples():
182
  "prompt": "landscape with message",
183
  "text": "์•ˆ๋…•ํ•˜์„ธ์š”!",
184
  "color": "#ffff00",
185
- "size": 48,
186
  "position": "top",
187
  "filename": "03.jpg",
188
  "height": 1024,
@@ -193,7 +205,7 @@ def load_text_examples():
193
  "prompt": "character with subtitles",
194
  "text": "ใ“ใ‚“ใซใกใฏไธ–็•Œ!",
195
  "color": "#00ffff",
196
- "size": 42,
197
  "position": "bottom",
198
  "filename": "02.jpg",
199
  "height": 560,
@@ -483,11 +495,11 @@ with gr.Blocks(css=css) as demo:
483
  )
484
 
485
  text_size = gr.Slider(
486
- minimum=12,
487
- maximum=72,
488
- step=2,
489
  label="Text Size",
490
- value=36
491
  )
492
 
493
  text_position = gr.Radio(
 
92
  # Try to load a font that supports multilingual text
93
  try:
94
  # Attempt to load a system font that supports multilingual text
95
+ # Scale up the text size significantly to make it more visible
96
+ actual_text_size = text_size * 3 # Multiply the size by 3 for better visibility
97
+ font = ImageFont.truetype("Arial Unicode.ttf", actual_text_size)
98
  except IOError:
99
+ try:
100
+ # Try another common font if Arial Unicode is not available
101
+ actual_text_size = text_size * 3
102
+ font = ImageFont.truetype("DejaVuSans.ttf", actual_text_size)
103
+ except IOError:
104
+ # Final fallback to default font with increased size
105
+ font = ImageFont.load_default()
106
 
107
  # Parse position (top, center, bottom)
108
+ # Use actual_text_size for position calculations to maintain proper spacing
109
  if text_position == "top":
110
+ position = (width // 2, actual_text_size + 30) # More padding from the top
111
  elif text_position == "bottom":
112
+ position = (width // 2, height - actual_text_size - 30) # More padding from the bottom
113
  else: # center
114
  position = (width // 2, height // 2)
115
 
116
  # Add text with outline for better visibility
117
+ # Draw text outline (shadow) with larger offset for better visibility
118
+ outline_size = max(3, actual_text_size // 15) # Scale outline size with text size
119
+ for offset_x in range(-outline_size, outline_size + 1, outline_size):
120
+ for offset_y in range(-outline_size, outline_size + 1, outline_size):
121
+ if offset_x == 0 and offset_y == 0:
122
+ continue # Skip the center position (will be drawn as main text)
123
+ draw.text(
124
+ (position[0] + offset_x, position[1] + offset_y),
125
+ input_text,
126
+ fill="black",
127
+ font=font,
128
+ anchor="mm" # Center align the text
129
+ )
130
 
131
  # Draw the main text
132
  draw.text(
 
183
  "prompt": "cute character with speech bubble",
184
  "text": "Hello World!",
185
  "color": "#ffffff",
186
+ "size": 72,
187
  "position": "center",
188
  "filename": "00.jpg",
189
  "height": 680,
 
194
  "prompt": "landscape with message",
195
  "text": "์•ˆ๋…•ํ•˜์„ธ์š”!",
196
  "color": "#ffff00",
197
+ "size": 100,
198
  "position": "top",
199
  "filename": "03.jpg",
200
  "height": 1024,
 
205
  "prompt": "character with subtitles",
206
  "text": "ใ“ใ‚“ใซใกใฏไธ–็•Œ!",
207
  "color": "#00ffff",
208
+ "size": 90,
209
  "position": "bottom",
210
  "filename": "02.jpg",
211
  "height": 560,
 
495
  )
496
 
497
  text_size = gr.Slider(
498
+ minimum=24,
499
+ maximum=200,
500
+ step=4,
501
  label="Text Size",
502
+ value=72
503
  )
504
 
505
  text_position = gr.Radio(