From 2e60fd88d1d499ea819fd3b5bcc061239d4aa16d Mon Sep 17 00:00:00 2001 From: henryruhs Date: Thu, 20 Jul 2023 19:17:17 +0200 Subject: [PATCH] Hotfix many faces in analyser --- roop/face_analyser.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/roop/face_analyser.py b/roop/face_analyser.py index 4c1a350..81cd391 100644 --- a/roop/face_analyser.py +++ b/roop/face_analyser.py @@ -27,12 +27,12 @@ def clear_face_analyser() -> Any: def get_one_face(frame: Frame, position: int = 0) -> Optional[Face]: - faces = get_many_faces(frame) - if faces: + many_faces = get_many_faces(frame) + if many_faces: try: - return faces[position] + return many_faces[position] except IndexError: - return faces[-1] + return many_faces[-1] return None @@ -44,10 +44,11 @@ def get_many_faces(frame: Frame) -> Optional[List[Face]]: def find_similar_face(frame: Frame, reference_face: Face) -> Optional[Face]: - faces = get_many_faces(frame) - for face in faces: - if hasattr(face, 'normed_embedding') and hasattr(reference_face, 'normed_embedding'): - distance = numpy.sum(numpy.square(face.normed_embedding - reference_face.normed_embedding)) - if distance < roop.globals.similar_face_distance: - return face + many_faces = get_many_faces(frame) + if many_faces: + for face in many_faces: + if hasattr(face, 'normed_embedding') and hasattr(reference_face, 'normed_embedding'): + distance = numpy.sum(numpy.square(face.normed_embedding - reference_face.normed_embedding)) + if distance < roop.globals.similar_face_distance: + return face return None