diff --git a/app.py b/app.py index 3d25d54..f9f7970 100644 --- a/app.py +++ b/app.py @@ -52,6 +52,42 @@ def gen_group_pic(): else: return jsonify({"status": "error", "message": "Request must be JSON"}), 415 +@app.route('/gen_latest_pic', methods=['POST']) +def gen_latest_pic(): + if request.is_json: + data = request.get_json() + base_image = base64.b64decode(data['base_image']) + pid = data.get('pid', 'default_user') # Use provided pid or default + + if not base_image: + return jsonify({"status": "error", "message": "Missing data"}), 422 + + # Get the latest created openpose image from output directory + import os + import glob + + output_dir = 'output' + # Search for all openpose output images + image_patterns = [ + os.path.join(output_dir, 'body_pose_output*.png'), + os.path.join(output_dir, 'body_pose_output_multi*.png') + ] + + all_images = [] + for pattern in image_patterns: + all_images.extend(glob.glob(pattern)) + + if not all_images: + return jsonify({"status": "error", "message": "No openpose images found in output directory"}), 404 + + # Get the latest file by modification time + openpose_image_path = max(all_images, key=os.path.getmtime) + + gen_group_pic_prompt(openpose_image_path, base_image, pid, opg.server_address) + + return jsonify({"status": "success", "message": "Data received"}), 201 + else: + return jsonify({"status": "error", "message": "Request must be JSON"}), 415 def gen_fencer_prompt(openpose_image_path, pid, comfyUI_address):