Spaces:
Saad0KH
/
Running on Zero

Saad0KH commited on
Commit
ddbe597
·
verified ·
1 Parent(s): 85593ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -13
app.py CHANGED
@@ -283,18 +283,13 @@ def tryon():
283
  'mask_image': mask_base64
284
  })
285
 
286
- @spaces.GPU
287
- @app.route('/generate_mask', methods=['POST'])
288
- def generate_mask():
289
- data = request.json
290
- base64_image = data.get('image')
291
- categorie = data.get('categorie', 'upper_body')
292
-
293
- # Décodage de l'image
294
- human_img = decode_image_from_base64(base64_image).convert("RGB")
295
- human_img_resized = human_img.resize((384, 512))
296
-
297
  try:
 
 
 
298
  # Génération des points clés et du masque
299
  keypoints = openpose_model(human_img_resized)
300
  model_parse, _ = parsing_model(human_img_resized)
@@ -303,12 +298,32 @@ def generate_mask():
303
  # Redimensionnement du masque à la taille d'origine de l'image
304
  mask_resized = mask.resize(human_img.size)
305
 
306
- # Encodage du masque en base64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  mask_base64 = encode_image_to_base64(mask_resized)
308
 
309
  return jsonify({
310
  'mask_image': mask_base64
311
- })
312
  except Exception as e:
313
  logging.error(f"Error generating mask: {e}")
314
  return jsonify({'error': str(e)}), 500
 
283
  'mask_image': mask_base64
284
  })
285
 
286
+ @spaces.GPU
287
+ def generate_mask(human_img, categorie='upper_body'):
288
+ device = "cuda"
 
 
 
 
 
 
 
 
289
  try:
290
+ # Redimensionnement de l'image pour le modèle
291
+ human_img_resized = human_img.resize((384, 512))
292
+
293
  # Génération des points clés et du masque
294
  keypoints = openpose_model(human_img_resized)
295
  model_parse, _ = parsing_model(human_img_resized)
 
298
  # Redimensionnement du masque à la taille d'origine de l'image
299
  mask_resized = mask.resize(human_img.size)
300
 
301
+ return mask_resized
302
+ except Exception as e:
303
+ logging.error(f"Error generating mask: {e}")
304
+ raise e # Renvoyer l'exception pour que l'API puisse la gérer
305
+
306
+
307
+ @app.route('/generate_mask', methods=['POST'])
308
+ def generate_mask_api():
309
+ try:
310
+ # Récupérer les données de l'image à partir de la requête
311
+ data = request.json
312
+ base64_image = data.get('image')
313
+ categorie = data.get('categorie', 'upper_body')
314
+
315
+ # Décodage de l'image à partir de base64
316
+ human_img = decode_image_from_base64(base64_image).convert("RGB")
317
+
318
+ # Appeler la fonction pour générer le masque
319
+ mask_resized = generate_mask(human_img, categorie)
320
+
321
+ # Encodage du masque en base64 pour la réponse
322
  mask_base64 = encode_image_to_base64(mask_resized)
323
 
324
  return jsonify({
325
  'mask_image': mask_base64
326
+ }), 200
327
  except Exception as e:
328
  logging.error(f"Error generating mask: {e}")
329
  return jsonify({'error': str(e)}), 500