import os import shutil import torch import cv2 import gradio as gr from PIL import Image #os.chdir('Restormer') # Download sample images os.system("wget https://github.com/swz30/Restormer/releases/download/v1.0/sample_images.zip") shutil.unpack_archive('sample_images.zip') os.remove('sample_images.zip') examples = [['sample_images/Real_Denoising/degraded/117355.png', 'Denoising'], ['sample_images/Single_Image_Defocus_Deblurring/degraded/engagement.jpg', 'Defocus Deblurring'], ['sample_images/Motion_Deblurring/degraded/GoPro-GOPR0854_11_00-000090-input.jpg','Motion Deblurring'], ['sample_images/Deraining/degraded/Rain100H-77-input.jpg','Deraining']] title = "Restormer" description = """ Gradio demo for Restormer: Efficient Transformer for High-Resolution Image Restoration, CVPR 2022--ORAL. [Paper][Github Code]\n With Restormer, you can perform: (1) Image Denoising, (2) Defocus Deblurring, (3) Motion Deblurring, and (4) Image Deraining. To use it, simply upload your own image, or click one of the examples provided below. """ article = "

Restormer: Efficient Transformer for High-Resolution Image Restoration | Github Repo

" def inference(img,task): os.system('mkdir temp') # Resize the longer edge of the input image max_res = 512 width, height = img.size if max(width,height) > max_res: scale = max_res /max(width,height) width = int(scale*width) height = int(scale*height) img = img.resize((width,height), Image.ANTIALIAS) img.save("temp/image.jpg", "JPEG") if task == 'Motion Deblurring': task = 'Motion_Deblurring' os.system("python demo_gradio.py --task 'Motion_Deblurring' --input_path 'temp/image.jpg' --result_dir './temp/'") if task == 'Defocus Deblurring': task = 'Single_Image_Defocus_Deblurring' os.system("python demo_gradio.py --task 'Single_Image_Defocus_Deblurring' --input_path 'temp/image.jpg' --result_dir './temp/'") if task == 'Denoising': task = 'Real_Denoising' os.system("python demo_gradio.py --task 'Real_Denoising' --input_path 'temp/image.jpg' --result_dir './temp/'") if task == 'Deraining': os.system("python demo_gradio.py --task 'Deraining' --input_path 'temp/image.jpg' --result_dir './temp/'") return f'temp/{task}/image.jpg' gr.Interface( inference, [ gr.inputs.Image(type="pil", label="Input"), gr.inputs.Radio(["Denoising", "Defocus Deblurring", "Motion Deblurring", "Deraining"], default="Denoising", label='task type') ], gr.outputs.Image(type="file", label="Output"), title=title, description=description, article=article, examples=examples, allow_flagging=False, ).launch(debug=False,enable_queue=True)