test1000 / app.py
malekradwan130's picture
Update app.py
8c57c66 verified
import os
import warnings
from pathlib import Path
import gradio as gr
import numpy as np
from PIL import Image
from deoldify import device
from deoldify.device_id import DeviceId
from deoldify.visualize import get_image_colorizer
from huggingface_hub import snapshot_download
# تعطيل التحذيرات الغير ضرورية
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")
# تحميل نموذج DeOldify من Hugging Face
REPO_ID = "leonelhs/deoldify"
snapshot_folder = snapshot_download(repo_id=REPO_ID)
# تعيين الجهاز (CPU فقط، أو GPU لو متاح)
try:
device.set(device=DeviceId.GPU0) # تجربة استخدام GPU
except:
device.set(device=DeviceId.CPU) # الرجوع إلى CPU لو الـ GPU غير متاح
# تحميل النموذج
colorizer = get_image_colorizer(root_folder=Path(snapshot_folder), artistic=True)
def predict(image_path):
"""
تحويل صورة الأبيض والأسود إلى صورة ملونة باستخدام DeOldify
"""
try:
# تشغيل النموذج على الصورة
result = colorizer.get_transformed_image(image_path, render_factor=35, watermarked=False)
# تحويل النتيجة إلى numpy array
result_np = np.array(result)
return result_np # إرجاع الصورة الملونة
except Exception as e:
return f"Error: {str(e)}"
# إعداد Gradio API
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="filepath", label="Upload Black & White Image"),
outputs=gr.Image(type="numpy", label="Colorized Image"),
title="DeOldify - Image Colorization",
description="Upload a grayscale image and get a colorized version using DeOldify.",
)
# تشغيل التطبيق
demo.queue().launch()