Spaces:
Running
Running
from typing import Optional, List, Dict | |
import hashlib | |
from facefusion.typing import Frame, Face | |
FACES_CACHE : Dict[str, List[Face]] = {} | |
def get_faces_cache(frame : Frame) -> Optional[List[Face]]: | |
frame_hash = create_frame_hash(frame) | |
if frame_hash in FACES_CACHE: | |
return FACES_CACHE[frame_hash] | |
return None | |
def set_faces_cache(frame : Frame, faces : List[Face]) -> None: | |
frame_hash = create_frame_hash(frame) | |
if frame_hash: | |
FACES_CACHE[frame_hash] = faces | |
def clear_faces_cache() -> None: | |
global FACES_CACHE | |
FACES_CACHE = {} | |
def create_frame_hash(frame : Frame) -> Optional[str]: | |
return hashlib.sha1(frame.tobytes()).hexdigest() if frame.any() else None | |