Kims12 commited on
Commit
622eb6a
ยท
verified ยท
1 Parent(s): 5822588

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -23
app.py CHANGED
@@ -1,5 +1,4 @@
1
  import os
2
-
3
  import sys
4
  from torchvision.transforms import functional
5
  sys.modules["torchvision.transforms.functional_tensor"] = functional
@@ -12,7 +11,6 @@ import torch
12
  import cv2
13
  import gradio as gr
14
 
15
-
16
  # ํ•„์š”ํ•œ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ
17
  if not os.path.exists('realesr-general-x4v3.pth'):
18
  os.system("wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth -P .")
@@ -25,18 +23,15 @@ if not os.path.exists('GFPGANv1.4.pth'):
25
  if not os.path.exists('RestoreFormer.pth'):
26
  os.system("wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth -P .")
27
 
28
-
29
  model = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=32, upscale=4, act_type='prelu')
30
  model_path = 'realesr-general-x4v3.pth'
31
  half = True if torch.cuda.is_available() else False
32
  upsampler = RealESRGANer(scale=4, model_path=model_path, model=model, tile=0, tile_pad=10, pre_pad=0, half=half)
33
 
34
-
35
- # ์ด๋ฏธ์ง€ ์ €์žฅ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๋ถ€๋ถ„ (ํ˜„์žฌ ์ฃผ์„ ์ฒ˜๋ฆฌ๋จ)
36
- # os.makedirs('output', exist_ok=True)
37
-
38
  def upscaler(img, version, scale):
39
  try:
 
40
  img = cv2.imread(img, cv2.IMREAD_UNCHANGED)
41
  if len(img.shape) == 3 and img.shape[2] == 4:
42
  img_mode = 'RGBA'
@@ -50,6 +45,7 @@ def upscaler(img, version, scale):
50
  if h < 300:
