Spaces:
Running
Running
| import gradio as gr | |
| from gradio_client import Client, file | |
| # Function to perform virtual try-on based on the selected model | |
| def virtual_try_on(background, garment, garment_desc, denoise_steps, seed, model_choice): | |
| print(f"Model selected: {model_choice}") # Debugging line to confirm the model choice | |
| # Initialize the client based on the selected model | |
| if model_choice == "IDM-VTON": | |
| client = Client("yisol/IDM-VTON") | |
| elif model_choice == "Virtual-Try-On": | |
| client = Client("Nymbo/Virtual-Try-On") | |
| else: | |
| raise ValueError("Model choice not recognized") # Handle any unexpected model choice | |
| # Make the prediction using the selected model's API | |
| result = client.predict( | |
| dict={"background": file(background) if background else None, "layers": [], "composite": None}, | |
| garm_img=file(garment), | |
| garment_des=garment_desc, | |
| is_checked=True, | |
| is_checked_crop=False, | |
| denoise_steps=denoise_steps, | |
| seed=seed, | |
| api_name="/tryon" | |
| ) | |
| # Return the resulting images | |
| return result[0], result[1] # First output: image, Second output: masked image | |
| # Gradio interface | |
| iface = gr.Interface( | |
| fn=virtual_try_on, | |
| inputs=[ | |
| gr.Radio(choices=["IDM-VTON", "Virtual-Try-On"], label="اختر النموذج", value="IDM-VTON"), | |
| gr.Image(type="filepath", label="صورة الشخص"), | |
| gr.Image(type="filepath", label="صورة الملابس"), | |
| gr.Textbox(label="وصف الملابس (اختياري)"), | |
| gr.Slider(minimum=1, maximum=50, value=30, label="عدد خطوات التنقية"), | |
| gr.Slider(minimum=0, maximum=100, value=42, label="البذرة") | |
| ], | |
| outputs=[ | |
| gr.Image(label="الصورة الناتجة"), | |
| gr.Image(label="الصورة المقنعة الناتجة") | |
| ], | |
| title="تجربة الملابس الافتراضية", | |
| description="اختر بين نموذجين لتجربة الملابس الافتراضية ورفع الصور." | |
| ) | |
| # Launch the interface | |
| iface.launch() | |