Commit
·
39435fd
1
Parent(s):
cab9284
sort function
Browse files- handler.py +31 -31
handler.py
CHANGED
@@ -180,6 +180,37 @@ class EndpointHandler():
|
|
180 |
def convert_from_image_to_cv2(img: Image) -> np.ndarray:
|
181 |
return cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
# check if the input is valid
|
184 |
# if face_image_path is None:
|
185 |
# raise gr.Error(
|
@@ -215,37 +246,6 @@ class EndpointHandler():
|
|
215 |
] # only use the maximum face
|
216 |
|
217 |
|
218 |
-
def resize_img(
|
219 |
-
input_image,
|
220 |
-
max_side=1280,
|
221 |
-
min_side=1024,
|
222 |
-
size=None,
|
223 |
-
pad_to_max_side=False,
|
224 |
-
mode=PIL.Image.BILINEAR,
|
225 |
-
base_pixel_number=64,
|
226 |
-
):
|
227 |
-
w, h = input_image.size
|
228 |
-
if size is not None:
|
229 |
-
w_resize_new, h_resize_new = size
|
230 |
-
else:
|
231 |
-
ratio = min_side / min(h, w)
|
232 |
-
w, h = round(ratio * w), round(ratio * h)
|
233 |
-
ratio = max_side / max(h, w)
|
234 |
-
input_image = input_image.resize([round(ratio * w), round(ratio * h)], mode)
|
235 |
-
w_resize_new = (round(ratio * w) // base_pixel_number) * base_pixel_number
|
236 |
-
h_resize_new = (round(ratio * h) // base_pixel_number) * base_pixel_number
|
237 |
-
input_image = input_image.resize([w_resize_new, h_resize_new], mode)
|
238 |
-
|
239 |
-
if pad_to_max_side:
|
240 |
-
res = np.ones([max_side, max_side, 3], dtype=np.uint8) * 255
|
241 |
-
offset_x = (max_side - w_resize_new) // 2
|
242 |
-
offset_y = (max_side - h_resize_new) // 2
|
243 |
-
res[
|
244 |
-
offset_y : offset_y + h_resize_new, offset_x : offset_x + w_resize_new
|
245 |
-
] = np.array(input_image)
|
246 |
-
input_image = Image.fromarray(res)
|
247 |
-
return input_image
|
248 |
-
|
249 |
face_emb = face_info["embedding"]
|
250 |
face_kps = draw_kps(convert_from_cv2_to_image(face_image_cv2), face_info["kps"])
|
251 |
img_controlnet = face_image
|
|
|
180 |
def convert_from_image_to_cv2(img: Image) -> np.ndarray:
|
181 |
return cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
|
182 |
|
183 |
+
def resize_img(
|
184 |
+
input_image,
|
185 |
+
max_side=1280,
|
186 |
+
min_side=1024,
|
187 |
+
size=None,
|
188 |
+
pad_to_max_side=False,
|
189 |
+
mode=PIL.Image.BILINEAR,
|
190 |
+
base_pixel_number=64,
|
191 |
+
):
|
192 |
+
w, h = input_image.size
|
193 |
+
if size is not None:
|
194 |
+
w_resize_new, h_resize_new = size
|
195 |
+
else:
|
196 |
+
ratio = min_side / min(h, w)
|
197 |
+
w, h = round(ratio * w), round(ratio * h)
|
198 |
+
ratio = max_side / max(h, w)
|
199 |
+
input_image = input_image.resize([round(ratio * w), round(ratio * h)], mode)
|
200 |
+
w_resize_new = (round(ratio * w) // base_pixel_number) * base_pixel_number
|
201 |
+
h_resize_new = (round(ratio * h) // base_pixel_number) * base_pixel_number
|
202 |
+
input_image = input_image.resize([w_resize_new, h_resize_new], mode)
|
203 |
+
|
204 |
+
if pad_to_max_side:
|
205 |
+
res = np.ones([max_side, max_side, 3], dtype=np.uint8) * 255
|
206 |
+
offset_x = (max_side - w_resize_new) // 2
|
207 |
+
offset_y = (max_side - h_resize_new) // 2
|
208 |
+
res[
|
209 |
+
offset_y : offset_y + h_resize_new, offset_x : offset_x + w_resize_new
|
210 |
+
] = np.array(input_image)
|
211 |
+
input_image = Image.fromarray(res)
|
212 |
+
return input_image
|
213 |
+
|
214 |
# check if the input is valid
|
215 |
# if face_image_path is None:
|
216 |
# raise gr.Error(
|
|
|
246 |
] # only use the maximum face
|
247 |
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
face_emb = face_info["embedding"]
|
250 |
face_kps = draw_kps(convert_from_cv2_to_image(face_image_cv2), face_info["kps"])
|
251 |
img_controlnet = face_image
|