mytry / app.py
SuriRaja's picture
Update app.py
f918f30 verified
import torch
from diffusers import StableDiffusionPipeline
import gradio as gr
from PIL import Image
# Load the model and pipeline
model_id = "ares1123/virtual-dress-try-on"
pipeline = StableDiffusionPipeline.from_pretrained(model_id)
pipeline.to("cuda" if torch.cuda.is_available() else "cpu")
def virtual_try_on(image, clothing_image):
# Convert images to proper format and get dimensions
width, height = image.size
# Ensure dimensions are multiples of 8
width = (width // 8) * 8
height = (height // 8) * 8
# Resize images to fit the model's expected input
image = image.resize((width, height))
clothing_image = clothing_image.resize((width, height))
# Define a prompt describing what you want the model to do
prompt = "A person wearing new clothes"
# Process the images using the model
result = pipeline(prompt=prompt, image=image, conditioning_image=clothing_image)
try_on_image = result.images[0]
return try_on_image
# Set up a simple Gradio interface for testing
interface = gr.Interface(
fn=virtual_try_on,
inputs=[gr.Image(type="pil", label="User Image"),
gr.Image(type="pil", label="Clothing Image")],
outputs=gr.Image(type="pil"),
title="Virtual Dress Try-On",
description="Upload an image of yourself and a clothing image to try it on virtually!"
)
# Launch the interface
interface.launch(share=True)