codeslake commited on
Commit
0c1dd21
1 Parent(s): 81004c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -38
app.py CHANGED
@@ -26,8 +26,8 @@ HR_Ref_path_T = "test/RealMCVSR/test/HR/T/0000"
26
  os.makedirs(HR_LR_path)
27
  os.makedirs(HR_Ref_path)
28
  os.makedirs(HR_Ref_path_T)
29
- os.system("wget https://www.dropbox.com/s/198390mgcba5fgj/LR.png -O HR_LR.png")
30
- os.system("wget https://www.dropbox.com/s/vc2jvuwj17p1fuy/Ref.png -O HR_Ref.png")
31
 
32
  # 4x downsampled input
33
  LR_path = "test/RealMCVSR/test/LRx4/UW/0000"
@@ -54,12 +54,13 @@ def resize(img):
54
  img = img.resize((wsize,hsize), Image.ANTIALIAS)
55
  return img
56
 
57
- #################### low res ##################
 
58
  ## inference
59
- def inference(LR, Ref):
60
- ## resize for user selected input
61
- LR = resize(LR)
62
- Ref = resize(Ref)
63
 
64
  ## Input setup (creates folders and places inputs corresponding to the original RefVSR code)
65
  LR.save(os.path.join(LR_path, '0000.png'))
@@ -71,38 +72,38 @@ def inference(LR, Ref):
71
 
72
  ## Run RefVSR model
73
  os.system("python -B run.py \
74
- --mode RefVSR_MFID \
75
- --config config_RefVSR_MFID \
76
  --data RealMCVSR \
77
- --ckpt_abs_name ckpt/RefVSR_MFID.pytorch \
78
  --data_offset ./test \
79
  --output_offset ./result \
80
  --qualitative_only \
81
  --cpu \
82
- --is_gradio")
83
  return "result/0000.png"
 
 
 
84
 
85
- title="Demo for RefVSR (CVPR 2022)"
86
- description="The demo applies 4xVSR on a video frame. It runs on CPUs and takes about 150s. For the demo, upload a low-resolution frame and a reference frame to 'LR' and 'Ref' input windows, respectively. It is recommended for the reference frame to have a 2x larger zoom factor than that of the low-resolution frame."
87
-
88
- article = "<p style='text-align: center'><b>To check the full capability of the module, we recommend to clone Github repository and run RefVSR models on videos using GPUs.</b></p><p style='text-align: center'>This demo runs on CPUs and only supports RefVSR for a single LR and Ref frames due to computational complexity.<br>Hence, the model <b>will not take advantage</b> of temporal LR and Ref frames.</p><p style='text-align: center'>Moreover, the model is trained <b>only with the proposed pre-training strategy</b> to cope with downsampled sample frames, which are in the 480x270 resolution.</p><p style='text-align: center'>For user given frames, the size will be adjusted for the longer side of the frames to have 480 pixels.</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>"
89
 
90
- ## resize for sample
91
- LR = resize(Image.open('LR.png')).save('LR.png')
92
- Ref = resize(Image.open('Ref.png')).save('Ref.png')
93
 
94
  ## input
95
- examples=[['LR.png','Ref.png']]
96
 
97
  ## interface
98
- 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)
99
 
100
- #################### 8K ##################
101
  ## inference
102
- def inference_8K(LR, Ref):
103
- ## resize for user selected input (not used)
104
- #LR = resize(LR)
105
- #Ref = resize(Ref)
106
 
107
  ## Input setup (creates folders and places inputs corresponding to the original RefVSR code)
108
  LR.save(os.path.join(LR_path, '0000.png'))
@@ -114,28 +115,28 @@ def inference_8K(LR, Ref):
114
 
115
  ## Run RefVSR model
