File size: 3,556 Bytes
ded9852
 
 
 
 
 
 
 
 
0a35c65
 
450d71c
37ae4f3
6ab4775
 
5dcb962
ded9852
 
 
 
 
 
137fd43
 
e7e1eaf
ded9852
 
 
 
 
 
 
 
 
a6cabfe
 
6bdaae4
ded9852
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e7e1eaf
ded9852
 
dd6eb85
 
ded9852
94a304b
ded9852
18d9300
ded9852
18d9300
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
import os
import sys
import gradio as gr
from PIL import Image

## environment settup
os.system("git clone https://github.com/codeslake/RefVSR.git")
os.chdir("RefVSR")
os.system("./install/install_cudnn113.sh")
os.system("wget https://www.dropbox.com/s/xv6inxwy0so4ni0/LR.png -O LR.png")
os.system("wget https://www.dropbox.com/s/abydd1oczs1163l/Ref.png -O Ref.png")

os.mkdir("ckpt")
os.system("wget https://huggingface.co/codeslake/RefVSR/resolve/main/RefVSR_small_MFID_8K.pytorch -O ckpt/RefVSR_small_MFID_8K.pytorch")
os.system("wget https://huggingface.co/codeslake/RefVSR/resolve/main/SPyNet.pytorch -O ckpt/SPyNet.pytorch")

sys.path.append("RefVSR")

## RefVSR
LR_path = "test/test/HR/UW/0000"
Ref_path = "test/test/HR/W/0000"
Ref_path_T = "test/test/HR/W/0000"
os.makedirs(LR_path)
os.makedirs(Ref_path)
os.makedirs('result')

def resize(width,img):
    basewidth = width
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), Image.ANTIALIAS)
    return img
  
def inference(LR, Ref):
    #LR = resize(256, LR)
    #Ref = resize(256, Ref)

    LR.save(os.path.join(LR_path, '0000.png'))
    Ref.save(os.path.join(Ref_path, '0000.png'))
    Ref.save(os.path.join(Ref_path_T, '0000.png'))

    # os.system("python inference_realbasicvsr.py configs/realbasicvsr_x4.py RealBasicVSR_x4.pth test/ results/demo_000")
    os.system("python -B run.py \
                --mode amp_RefVSR_small_MFID_8K \
                --config config_RefVSR_small_MFID_8K \
                --data RealMCVSR \
                --ckpt_abs_name ckpt/RefVSR_small_MFID_8K.pytorch \
                --data_offset ./test \
                --output_offset ./result \
                --qualitative_only \
                --cpu \
                --is_gradio")

    return "result/0000.png"

title="RefVSR"
#description="Demo application for Reference-based Video Super-Resolution (RefVSR).\nInstruction: Upload a low-resolution frame and a reference frame to 'LR' and 'Ref' input windows, respectively.\nNote 1: This demo only supports RefVSR for a single LR and Ref frame due to computational complexity. Hence, the model might not take advantage of temporal frames. \nNote 2: The model is our small 8K model trained with the proposed two-stage training strategy. \nNote 3: The spatial size of input LR and Ref frames is 1920x1080 (HD), in the PNG format."
description="Demo application for Reference-based Video Super-Resolution (RefVSR).Upload a low-resolution frame and a reference frame to 'LR' and 'Ref' input windows, respectively."

article = "<p style='text-align: center'>This demo only supports RefVSR for a single LR and Ref frame due to computational complexity. Hence, the model might not take advantage of temporal frames.</p><p style='text-align: center'>The model is our small 8K model trained with the proposed two-stage training strategy.</p><p style='text-align: center'>The spatial size of input LR and Ref frames is 1920x1080 (HD), in the PNG format.</p><p style='text-align: center'><a href='https://junyonglee.me/projects/RefVSR' target='_blank'>Project</a> | <a href='https://arxiv.org/abs/2203.14537' target='_blank'>arXiv</a> | <a href='https://github.com/codeslake/RefVSR' target='_blank'>Github</a></p>"

examples=[[['LR.png'], ['Ref.png']]]

gr.Interface(inference,[gr.inputs.Image(type="pil"), gr.inputs.Image(type="pil")],gr.outputs.Image(type="file"),title=title,description=description,article=article,theme ="peach",examples=examples).launch(enable_queue=True)