Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import AutoImageProcessor, Swin2SRForImageSuperResolution | |
from PIL import Image | |
import numpy as np | |
import torch | |
import requests | |
# Load the model and processor | |
processor = AutoImageProcessor.from_pretrained("caidas/swin2SR-realworld-sr-x4-64-bsrgan-psnr") | |
model = Swin2SRForImageSuperResolution.from_pretrained("caidas/swin2SR-realworld-sr-x4-64-bsrgan-psnr").to('cpu') | |
# Define the function for super-resolution | |
def super_resolve(image): | |
# Preprocess the input image | |
inputs = processor(images=image, return_tensors="pt").to('cpu') | |
# Perform super-resolution | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
# Get the reconstructed tensor from the outputs | |
reconstructed_tensor = outputs.reconstruction | |
# Move the tensor to the CPU and convert it to a NumPy array | |
image_tensor = reconstructed_tensor.squeeze().cpu() | |
image_np = image_tensor.permute(1, 2, 0).numpy() # Permute to make it HxWxC | |
# Rescale the values from [0, 1] to [0, 255] | |
image_np = np.clip(image_np, 0, 1) | |
image_np = (image_np * 255).astype(np.uint8) | |
# Convert the NumPy array back to an image | |
output_image = Image.fromarray(image_np) | |
return output_image | |
# Create the Gradio interface | |
inputs = gr.Image(type="pil", label="Upload an Image") | |
outputs = gr.Image(type="pil", label="Super-Resolved Image") | |
dsc = """ | |
Upload an image to generate a high-resolution version using the SeemoRe model. | |
**Citations:** | |
1. Marcos V. Conde, Ui-Jin Choi, Maxime Burchi, Radu Timofte, *Swin2SR: SwinV2 Transformer for Compressed Image Super-Resolution and Restoration*, Proceedings of the European Conference on Computer Vision (ECCV) Workshops, 2022. | |
2. Jingyun Liang, Jiezhang Cao, Guolei Sun, Kai Zhang, Luc Van Gool, Radu Timofte, *SwinIR: Image Restoration Using Swin Transformer*, arXiv preprint arXiv:2108.10257, 2021. | |
For more details, refer to the original papers. | |
""" | |
gr.Interface(fn=super_resolve, inputs=inputs, outputs=outputs, title="Image Super-Resolution with Swin2SR", | |
description=dsc | |
).launch() | |