116
  os.system("python -B run.py \
117
- --mode RefVSR_MFID_8K \
118
- --config config_RefVSR_MFID_8K \
119
  --data RealMCVSR \
120
- --ckpt_abs_name ckpt/RefVSR_MFID_8K.pytorch \
121
  --data_offset ./test \
122
  --output_offset ./result \
123
  --qualitative_only \
124
  --cpu \
125
- --is_gradio")
126
  return "result/0000.png"
127
-
128
- title="RefVSR"
129
- 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. The demo runs on CPUs and takes about 120s."
130
 
131
- article = "<p style='text-align: center'><b>To check the full capability of the module, we recommend to clone Github repository and run RefVSR models on videos using GPUs.</b></p><p style='text-align: center'><div>This demo runs on CPUs and only supports RefVSR for a single LR and Ref frame due to computational complexity.</div><div>Hence, the model will not take advantage of temporal LR and Ref frames.</div></p><p style='text-align: center'>The model is trained by the proposed two-stage training strategy. The sample frames are in HD resolution (1920x1080) and saved 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>"
 
132
 
133
- ## resize for sample (not used)
134
- #LR = resize(Image.open('LR.png')).save('LR.png')
135
- #Ref = resize(Image.open('Ref.png')).save('Ref.png')
 
 
136
 
137
  ## input
138
- examples=[['HR_LR.png', 'HR_Ref.png']]
139
 
140
  ## interface
141
- gr.Interface(inference_8K,[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)
 
26
  os.makedirs(HR_LR_path)
27
  os.makedirs(HR_Ref_path)
28
  os.makedirs(HR_Ref_path_T)
29
+ os.system("wget https://www.dropbox.com/s/x33ka2jlzwsde7r/LR.png -O HR_LR.png")
30
+ os.system("wget https://www.dropbox.com/s/pp903wlz3syf68w/Ref.png -O HR_Ref.png")
31
 
32
  # 4x downsampled input
33
  LR_path = "test/RealMCVSR/test/LRx4/UW/0000"
 
54
  img = img.resize((wsize,hsize), Image.ANTIALIAS)
55
  return img
56
 
57
+
58
+ #################### 8K ##################
59
  ## inference
60
+ def inference_8K(LR, Ref):
61
+ ## resize for user selected input (not used)
62
+ #LR = resize(LR)
63
+ #Ref = resize(Ref)
64
 
65
  ## Input setup (creates folders and places inputs corresponding to the original RefVSR code)
66
  LR.save(os.path.join(LR_path, '0000.png'))
 
72
 
73
  ## Run RefVSR model
74
  os.system("python -B run.py \
75
+ --mode RefVSR_MFID_8K \
76
+ --config config_RefVSR_MFID_8K \
77
  --data RealMCVSR \
78
+ --ckpt_abs_name ckpt/RefVSR_MFID_8K.pytorch \
79
  --data_offset ./test \
80
  --output_offset ./result \
81
  --qualitative_only \
82
  --cpu \
83
+ --is_gradio")
84
  return "result/0000.png"
85
+
86
+ title="RefVSR"
87
+ 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. The demo runs on CPUs and takes about 120s."
88
 
89
+ article = "<p style='text-align: center'><b>To check the full capability of the module, we recommend to clone Github repository and run RefVSR models on videos using GPUs.</b></p><p style='text-align: center'><div>This demo runs on CPUs and only supports RefVSR for a single LR and Ref frame due to computational complexity.</div><div>Hence, the model will not take advantage of temporal LR and Ref frames.</div></p><p style='text-align: center'>The model is trained by the proposed two-stage training strategy. The sample frames are in HD resolution (1920x1080) and saved 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>"
 
 
 
90
 
91
+ ## resize for sample (not used)
92
+ #LR = resize(Image.open('LR.png')).save('LR.png')
93
+ #Ref = resize(Image.open('Ref.png')).save('Ref.png')
94
 
95
  ## input
96
+ examples=[['HR_LR.png', 'HR_Ref.png']]
97
 
98
  ## interface
99
+ gr.Interface(inference_8K,[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)
100
 
101
+ #################### low res ##################
102
  ## inference
103
+ def inference(LR, Ref):
104
+ ## resize for user selected input
105
+ LR = resize(LR)
106
+ Ref = resize(Ref)
107
 
108
  ## Input setup (creates folders and places inputs corresponding to the original RefVSR code)
109
  LR.save(os.path.join(LR_path, '0000.png'))
 
115
 
116
  ## Run RefVSR model
117
  os.system("python -B run.py \
118
+ --mode RefVSR_MFID \
119
+ --config config_RefVSR_MFID \
120
  --data RealMCVSR \
121
+ --ckpt_abs_name ckpt/RefVSR_MFID.pytorch \
122
  --data_offset ./test \
123
  --output_offset ./result \
124
  --qualitative_only \
125
  --cpu \
126
+ --is_gradio")
127
  return "result/0000.png"
 
 
 
128
 
129
+ title="Demo for RefVSR (CVPR 2022)"
130
+ description="The demo applies 4xVSR on a video frame. It runs on CPUs and takes about 150s. For the demo, upload a low-resolution frame and a reference frame to 'LR' and 'Ref' input windows, respectively. It is recommended for the reference frame to have a 2x larger zoom factor than that of the low-resolution frame."
131
 
132
+ article = "<p style='text-align: center'><b>To check the full capability of the module, we recommend to clone Github repository and run RefVSR models on videos using GPUs.</b></p><p style='text-align: center'>This demo runs on CPUs and only supports RefVSR for a single LR and Ref frames due to computational complexity.<br>Hence, the model <b>will not take advantage</b> of temporal LR and Ref frames.</p><p style='text-align: center'>Moreover, the model is trained <b>only with the proposed pre-training strategy</b> to cope with downsampled sample frames, which are in the 480x270 resolution.</p><p style='text-align: center'>For user given frames, the size will be adjusted for the longer side of the frames to have 480 pixels.</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>"
133
+
134
+ ## resize for sample
135
+ LR = resize(Image.open('LR.png')).save('LR.png')
136
+ Ref = resize(Image.open('Ref.png')).save('Ref.png')
137
 
138
  ## input
139
+ examples=[['LR.png','Ref.png']]
140
 
141
  ## interface
142
+ 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)