Spaces:
Running
Running
| import numpy as np | |
| import onnxruntime | |
| from huggingface_hub import hf_hub_download | |
| from PIL import Image | |
| def upscale_edsr_2x(image_path: str): | |
| input_image = Image.open(image_path).convert("RGB") | |
| input_image = np.array(input_image).astype("float32") | |
| input_image = np.transpose(input_image, (2, 0, 1)) | |
| img_arr = np.expand_dims(input_image, axis=0) | |
| if np.max(img_arr) > 256: # 16-bit image | |
| max_range = 65535 | |
| else: | |
| max_range = 255.0 | |
| img = img_arr / max_range | |
| model_path = hf_hub_download( | |
| repo_id="rupeshs/edsr-onnx", | |
| filename="edsr_onnxsim_2x.onnx", | |
| ) | |
| sess = onnxruntime.InferenceSession(model_path) | |
| input_name = sess.get_inputs()[0].name | |
| output_name = sess.get_outputs()[0].name | |
| output = sess.run( | |
| [output_name], | |
| {input_name: img}, | |
| )[0] | |
| result = output.squeeze() | |
| result = result.clip(0, 1) | |
| image_array = np.transpose(result, (1, 2, 0)) | |
| image_array = np.uint8(image_array * 255) | |
| upscaled_image = Image.fromarray(image_array) | |
| return upscaled_image | |