import os import random import gradio as gr from PIL import Image import torch from random import randint import sys import psutil import subprocess def run_cmd(command): try: print(f"Running command: {command}") # Run the command and capture both output and error result = subprocess.run(command, shell=True, text=True, capture_output=True) # Print stdout and stderr if result.stdout: print("Output:\n", result.stdout) if result.stderr: print("Error:\n", result.stderr) # Check for command success if result.returncode != 0: print(f"Command failed with return code {result.returncode}") except KeyboardInterrupt: print("Process interrupted") sys.exit(1) run_cmd("wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P .") run_cmd("wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth -P .") def inference(img,mode): _id = randint(1, 10000) INPUT_DIR = "./tmp/input_image" + str(_id) + "/" OUTPUT_DIR = "./tmp/output_image" + str(_id) + "/" run_cmd("ls -l ./tmp/*/*") run_cmd("rm -rf " + INPUT_DIR) run_cmd("rm -rf " + OUTPUT_DIR) run_cmd("mkdir -p " + INPUT_DIR) run_cmd("mkdir -p " + OUTPUT_DIR) img.save(INPUT_DIR + "1.png", "PNG") if mode == "base": run_cmd("python inference_realesrgan.py -n RealESRGAN_x4plus -i "+ INPUT_DIR + " -o " + OUTPUT_DIR) else: run_cmd("python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i "+ INPUT_DIR + " -o " + OUTPUT_DIR) return os.path.join(OUTPUT_DIR, "1_out.png") title = "Real-ESRGAN" description = "Gradio demo for Real-ESRGAN. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below. Please click submit only once" article = "

Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data | Github Repo

" gr.Interface( inference, [gr.inputs.Image(type="pil", label="Input"),gr.inputs.Radio(["base","anime"], type="value", default="anime", label="model type")], gr.outputs.Image(type="file", label="Output"), title=title, description=description, article=article ).launch()