ohayonguy
commited on
Commit
•
8ea5b1f
1
Parent(s):
c6b10d8
trying to fix daemonic processes error
Browse files
app.py
CHANGED
@@ -94,63 +94,62 @@ def enhance_face(img, face_helper, has_aligned, only_center_face=False, paste_ba
|
|
94 |
def inference(img, aligned, scale, num_steps):
|
95 |
if scale > 4:
|
96 |
scale = 4 # avoid too large scale value
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
print('Image size too large.')
|
110 |
-
return None, None
|
111 |
-
|
112 |
-
if h < 300:
|
113 |
-
img = cv2.resize(img, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
|
114 |
-
|
115 |
-
face_helper = FaceRestoreHelper(
|
116 |
-
scale,
|
117 |
-
face_size=512,
|
118 |
-
crop_ratio=(1, 1),
|
119 |
-
det_model='retinaface_resnet50',
|
120 |
-
save_ext='png',
|
121 |
-
use_parse=True,
|
122 |
-
device=device,
|
123 |
-
model_rootpath=None)
|
124 |
-
|
125 |
-
has_aligned = True if aligned == 'Yes' else False
|
126 |
-
_, restored_aligned, restored_img = enhance_face(img, face_helper, has_aligned, only_center_face=False,
|
127 |
-
paste_back=True)
|
128 |
-
if has_aligned:
|
129 |
-
output = restored_aligned[0]
|
130 |
-
else:
|
131 |
-
output = restored_img
|
132 |
-
|
133 |
-
|
134 |
-
# try:
|
135 |
-
# if scale != 2:
|
136 |
-
# interpolation = cv2.INTER_AREA if scale < 2 else cv2.INTER_LANCZOS4
|
137 |
-
# h, w = img.shape[0:2]
|
138 |
-
# output = cv2.resize(output, (int(w * scale / 2), int(h * scale / 2)), interpolation=interpolation)
|
139 |
-
# except Exception as error:
|
140 |
-
# print('Wrong scale input.', error)
|
141 |
-
if img_mode == 'RGBA': # RGBA images should be saved in png format
|
142 |
-
extension = 'png'
|
143 |
-
else:
|
144 |
-
extension = 'jpg'
|
145 |
-
save_path = f'output/out.{extension}'
|
146 |
-
cv2.imwrite(save_path, output)
|
147 |
-
|
148 |
-
output = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
|
149 |
-
return output, save_path
|
150 |
-
except Exception as error:
|
151 |
-
print('global exception', error)
|
152 |
return None, None
|
153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
css = r"""
|
156 |
"""
|
|
|
94 |
def inference(img, aligned, scale, num_steps):
|
95 |
if scale > 4:
|
96 |
scale = 4 # avoid too large scale value
|
97 |
+
img = cv2.imread(img, cv2.IMREAD_UNCHANGED)
|
98 |
+
if len(img.shape) == 3 and img.shape[2] == 4:
|
99 |
+
img_mode = 'RGBA'
|
100 |
+
elif len(img.shape) == 2: # for gray inputs
|
101 |
+
img_mode = None
|
102 |
+
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
|
103 |
+
else:
|
104 |
+
img_mode = None
|
105 |
+
|
106 |
+
h, w = img.shape[0:2]
|
107 |
+
if h > 3500 or w > 3500:
|
108 |
+
print('Image size too large.')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
return None, None
|
110 |
|
111 |
+
if h < 300:
|
112 |
+
img = cv2.resize(img, (w * 2, h * 2), interpolation=cv2.INTER_LANCZOS4)
|
113 |
+
|
114 |
+
face_helper = FaceRestoreHelper(
|
115 |
+
scale,
|
116 |
+
face_size=512,
|
117 |
+
crop_ratio=(1, 1),
|
118 |
+
det_model='retinaface_resnet50',
|
119 |
+
save_ext='png',
|
120 |
+
use_parse=True,
|
121 |
+
device=device,
|
122 |
+
model_rootpath=None)
|
123 |
+
|
124 |
+
has_aligned = True if aligned == 'Yes' else False
|
125 |
+
_, restored_aligned, restored_img = enhance_face(img, face_helper, has_aligned, only_center_face=False,
|
126 |
+
paste_back=True)
|
127 |
+
if has_aligned:
|
128 |
+
output = restored_aligned[0]
|
129 |
+
else:
|
130 |
+
output = restored_img
|
131 |
+
|
132 |
+
|
133 |
+
# try:
|
134 |
+
# if scale != 2:
|
135 |
+
# interpolation = cv2.INTER_AREA if scale < 2 else cv2.INTER_LANCZOS4
|
136 |
+
# h, w = img.shape[0:2]
|
137 |
+
# output = cv2.resize(output, (int(w * scale / 2), int(h * scale / 2)), interpolation=interpolation)
|
138 |
+
# except Exception as error:
|
139 |
+
# print('Wrong scale input.', error)
|
140 |
+
if img_mode == 'RGBA': # RGBA images should be saved in png format
|
141 |
+
extension = 'png'
|
142 |
+
else:
|
143 |
+
extension = 'jpg'
|
144 |
+
save_path = f'output/out.{extension}'
|
145 |
+
cv2.imwrite(save_path, output)
|
146 |
+
|
147 |
+
output = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
|
148 |
+
return output, save_path
|
149 |
+
# except Exception as error:
|
150 |
+
# print('global exception', error)
|
151 |
+
# return None, None
|
152 |
+
|
153 |
|
154 |
css = r"""
|
155 |
"""
|