Spaces:
Runtime error
Runtime error
File size: 2,134 Bytes
0022789 9148f31 63bc8dd 854e73f 0022789 b2cd494 ff46a0e 854e73f 9148f31 b2cd494 63bc8dd 0022789 ff46a0e 82192ca 0022789 ff46a0e 82192ca 0022789 ff46a0e 0022789 67994b3 f1841f9 0022789 f1841f9 0022789 ff46a0e 0022789 c5349e7 92f8a2c cc8ae7b c5349e7 63bc8dd |
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import gradio as gr
from gradio_imageslider import ImageSlider
from PIL import Image
import numpy as np
from aura_sr import AuraSR
import torch
#import spaces
import devicetorch
device = devicetorch.get(torch)
# Force CPU usage
torch.set_default_tensor_type(torch.FloatTensor)
# Override torch.load to always use CPU
original_load = torch.load
torch.load = lambda *args, **kwargs: original_load(*args, **kwargs, map_location=torch.device('cpu'))
# Initialize the AuraSR model
aura_sr = AuraSR.from_pretrained("fal-ai/AuraSR", device=device)
# Restore original torch.load
torch.load = original_load
#@spaces.GPU
def process_image(input_image):
if input_image is None:
return None
# Convert to PIL Image for resizing
pil_image = Image.fromarray(input_image)
# Upscale the image using AuraSR
with torch.no_grad():
upscaled_image = aura_sr.upscale_4x(pil_image)
# Convert result to numpy array if it's not already
result_array = np.array(upscaled_image)
return [input_image, result_array]
title = """<h1 align="center">AuraSR - An open reproduction of the GigaGAN Upscaler from fal.ai</h1>
<p><center>
<a href="https://blog.fal.ai/introducing-aurasr-an-open-reproduction-of-the-gigagan-upscaler-2/" target="_blank">[Blog Post]</a>
<a href="https://huggingface.co/fal-ai/AuraSR" target="_blank">[Model Page]</a>
</center></p>
"""
with gr.Blocks() as demo:
gr.HTML(title)
with gr.Row():
with gr.Column(scale=1):
input_image = gr.Image(label="Input Image", type="numpy")
process_btn = gr.Button("Upscale Image")
with gr.Column(scale=1):
output_slider = ImageSlider(label="Before / After", type="numpy")
process_btn.click(
fn=process_image,
inputs=[input_image],
outputs=output_slider
)
# Add examples
gr.Examples(
examples=[
"image1.png",
"image2.png",
"image3.png"
],
inputs=input_image,
outputs=output_slider,
fn=process_image,
#cache_examples=True
)
demo.launch(debug=True)
|