Colorize / app.py
Rafuwhwhs's picture
Create app.py
25479bb verified
raw
history blame
1.68 kB
import os
import cv2
import tempfile
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import PIL
from pathlib import Path
import gradio as gr
import numpy as np
import requests
from io import BytesIO
from PIL import Image
# Load the model into memory to make running multiple predictions efficien
img_colorization = pipeline(Tasks.image_colorization, model='iic/cv_ddcolor_image-colorization')
def load_image_from_url(url):
response = requests.get(url)
img = Image.open(BytesIO(response.content))
return img
def inference(img, img_url=None):
if img_url:
img = load_image_from_url(img_url)
img = np.array(img)
output = img_colorization(img[..., ::-1])
result = output[OutputKeys.OUTPUT_IMG].astype(np.uint8)
temp_dir = tempfile.mkdtemp()
out_path = os.path.join(temp_dir, 'old-to-color.png')
cv2.imwrite(out_path, result)
upload_url = "https://api.postimages.org/upload"
files = {'file': open(out_path, 'rb')}
response = requests.post(upload_url, files=files)
files.close()
image_url = response.json()['url'] # رابط الصورة المحملة
return Path(out_path), image_url
title = "Color Restorization Model"
interface = gr.Interface(
inference,
inputs=[
gr.inputs.Image(type="pil", label="Input Image"),
gr.inputs.Textbox(placeholder="Enter Image URL (optional)", label="Image URL (optional)")
],
outputs=[
gr.outputs.Image(type="pil", label="Output Image"),
gr.outputs.Textbox(label="Download Link")
],
title=title
)
interface.launch(enable_queue=True)