File size: 1,350 Bytes
d2f5ec4 1cea65c cd1a7a2 dfe6330 1cea65c dfe6330 1cea65c d2f5ec4 1cea65c d053cfa b073765 1cea65c cd1a7a2 1cea65c d053cfa 1cea65c b073765 1cea65c dfe6330 b073765 1cea65c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import torch
from torchvision import transforms
from PIL import Image
import requests
from io import BytesIO
import gradio as gr
# لینک مستقیم مدل روی HF Hub
MODEL_URL = "https://huggingface.co/justinpinkney/toonify/resolve/main/toonify.pt"
DEVICE = "cuda" # یا "cpu"
IMAGE_SIZE = 256
# دانلود مدل مستقیم از URL
def load_model(url):
buffer = BytesIO(requests.get(url).content)
model = torch.load(buffer, map_location=DEVICE)
model.eval()
return model
model = load_model(MODEL_URL)
# تابع تبدیل عکس
def convert_to_toon(image: Image.Image) -> Image.Image:
preprocess = transforms.Compose([
transforms.Resize((IMAGE_SIZE, IMAGE_SIZE)),
transforms.ToTensor(),
])
img_tensor = preprocess(image).unsqueeze(0).to(DEVICE)
with torch.no_grad():
output_tensor = model(img_tensor)
output_image = output_tensor.squeeze().cpu()
output_image = transforms.ToPILImage()(output_image)
return output_image
# رابط Gradio
iface = gr.Interface(
fn=convert_to_toon,
inputs=gr.Image(type="pil"),
outputs=gr.Image(type="pil"),
title="Toonify Face Converter",
description="تبدیل عکس به کارتون مدرن با حفظ جزئیات چهره، بدون پرامپت و بدون دانلود دستی"
)
iface.launch() |