Remove already swapped face from list
This gives a speedup on my machine, but will have the side effect of preferring faces earlier in the list
This commit is contained in:
15
refacer.py
15
refacer.py
@@ -155,15 +155,18 @@ class Refacer:
|
|||||||
max_num=1
|
max_num=1
|
||||||
|
|
||||||
faces = self.__get_faces(frame,max_num=max_num)
|
faces = self.__get_faces(frame,max_num=max_num)
|
||||||
for face in faces:
|
if self.first_face:
|
||||||
if self.first_face:
|
for face in faces:
|
||||||
frame = self.face_swapper.get(frame, face, self.replacement_faces[0][1], paste_back=True)
|
frame = self.face_swapper.get(frame, face, self.replacement_faces[0][1], paste_back=True)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
for rep_face in self.replacement_faces:
|
for rep_face in self.replacement_faces:
|
||||||
sim = self.rec_app.compute_sim(rep_face[0], face.embedding)
|
for i in range(len(faces) - 1, -1, -1):
|
||||||
|
sim = self.rec_app.compute_sim(rep_face[0], faces[i].embedding)
|
||||||
if sim>=rep_face[2]:
|
if sim>=rep_face[2]:
|
||||||
frame = self.face_swapper.get(frame, face, rep_face[1], paste_back=True)
|
frame = self.face_swapper.get(frame, faces[i], rep_face[1], paste_back=True)
|
||||||
|
del faces[i]
|
||||||
|
break
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
def __check_video_has_audio(self,video_path):
|
def __check_video_has_audio(self,video_path):
|
||||||
|
|||||||
Reference in New Issue
Block a user