Spaces:
Running
Running
| from typing import List, Optional | |
| from facefusion.hash_helper import create_hash | |
| from facefusion.types import Face, FaceSet, FaceStore, VisionFrame | |
| FACE_STORE : FaceStore =\ | |
| { | |
| 'static_faces': {}, | |
| 'reference_faces': {} | |
| } | |
| def get_face_store() -> FaceStore: | |
| return FACE_STORE | |
| def get_static_faces(vision_frame : VisionFrame) -> Optional[List[Face]]: | |
| vision_hash = create_hash(vision_frame.tobytes()) | |
| return FACE_STORE.get('static_faces').get(vision_hash) | |
| def set_static_faces(vision_frame : VisionFrame, faces : List[Face]) -> None: | |
| vision_hash = create_hash(vision_frame.tobytes()) | |
| if vision_hash: | |
| FACE_STORE['static_faces'][vision_hash] = faces | |
| def clear_static_faces() -> None: | |
| FACE_STORE['static_faces'].clear() | |
| def get_reference_faces() -> Optional[FaceSet]: | |
| return FACE_STORE.get('reference_faces') | |
| def append_reference_face(name : str, face : Face) -> None: | |
| if name not in FACE_STORE.get('reference_faces'): | |
| FACE_STORE['reference_faces'][name] = [] | |
| FACE_STORE['reference_faces'][name].append(face) | |
| def clear_reference_faces() -> None: | |
| FACE_STORE['reference_faces'].clear() | |