clotheschange / app.py
yousef4's picture
Update app.py
174a123 verified
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()