facetest / facefusion /state_manager.py
LULDev's picture
Upload folder using huggingface_hub
a1da63c verified
from typing import Any, Union
from facefusion.app_context import detect_app_context
from facefusion.processors.typing import ProcessorState, ProcessorStateKey
from facefusion.typing import State, StateKey, StateSet
STATES : Union[StateSet, ProcessorState] =\
{
'cli': {}, #type:ignore[typeddict-item]
'ui': {} #type:ignore[typeddict-item]
}
UnionState = Union[State, ProcessorState]
UnionStateKey = Union[StateKey, ProcessorStateKey]
def get_state() -> UnionState:
app_context = detect_app_context()
return STATES.get(app_context) #type:ignore
def init_item(key : UnionStateKey, value : Any) -> None:
STATES['cli'][key] = value #type:ignore
STATES['ui'][key] = value #type:ignore
def get_item(key : UnionStateKey) -> Any:
return get_state().get(key) #type:ignore
def set_item(key : UnionStateKey, value : Any) -> None:
app_context = detect_app_context()
STATES[app_context][key] = value #type:ignore
def sync_item(key : UnionStateKey) -> None:
STATES['cli'][key] = STATES['ui'][key] #type:ignore
def clear_item(key : UnionStateKey) -> None:
set_item(key, None)