Update app.py
Browse files
app.py
CHANGED
@@ -284,24 +284,34 @@ def tryon():
|
|
284 |
})
|
285 |
|
286 |
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
try:
|
289 |
-
#
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
except Exception as e:
|
304 |
-
|
|
|
305 |
|
306 |
|
307 |
if __name__ == "__main__":
|
|
|
284 |
})
|
285 |
|
286 |
|
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)
|
301 |
+
mask, _ = get_mask_location('hd', categorie, model_parse, keypoints)
|
302 |
+
|
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
|
315 |
|
316 |
|
317 |
if __name__ == "__main__":
|