Spaces:
Runtime error
Runtime error
| import os | |
| import cv2 | |
| import gradio as gr | |
| import numpy as np | |
| import random | |
| import base64 | |
| import requests | |
| import json | |
| import time | |
| import os | |
| import gradio as gr | |
| import subprocess | |
| from shutil import copyfile | |
| # Base directory | |
| BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| DATA_DIR = os.path.join(BASE_DIR, "..", "data", "test") | |
| RESULT_IMAGE_PATH = os.path.join(BASE_DIR, "..", "results", "test", "tryon", "user_result.jpg") | |
| # Ensure required directories exist | |
| os.makedirs(os.path.join(DATA_DIR, "image"), exist_ok=True) | |
| os.makedirs(os.path.join(DATA_DIR, "cloth"), exist_ok=True) | |
| def virtual_tryon(person_image, cloth_image): | |
| # Save user inputs to test data folder | |
| person_path = os.path.join(DATA_DIR, "image", "user_image.jpg") | |
| cloth_path = os.path.join(DATA_DIR, "cloth", "user_cloth.jpg") | |
| person_image.save(person_path) | |
| cloth_image.save(cloth_path) | |
| # Update test.txt with filenames | |
| test_list_path = os.path.join(DATA_DIR, "test.txt") | |
| with open(test_list_path, "w") as f: | |
| f.write("user_image.jpg user_cloth.jpg\n") | |
| # Call test.py | |
| result = subprocess.run( | |
| ["python", os.path.join(BASE_DIR, "..", "test.py")], | |
| cwd=os.path.join(BASE_DIR, ".."), | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE, | |
| text=True, | |
| ) | |
| print("STDOUT:", result.stdout) | |
| print("STDERR:", result.stderr) | |
| # Check if result image exists | |
| if os.path.exists(RESULT_IMAGE_PATH): | |
| return RESULT_IMAGE_PATH | |
| else: | |
| return "β Error: Try-on result not found." | |
| # Gradio UI | |
| demo = gr.Interface( | |
| fn=virtual_tryon, | |
| inputs=[ | |
| gr.Image(type="pil", label="Upload Person Image"), | |
| gr.Image(type="pil", label="Upload Clothing Image") | |
| ], | |
| outputs=gr.Image(type="filepath", label="Try-On Result"), | |
| title="Virtual Try-On with VITON-HD", | |
| description="Upload a person and a clothing image to try-on the clothes virtually!" | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |