CheckSim commited on
Commit
526ac93
·
verified ·
1 Parent(s): 5f76bf1

Upload 3 files

Browse files
Files changed (1) hide show
  1. app.py +4 -46
app.py CHANGED
@@ -125,46 +125,8 @@ def draw_kps(image_pil, kps, color_list=[(255,0,0), (0,255,0), (0,0,255), (255,2
125
 
126
  return Image.fromarray(out_img.astype(np.uint8))
127
 
128
- def apply_logo_overlay(generated_image, logo_image, style_name):
129
- """
130
- Applica il logo sull'immagine generata come una "spilla" o "toppa",
131
- adattandone l'aspetto in base allo stile scelto.
132
- """
133
- logo = logo_image.copy().convert("RGBA")
134
-
135
- # Ridimensiona il logo per farlo sembrare una spilla (circa 15% dell'immagine)
136
- logo_size = int(generated_image.width * 0.15)
137
- logo = logo.resize((logo_size, logo_size), Image.LANCZOS)
138
-
139
- # Applica filtri stilistici al logo in base allo stile
140
- logo_np = np.array(logo)
141
-
142
- if "Bit-Builder" in style_name:
143
- # Effetto pixelato: rimpicciolisci e riallarga
144
- small = cv2.resize(logo_np, (16, 16), interpolation=cv2.INTER_NEAREST)
145
- logo_np = cv2.resize(small, (logo_size, logo_size), interpolation=cv2.INTER_NEAREST)
146
- elif "Rinascimentale" in style_name:
147
- # Effetto dipinto a olio: sfocatura leggera
148
- logo_np[:, :, :3] = cv2.bilateralFilter(logo_np[:, :, :3], 9, 75, 75)
149
- elif "Architetto" in style_name:
150
- # Effetto geometrico: aumento contrasto
151
- logo_np[:, :, :3] = np.clip(logo_np[:, :, :3].astype(np.float32) * 1.3, 0, 255).astype(np.uint8)
152
- # Pop-Art: logo invariato (già vivace di suo)
153
-
154
- logo_styled = Image.fromarray(logo_np)
155
-
156
- # Posiziona il logo in basso a sinistra (zona petto)
157
- x_pos = int(generated_image.width * 0.15)
158
- y_pos = int(generated_image.height * 0.70)
159
-
160
- # Componi sul risultato finale
161
- result = generated_image.convert("RGBA")
162
- result.paste(logo_styled, (x_pos, y_pos), logo_styled)
163
-
164
- return result.convert("RGB")
165
-
166
  @spaces.GPU(duration=120)
167
- def generate_avatar(user_image, logo_image, selected_style):
168
  if user_image is None:
169
  raise gr.Error("Per favore, carica un'immagine del volto.")
170
 
@@ -219,9 +181,7 @@ def generate_avatar(user_image, logo_image, selected_style):
219
  except:
220
  pass
221
 
222
- # 4. Sovrapposizione del logo stilizzato (se fornito)
223
- if logo_image is not None:
224
- image = apply_logo_overlay(image, logo_image, selected_style)
225
 
226
  return image
227
 
@@ -250,12 +210,10 @@ with gr.Blocks(css=custom_css, theme=theme) as demo:
250
  with gr.Row():
251
  with gr.Column(scale=1):
252
  input_image = gr.Image(type="pil", label="1. Carica il tuo Selfie")
253
- logo_image = gr.Image(type="pil", label="2. Carica il Logo (opzionale, PNG a colori)")
254
-
255
  with gr.Column(scale=1):
256
  style_selector = gr.Radio(
257
  choices=list(STYLES.keys()),
258
- label="3. Scegli il tuo Stile",
259
  value=list(STYLES.keys())[0]
260
  )
261
  gr.Markdown("<br>")
@@ -266,7 +224,7 @@ with gr.Blocks(css=custom_css, theme=theme) as demo:
266
 
267
  generate_button.click(
268
  fn=generate_avatar,
269
- inputs=[input_image, logo_image, style_selector],
270
  outputs=output_image
271
  )
272
 
 
125
 
126
  return Image.fromarray(out_img.astype(np.uint8))
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  @spaces.GPU(duration=120)
129
+ def generate_avatar(user_image, selected_style):
130
  if user_image is None:
131
  raise gr.Error("Per favore, carica un'immagine del volto.")
132
 
 
181
  except:
182
  pass
183
 
184
+
 
 
185
 
186
  return image
187
 
 
210
  with gr.Row():
211
  with gr.Column(scale=1):
212
  input_image = gr.Image(type="pil", label="1. Carica il tuo Selfie")
 
 
213
  with gr.Column(scale=1):
214
  style_selector = gr.Radio(
215
  choices=list(STYLES.keys()),
216
+ label="2. Scegli il tuo Stile",
217
  value=list(STYLES.keys())[0]
218
  )
219
  gr.Markdown("<br>")
 
224
 
225
  generate_button.click(
226
  fn=generate_avatar,
227
+ inputs=[input_image, style_selector],
228
  outputs=output_image
229
  )
230