Merge pull request #913 from soulee-dev/main
fix: typo souce_target_map → source_target_mappull/932/head
						commit
						49e8f78513
					
				| 
						 | 
					@ -39,13 +39,13 @@ def get_many_faces(frame: Frame) -> Any:
 | 
				
			||||||
        return None
 | 
					        return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def has_valid_map() -> bool:
 | 
					def has_valid_map() -> bool:
 | 
				
			||||||
    for map in modules.globals.souce_target_map:
 | 
					    for map in modules.globals.source_target_map:
 | 
				
			||||||
        if "source" in map and "target" in map:
 | 
					        if "source" in map and "target" in map:
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
    return False
 | 
					    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def default_source_face() -> Any:
 | 
					def default_source_face() -> Any:
 | 
				
			||||||
    for map in modules.globals.souce_target_map:
 | 
					    for map in modules.globals.source_target_map:
 | 
				
			||||||
        if "source" in map:
 | 
					        if "source" in map:
 | 
				
			||||||
            return map['source']['face']
 | 
					            return map['source']['face']
 | 
				
			||||||
    return None
 | 
					    return None
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ def default_source_face() -> Any:
 | 
				
			||||||
def simplify_maps() -> Any:
 | 
					def simplify_maps() -> Any:
 | 
				
			||||||
    centroids = []
 | 
					    centroids = []
 | 
				
			||||||
    faces = []
 | 
					    faces = []
 | 
				
			||||||
    for map in modules.globals.souce_target_map:
 | 
					    for map in modules.globals.source_target_map:
 | 
				
			||||||
        if "source" in map and "target" in map:
 | 
					        if "source" in map and "target" in map:
 | 
				
			||||||
            centroids.append(map['target']['face'].normed_embedding)
 | 
					            centroids.append(map['target']['face'].normed_embedding)
 | 
				
			||||||
            faces.append(map['source']['face'])
 | 
					            faces.append(map['source']['face'])
 | 
				
			||||||
| 
						 | 
					@ -64,10 +64,10 @@ def simplify_maps() -> Any:
 | 
				
			||||||