51
  img = cv2.resize(img, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
52
 
 
53
  face_enhancer = GFPGANer(
54
  model_path=f'{version}.pth',
55
  upscale=2,
@@ -61,38 +57,40 @@ def upscaler(img, version, scale):
61
  try:
62
  _, _, output = face_enhancer.enhance(img, has_aligned=False, only_center_face=False, paste_back=True)
63
  except RuntimeError as error:
64
- print('์˜ค๋ฅ˜:', error)
65
 
66
  try:
67
- # ๋ฐฐ์œจ ์กฐ์ • ๊ณ„์ˆ˜๊ฐ€ 2 ๋˜๋Š” 0์ธ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์Šค์ผ€์ผ๋ง์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ
68
- if scale != 2 and scale != 0:
69
  interpolation = cv2.INTER_AREA if scale < 2 else cv2.INTER_LANCZOS4
70
  h, w = img.shape[0:2]
71
  output = cv2.resize(output, (int(w * scale / 2), int(h * scale / 2)), interpolation=interpolation)
72
  except Exception as error:
73
- print('์ž˜๋ชป๋œ ๋ฐฐ์œจ ์ž…๋ ฅ:', error)
74
 
75
  output = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
76
  return output
77
  except Exception as error:
78
- print('์ „์—ญ ์˜ˆ์™ธ:', error)
79
  return None, None
80
 
81
  if __name__ == "__main__":
82
  title = "์ด๋ฏธ์ง€ ์—…์Šค์ผ€์ผ๋Ÿฌ ๋ฐ ๋ณต์› [GFPGAN ์•Œ๊ณ ๋ฆฌ์ฆ˜]"
83
 
84
  demo = gr.Interface(
85
- upscaler, [
86
- gr.Image(type="filepath", label="์ž…๋ ฅ ์ด๋ฏธ์ง€"),
87
- gr.Radio(['GFPGANv1.2', 'GFPGANv1.3', 'GFPGANv1.4', 'RestoreFormer'], type="value", label="๋ฒ„์ „", value="GFPGANv1.4", visible=False),
88
- gr.Number(label="๋ฐฐ์œจ ์กฐ์ • ๊ณ„์ˆ˜", value=0, visible=False),
89
- ], [
90
- gr.Image(type="numpy", label="์ถœ๋ ฅ ์ด๋ฏธ์ง€"),
91
- ],
92
- title=title,
93
- allow_flagging="never",
94
- examples=[["์˜ˆ์ œ.png", "GFPGANv1.4", 0]]
95
- )
 
 
96
 
97
  demo.queue()
98
  demo.launch()
 
1
  import os
 
2
  import sys
3
  from torchvision.transforms import functional
4
  sys.modules["torchvision.transforms.functional_tensor"] = functional
 
11
  import cv2
12
  import gradio as gr
13
 
 
14
  # ํ•„์š”ํ•œ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ
15
  if not os.path.exists('realesr-general-x4v3.pth'):
16
  os.system("wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth -P .")
 
23
  if not os.path.exists('RestoreFormer.pth'):
24
  os.system("wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth -P .")
25
 
26
+ # Real-ESRGAN ๋ชจ๋ธ ์ดˆ๊ธฐํ™”
27
  model = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=32, upscale=4, act_type='prelu')
28
  model_path = 'realesr-general-x4v3.pth'
29
  half = True if torch.cuda.is_available() else False
30
  upsampler = RealESRGANer(scale=4, model_path=model_path, model=model, tile=0, tile_pad=10, pre_pad=0, half=half)
31
 
 
 
 
 
32
  def upscaler(img, version, scale):
33
  try:
34
+ # ์ด๋ฏธ์ง€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
35
  img = cv2.imread(img, cv2.IMREAD_UNCHANGED)
36
  if len(img.shape) == 3 and img.shape[2] == 4:
37
  img_mode = 'RGBA'
 
45
  if h < 300:
46
  img = cv2.resize(img, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
47
 
48
+ # ์–ผ๊ตด ๋ณต์› ๋ชจ๋ธ ์ดˆ๊ธฐํ™” (์ฝ”๋“œ์ƒ ์„ ํƒ๋œ ๋ฒ„์ „: GFPGANv1.4 ๋“ฑ)
49
  face_enhancer = GFPGANer(
50
  model_path=f'{version}.pth',
51
  upscale=2,
 
57
  try:
58
  _, _, output = face_enhancer.enhance(img, has_aligned=False, only_center_face=False, paste_back=True)
59
  except RuntimeError as error:
60
+ print('์˜ค๋ฅ˜', error)
61
 
62
  try:
63
+ # ๋ฐฐ์œจ์ด 0์ด๋ฉด ์ถ”๊ฐ€ ๋ฆฌ์‚ฌ์ด์ฆˆํ•˜์ง€ ์•Š์Œ (๊ธฐ๋ณธ ์—…์Šค์ผ€์ผ์€ GFPGAN์—์„œ ์ง„ํ–‰๋จ)
64
+ if scale and scale != 2:
65
  interpolation = cv2.INTER_AREA if scale < 2 else cv2.INTER_LANCZOS4
66
  h, w = img.shape[0:2]
67
  output = cv2.resize(output, (int(w * scale / 2), int(h * scale / 2)), interpolation=interpolation)
68
  except Exception as error:
69
+ print('์ž˜๋ชป๋œ ๋ฐฐ์œจ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.', error)
70
 
71
  output = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
72
  return output
73
  except Exception as error:
74
+ print('์ „์—ญ ์˜ˆ์™ธ', error)
75
  return None, None
76
 
77
  if __name__ == "__main__":
78
  title = "์ด๋ฏธ์ง€ ์—…์Šค์ผ€์ผ๋Ÿฌ ๋ฐ ๋ณต์› [GFPGAN ์•Œ๊ณ ๋ฆฌ์ฆ˜]"
79
 
80
  demo = gr.Interface(
81
+ upscaler,
82
+ [
83
+ gr.Image(type="filepath", label="์ž…๋ ฅ"),
84
+ gr.Radio(['GFPGANv1.2', 'GFPGANv1.3', 'GFPGANv1.4', 'RestoreFormer'], value="GFPGANv1.4", visible=False, label="๋ฒ„์ „"),
85
+ gr.Number(value=0, visible=False, label="๋ฐฐ์œจ")
86
+ ],
87
+ [
88
+ gr.Image(type="numpy", label="์ถœ๋ ฅ")
89
+ ],
90
+ title=title,
91
+ examples=[["example.png"]],
92
+ allow_flagging="never"
93
+ )
94
 
95
  demo.queue()
96
  demo.launch()