from facefusion.types import FrameStoreSet, VisionFrame, VisionFrameSet FRAME_STORE_SET : FrameStoreSet = {} def get_frame_store(id : str) -> VisionFrameSet: if id not in FRAME_STORE_SET: FRAME_STORE_SET[id] = {} return FRAME_STORE_SET.get(id) def set_frame(id : str, frame_number : int, vision_frame : VisionFrame) -> None: frame_store = get_frame_store(id) frame_store[frame_number] = vision_frame def select_frame_set(id : str, frame_start : int, frame_end : int) -> VisionFrameSet: frame_store = get_frame_store(id) frame_set = {} for frame_number in range(frame_start, frame_end + 1): if frame_number in frame_store: frame_set[frame_number] = frame_store.get(frame_number) return frame_set def reduce_frames(id : str, frame_min : int, frame_max : int) -> None: FRAME_STORE_SET[id] = select_frame_set(id, frame_min, frame_max) def clear_frames(id : str) -> None: if id in FRAME_STORE_SET: del FRAME_STORE_SET[id]