insideman's picture
Update app.py
6ce42a9 verified
raw
history blame
1.81 kB
import gradio as gr
import torch
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel
from PIL import Image
import numpy as np
def load_model():
controlnet = ControlNetModel.from_pretrained("Kwai-Kolors/Kolors-Virtual-Try-On")
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"Kwai-Kolors/Kolors-Virtual-Try-On",
controlnet=controlnet,
torch_dtype=torch.float16
)
if torch.cuda.is_available():
pipe = pipe.to("cuda")
return pipe
# Model'i global olarak yükle
try:
model = load_model()
print("Model başarıyla yüklendi!")
except Exception as e:
print(f"Model yüklenirken hata: {str(e)}")
def virtual_try_on(person_image, garment_image):
"""
Virtual try-on process
"""
try:
# Resimleri uygun formata dönüştür
if person_image is None or garment_image is None:
return None, "Error: Both images are required"
# Model inference
output = model(
person_image,
garment_image,
num_inference_steps=30,
guidance_scale=7.5
)
# Sonuç resmini al
result_image = output.images[0]
return result_image, "Success"
except Exception as e:
return None, f"Error: {str(e)}"
# Gradio arayüzü
demo = gr.Interface(
fn=virtual_try_on,
inputs=[
gr.Image(type="pil", label="Person Image"),
gr.Image(type="pil", label="Garment Image")
],
outputs=[
gr.Image(type="pil", label="Result"),
gr.Text(label="Status")
],
title="Virtual Try-On",
description="Upload a person image and a garment image to see how the garment would look on the person."
)
if __name__ == "__main__":
demo.launch()