def add_blank_map() -> Any:
 | 
					def add_blank_map() -> Any:
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        max_id = -1
 | 
					        max_id = -1
 | 
				
			||||||
        if len(modules.globals.souce_target_map) > 0:
 | 
					        if len(modules.globals.source_target_map) > 0:
 | 
				
			||||||
            max_id = max(modules.globals.souce_target_map, key=lambda x: x['id'])['id']
 | 
					            max_id = max(modules.globals.source_target_map, key=lambda x: x['id'])['id']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        modules.globals.souce_target_map.append({
 | 
					        modules.globals.source_target_map.append({
 | 
				
			||||||
                'id' : max_id + 1
 | 
					                'id' : max_id + 1
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
    except ValueError:
 | 
					    except ValueError:
 | 
				
			||||||
| 
						 | 
					@ -75,14 +75,14 @@ def add_blank_map() -> Any:
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
def get_unique_faces_from_target_image() -> Any:
 | 
					def get_unique_faces_from_target_image() -> Any:
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        modules.globals.souce_target_map = []
 | 
					        modules.globals.source_target_map = []
 | 
				
			||||||
        target_frame = cv2.imread(modules.globals.target_path)
 | 
					        target_frame = cv2.imread(modules.globals.target_path)
 | 
				
			||||||
        many_faces = get_many_faces(target_frame)
 | 
					        many_faces = get_many_faces(target_frame)
 | 
				
			||||||
        i = 0
 | 
					        i = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for face in many_faces:
 | 
					        for face in many_faces:
 | 
				
			||||||
            x_min, y_min, x_max, y_max = face['bbox']
 | 
					            x_min, y_min, x_max, y_max = face['bbox']
 | 
				
			||||||
            modules.globals.souce_target_map.append({
 | 
					            modules.globals.source_target_map.append({
 | 
				
			||||||
                'id' : i, 
 | 
					                'id' : i, 
 | 
				
			||||||
                'target' : {
 | 
					                'target' : {
 | 
				
			||||||
                            'cv2' : target_frame[int(y_min):int(y_max), int(x_min):int(x_max)],
 | 
					                            'cv2' : target_frame[int(y_min):int(y_max), int(x_min):int(x_max)],
 | 
				
			||||||
| 
						 | 
					@ -96,7 +96,7 @@ def get_unique_faces_from_target_image() -> Any:
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
def get_unique_faces_from_target_video() -> Any:
 | 
					def get_unique_faces_from_target_video() -> Any:
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        modules.globals.souce_target_map = []
 | 
					        modules.globals.source_target_map = []
 | 
				
			||||||
        frame_face_embeddings = []
 | 
					        frame_face_embeddings = []
 | 
				
			||||||
        face_embeddings = []
 | 
					        face_embeddings = []
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -127,7 +127,7 @@ def get_unique_faces_from_target_video() -> Any:
 | 
				
			||||||
                face['target_centroid'] = closest_centroid_index
 | 
					                face['target_centroid'] = closest_centroid_index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for i in range(len(centroids)):
 | 
					        for i in range(len(centroids)):
 | 
				
			||||||
            modules.globals.souce_target_map.append({
 | 
					            modules.globals.source_target_map.append({
 | 
				
			||||||
                'id' : i
 | 
					                'id' : i
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -135,7 +135,7 @@ def get_unique_faces_from_target_video() -> Any:
 | 
				
			||||||
            for frame in tqdm(frame_face_embeddings, desc=f"Mapping frame embeddings to centroids-{i}"):
 | 
					            for frame in tqdm(frame_face_embeddings, desc=f"Mapping frame embeddings to centroids-{i}"):
 | 
				
			||||||
                temp.append({'frame': frame['frame'], 'faces': [face for face in frame['faces'] if face['target_centroid'] == i], 'location': frame['location']})
 | 
					                temp.append({'frame': frame['frame'], 'faces': [face for face in frame['faces'] if face['target_centroid'] == i], 'location': frame['location']})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modules.globals.souce_target_map[i]['target_faces_in_frame'] = temp
 | 
					            modules.globals.source_target_map[i]['target_faces_in_frame'] = temp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # dump_faces(centroids, frame_face_embeddings)
 | 
					        # dump_faces(centroids, frame_face_embeddings)
 | 
				
			||||||
        default_target_face()
 | 
					        default_target_face()
 | 
				
			||||||
| 
						 | 
					@ -144,7 +144,7 @@ def get_unique_faces_from_target_video() -> Any:
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def default_target_face():
 | 
					def default_target_face():
 | 
				
			||||||
    for map in modules.globals.souce_target_map:
 | 
					    for map in modules.globals.source_target_map:
 | 
				
			||||||
        best_face = None
 | 
					        best_face = None
 | 
				
			||||||
        best_frame = None
 | 
					        best_frame = None
 | 
				
			||||||
        for frame in map['target_faces_in_frame']:
 | 
					        for frame in map['target_faces_in_frame']:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ file_types = [
 | 
				
			||||||
    ("Video", ("*.mp4", "*.mkv")),
 | 
					    ("Video", ("*.mp4", "*.mkv")),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
souce_target_map = []
 | 
					source_target_map = []
 | 
				
			||||||
simple_map = {}
 | 
					simple_map = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_path = None
 | 
					source_path = None
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,12 +117,12 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
 | 
				
			||||||
    if is_image(modules.globals.target_path):
 | 
					    if is_image(modules.globals.target_path):
 | 
				
			||||||
        if modules.globals.many_faces:
 | 
					        if modules.globals.many_faces:
 | 
				
			||||||
            source_face = default_source_face()
 | 
					            source_face = default_source_face()
 | 
				
			||||||
            for map in modules.globals.souce_target_map:
 | 
					            for map in modules.globals.source_target_map:
 | 
				
			||||||
                target_face = map["target"]["face"]
 | 
					                target_face = map["target"]["face"]
 | 
				
			||||||
                temp_frame = swap_face(source_face, target_face, temp_frame)
 | 
					                temp_frame = swap_face(source_face, target_face, temp_frame)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        elif not modules.globals.many_faces:
 | 
					        elif not modules.globals.many_faces:
 | 
				
			||||||
            for map in modules.globals.souce_target_map:
 | 
					            for map in modules.globals.source_target_map:
 | 
				
			||||||
                if "source" in map:
 | 
					                if "source" in map:
 | 
				
			||||||
                    source_face = map["source"]["face"]
 | 
					                    source_face = map["source"]["face"]
 | 
				
			||||||
                    target_face = map["target"]["face"]
 | 
					                    target_face = map["target"]["face"]
 | 
				
			||||||
| 
						 | 
					@ -131,7 +131,7 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
 | 
				
			||||||
    elif is_video(modules.globals.target_path):
 | 
					    elif is_video(modules.globals.target_path):
 | 
				
			||||||
        if modules.globals.many_faces:
 | 
					        if modules.globals.many_faces:
 | 
				
			||||||
            source_face = default_source_face()
 | 
					            source_face = default_source_face()
 | 
				
			||||||
            for map in modules.globals.souce_target_map:
 | 
					            for map in modules.globals.source_target_map:
 | 
				
			||||||
                target_frame = [
 | 
					                target_frame = [
 | 
				
			||||||
                    f
 | 
					                    f
 | 
				
			||||||
                    for f in map["target_faces_in_frame"]
 | 
					                    for f in map["target_faces_in_frame"]
 | 
				
			||||||
| 
						 | 
					@ -143,7 +143,7 @@ def process_frame_v2(temp_frame: Frame, temp_frame_path: str = "") -> Frame:
 | 
				
			||||||
                        temp_frame = swap_face(source_face, target_face, temp_frame)
 | 
					                        temp_frame = swap_face(source_face, target_face, temp_frame)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        elif not modules.globals.many_faces:
 | 
					        elif not modules.globals.many_faces:
 | 
				
			||||||
            for map in modules.globals.souce_target_map:
 | 
					            for map in modules.globals.source_target_map:
 | 
				
			||||||
                if "source" in map:
 | 
					                if "source" in map:
 | 
				
			||||||
                    target_frame = [
 | 
					                    target_frame = [
 | 
				
			||||||
                        f
 | 
					                        f
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -397,7 +397,7 @@ def analyze_target(start: Callable[[], None], root: ctk.CTk):
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if modules.globals.map_faces:
 | 
					    if modules.globals.map_faces:
 | 
				
			||||||
        modules.globals.souce_target_map = []
 | 
					        modules.globals.source_target_map = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if is_image(modules.globals.target_path):
 | 
					        if is_image(modules.globals.target_path):
 | 
				
			||||||
            update_status("Getting unique faces")
 | 
					            update_status("Getting unique faces")
 | 
				
			||||||
| 
						 | 
					@ -406,8 +406,8 @@ def analyze_target(start: Callable[[], None], root: ctk.CTk):
 | 
				
			||||||
            update_status("Getting unique faces")
 | 
					            update_status("Getting unique faces")
 | 
				
			||||||
            get_unique_faces_from_target_video()
 | 
					            get_unique_faces_from_target_video()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if len(modules.globals.souce_target_map) > 0:
 | 
					        if len(modules.globals.source_target_map) > 0:
 | 
				
			||||||
            create_source_target_popup(start, root, modules.globals.souce_target_map)
 | 
					            create_source_target_popup(start, root, modules.globals.source_target_map)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            update_status("No faces found in target")
 | 
					            update_status("No faces found in target")
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
| 
						 | 
					@ -787,9 +787,9 @@ def webcam_preview(root: ctk.CTk, camera_index: int):
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        create_webcam_preview(camera_index)
 | 
					        create_webcam_preview(camera_index)
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        modules.globals.souce_target_map = []
 | 
					        modules.globals.source_target_map = []
 | 
				
			||||||
        create_source_target_popup_for_webcam(
 | 
					        create_source_target_popup_for_webcam(
 | 
				
			||||||
            root, modules.globals.souce_target_map, camera_index
 | 
					            root, modules.globals.source_target_map, camera_index
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue