|
|
|
|
|
from __future__ import annotations |
|
|
|
import json |
|
import shlex |
|
import subprocess |
|
|
|
import gradio as gr |
|
|
|
|
|
def run(image_path: str, class_index: int, scale: str, sigma_y: float) -> str: |
|
out_name = image_path.split('/')[-1].split('.')[0] |
|
subprocess.run(shlex.split( |
|
f'python main.py --config confs/inet256.yml --resize_y --deg sr_averagepooling --scale {scale} --class {class_index} --path_y {image_path} --save_path {out_name} --sigma_y {sigma_y}' |
|
), |
|
cwd='DDNM/hq_demo') |
|
return f'DDNM/hq_demo/results/{out_name}/final/00000.png' |
|
|
|
|
|
def create_demo(): |
|
examples = [ |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/323.png', |
|
'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus', |
|
'4', |
|
0, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/orange.png', |
|
'orange', |
|
'4', |
|
0, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/monarch.png', |
|
'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus', |
|
'4', |
|
0.5, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/bear.png', |
|
'brown bear, bruin, Ursus arctos', |
|
'4', |
|
0, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/flamingo.png', |
|
'flamingo', |
|
'2', |
|
0, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/kimono.png', |
|
'kimono', |
|
'2', |
|
0, |
|
], |
|
[ |
|
'DDNM/hq_demo/data/datasets/gts/inet256/zebra.png', |
|
'zebra', |
|
'4', |
|
0, |
|
], |
|
] |
|
|
|
with open('imagenet_classes.json') as f: |
|
imagenet_class_names = json.load(f) |
|
|
|
with gr.Blocks() as demo: |
|
with gr.Row(): |
|
with gr.Column(): |
|
image = gr.Image(label='Input image', type='filepath') |
|
class_index = gr.Dropdown(label='Class name', |
|
choices=imagenet_class_names, |
|
type='index', |
|
value=950) |
|
scale = gr.Dropdown(label='Scale', |
|
choices=['2', '4', '8'], |
|
value='4') |
|
sigma_y = gr.Number(label='sigma_y', value=0, precision=2) |
|
run_button = gr.Button('Run') |
|
with gr.Column(): |
|
result = gr.Image(label='Result', type='filepath') |
|
|
|
gr.Examples( |
|
examples=examples, |
|
inputs=[ |
|
image, |
|
class_index, |
|
scale, |
|
sigma_y, |
|
], |
|
) |
|
|
|
run_button.click( |
|
fn=run, |
|
inputs=[ |
|
image, |
|
class_index, |
|
scale, |
|
sigma_y, |
|
], |
|
outputs=result, |
|
) |
|
return demo |
|
|