MCPcopy Create free account
hub / github.com/Francis-Rings/FlashPortrait / forward

Method forward

wan/models/face_model.py:339–476  ·  view source on GitHub ↗
(self, src_image, reset=False, pre_rect=None)

Source from the content-addressed store, hash-verified

337 self.trackingFaces = []
338
339 def forward(self, src_image, reset=False, pre_rect=None):
340 if self.reset or reset:
341 self.trackingFaces = []
342
343 if len(self.trackingFaces) == 0:
344 if pre_rect is not None:
345 detected_faces = [pre_rect]
346 else:
347 detected_faces, _, _ = self.face_alignment_module.face_detector.detect(
348 src_image
349 )
350 for face_rect in detected_faces:
351 new_tracking_object = {
352 "face_rect": face_rect,
353 "rotate_angle": 0.0,
354 "pre_kpt_222": None,
355 "face_dis": np.sqrt(
356 np.square((face_rect[2] - face_rect[0]))
357 + np.square((face_rect[3] - face_rect[1]))
358 ),
359 "smoother_222": Smoother222(),
360 "prob": 0,
361 }
362 self.trackingFaces.append(new_tracking_object)
363 else:
364 detected_faces, _, _ = self.face_alignment_module.face_detector.detect(
365 src_image
366 )
367 for face_rect in detected_faces:
368 new_tracking_object = {
369 "face_rect": face_rect,
370 "rotate_angle": 0.0,
371 "pre_kpt_222": None,
372 "face_dis": np.sqrt(
373 np.square((face_rect[2] - face_rect[0]))
374 + np.square((face_rect[3] - face_rect[1]))
375 ),
376 "smoother_222": Smoother222(),
377 "prob": 0,
378 }
379 self.trackingFaces.append(new_tracking_object)
380
381 delete_idx_list = []
382 for face_idx, tracking_face in enumerate(self.trackingFaces):
383 if tracking_face["pre_kpt_222"] is not None:
384 result_dict = self.face_alignment_module.forward(
385 src_image, pre_pts=tracking_face["pre_kpt_222"], iterations=3
386 )
387 else:
388 result_dict = self.face_alignment_module.forward(
389 src_image, face_box=tracking_face["face_rect"], iterations=3
390 )
391
392 if result_dict["prob"] < self.face_prob_th:
393 if not face_idx in delete_idx_list:
394 delete_idx_list.append(face_idx)
395 continue
396

Callers

nothing calls this directly

Calls 5

count_iouMethod · 0.95
areaMethod · 0.95
Smoother222Class · 0.85
detectMethod · 0.80
smoothMethod · 0.80

Tested by

no test coverage detected