Introduce TypeAlias everywhere (#869)

* Introduce TypeAlias everywhere

* Undo changes
This commit is contained in:
Henry Ruhs
2025-02-12 19:47:58 +01:00
committed by henryruhs
parent 7dbe17596f
commit 944306a19c
3 changed files with 76 additions and 76 deletions

View File

@@ -1,11 +1,11 @@
from typing import Any, Dict, List, Literal, TypedDict from typing import Any, Dict, List, Literal, TypeAlias, TypedDict
from numpy.typing import NDArray from numpy.typing import NDArray
from facefusion.types import AppContext, AudioFrame, Face, FaceSet, VisionFrame from facefusion.types import AppContext, AudioFrame, Face, FaceSet, VisionFrame
AgeModifierModel = Literal['styleganex_age'] AgeModifierModel = Literal['styleganex_age']
DeepSwapperModel = str DeepSwapperModel : TypeAlias = str
ExpressionRestorerModel = Literal['live_portrait'] ExpressionRestorerModel = Literal['live_portrait']
FaceDebuggerItem = Literal['bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender', 'race'] FaceDebuggerItem = Literal['bounding-box', 'face-landmark-5', 'face-landmark-5/68', 'face-landmark-68', 'face-landmark-68/5', 'face-mask', 'face-detector-score', 'face-landmarker-score', 'age', 'gender', 'race']
FaceEditorModel = Literal['live_portrait'] FaceEditorModel = Literal['live_portrait']
@@ -15,7 +15,7 @@ FrameColorizerModel = Literal['ddcolor', 'ddcolor_artistic', 'deoldify', 'deoldi
FrameEnhancerModel = Literal['clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_esrgan_x8', 'real_esrgan_x8_fp16', 'real_hatgan_x4', 'real_web_photo_x4', 'realistic_rescaler_x4', 'remacri_x4', 'siax_x4', 'span_kendata_x4', 'swin2_sr_x4', 'ultra_sharp_x4'] FrameEnhancerModel = Literal['clear_reality_x4', 'lsdir_x4', 'nomos8k_sc_x4', 'real_esrgan_x2', 'real_esrgan_x2_fp16', 'real_esrgan_x4', 'real_esrgan_x4_fp16', 'real_esrgan_x8', 'real_esrgan_x8_fp16', 'real_hatgan_x4', 'real_web_photo_x4', 'realistic_rescaler_x4', 'remacri_x4', 'siax_x4', 'span_kendata_x4', 'swin2_sr_x4', 'ultra_sharp_x4']
LipSyncerModel = Literal['wav2lip_96', 'wav2lip_gan_96'] LipSyncerModel = Literal['wav2lip_96', 'wav2lip_gan_96']
FaceSwapperSet = Dict[FaceSwapperModel, List[str]] FaceSwapperSet : TypeAlias = Dict[FaceSwapperModel, List[str]]
AgeModifierInputs = TypedDict('AgeModifierInputs', AgeModifierInputs = TypedDict('AgeModifierInputs',
{ {
@@ -141,17 +141,17 @@ ProcessorState = TypedDict('ProcessorState',
'frame_enhancer_blend' : int, 'frame_enhancer_blend' : int,
'lip_syncer_model' : LipSyncerModel 'lip_syncer_model' : LipSyncerModel
}) })
ProcessorStateSet = Dict[AppContext, ProcessorState] ProcessorStateSet : TypeAlias = Dict[AppContext, ProcessorState]
AgeModifierDirection = NDArray[Any] AgeModifierDirection : TypeAlias = NDArray[Any]
DeepSwapperMorph = NDArray[Any] DeepSwapperMorph : TypeAlias = NDArray[Any]
FaceEnhancerWeight = NDArray[Any] FaceEnhancerWeight : TypeAlias = NDArray[Any]
LivePortraitPitch = float LivePortraitPitch : TypeAlias = float
LivePortraitYaw = float LivePortraitYaw : TypeAlias = float
LivePortraitRoll = float LivePortraitRoll : TypeAlias = float
LivePortraitExpression = NDArray[Any] LivePortraitExpression : TypeAlias = NDArray[Any]
LivePortraitFeatureVolume = NDArray[Any] LivePortraitFeatureVolume : TypeAlias = NDArray[Any]
LivePortraitMotionPoints = NDArray[Any] LivePortraitMotionPoints : TypeAlias = NDArray[Any]
LivePortraitRotation = NDArray[Any] LivePortraitRotation : TypeAlias = NDArray[Any]
LivePortraitScale = NDArray[Any] LivePortraitScale : TypeAlias = NDArray[Any]
LivePortraitTranslation = NDArray[Any] LivePortraitTranslation : TypeAlias = NDArray[Any]

View File

@@ -1,20 +1,20 @@
from collections import namedtuple from collections import namedtuple
from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, TypedDict from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, TypeAlias, TypedDict
import numpy import numpy
from numpy.typing import NDArray from numpy.typing import NDArray
from onnxruntime import InferenceSession from onnxruntime import InferenceSession
Scale = float Scale : TypeAlias = float
Score = float Score : TypeAlias = float
Angle = int Angle : TypeAlias = int
Detection = NDArray[Any] Detection : TypeAlias = NDArray[Any]
Prediction = NDArray[Any] Prediction : TypeAlias = NDArray[Any]
BoundingBox = NDArray[Any] BoundingBox : TypeAlias = NDArray[Any]
FaceLandmark5 = NDArray[Any] FaceLandmark5 : TypeAlias = NDArray[Any]
FaceLandmark68 = NDArray[Any] FaceLandmark68 : TypeAlias = NDArray[Any]
FaceLandmarkSet = TypedDict('FaceLandmarkSet', FaceLandmarkSet = TypedDict('FaceLandmarkSet',
{ {
'5' : FaceLandmark5, #type:ignore[valid-type] '5' : FaceLandmark5, #type:ignore[valid-type]
@@ -27,9 +27,9 @@ FaceScoreSet = TypedDict('FaceScoreSet',
'detector' : Score, 'detector' : Score,
'landmarker' : Score 'landmarker' : Score
}) })
Embedding = NDArray[numpy.float64] Embedding : TypeAlias = NDArray[numpy.float64]
Gender = Literal['female', 'male'] Gender = Literal['female', 'male']
Age = range Age : TypeAlias = range
Race = Literal['white', 'black', 'latino', 'asian', 'indian', 'arabic'] Race = Literal['white', 'black', 'latino', 'asian', 'indian', 'arabic']
Face = namedtuple('Face', Face = namedtuple('Face',
[ [
@@ -43,34 +43,34 @@ Face = namedtuple('Face',
'age', 'age',
'race' 'race'
]) ])
FaceSet = Dict[str, List[Face]] FaceSet : TypeAlias = Dict[str, List[Face]]
FaceStore = TypedDict('FaceStore', FaceStore = TypedDict('FaceStore',
{ {
'static_faces' : FaceSet, 'static_faces' : FaceSet,
'reference_faces' : FaceSet 'reference_faces' : FaceSet
}) })
VisionFrame = NDArray[Any] VisionFrame : TypeAlias = NDArray[Any]
Mask = NDArray[Any] Mask : TypeAlias = NDArray[Any]
Points = NDArray[Any] Points : TypeAlias = NDArray[Any]
Distance = NDArray[Any] Distance : TypeAlias = NDArray[Any]
Matrix = NDArray[Any] Matrix : TypeAlias = NDArray[Any]
Anchors = NDArray[Any] Anchors : TypeAlias = NDArray[Any]
Translation = NDArray[Any] Translation : TypeAlias = NDArray[Any]
AudioBuffer = bytes AudioBuffer : TypeAlias = bytes
Audio = NDArray[Any] Audio : TypeAlias = NDArray[Any]
AudioChunk = NDArray[Any] AudioChunk : TypeAlias = NDArray[Any]
AudioFrame = NDArray[Any] AudioFrame : TypeAlias = NDArray[Any]
Spectrogram = NDArray[Any] Spectrogram : TypeAlias = NDArray[Any]
Mel = NDArray[Any] Mel : TypeAlias = NDArray[Any]
MelFilterBank = NDArray[Any] MelFilterBank : TypeAlias = NDArray[Any]
Fps = float Fps : TypeAlias = float
Duration = float Duration : TypeAlias = float
Padding = Tuple[int, int, int, int] Padding : TypeAlias = Tuple[int, int, int, int]
Orientation = Literal['landscape', 'portrait'] Orientation = Literal['landscape', 'portrait']
Resolution = Tuple[int, int] Resolution : TypeAlias = Tuple[int, int]
ProcessState = Literal['checking', 'processing', 'stopping', 'pending'] ProcessState = Literal['checking', 'processing', 'stopping', 'pending']
QueuePayload = TypedDict('QueuePayload', QueuePayload = TypedDict('QueuePayload',
@@ -78,44 +78,44 @@ QueuePayload = TypedDict('QueuePayload',
'frame_number' : int, 'frame_number' : int,
'frame_path' : str 'frame_path' : str
}) })
Args = Dict[str, Any] Args : TypeAlias = Dict[str, Any]
UpdateProgress = Callable[[int], None] UpdateProgress : TypeAlias = Callable[[int], None]
ProcessFrames = Callable[[List[str], List[QueuePayload], UpdateProgress], None] ProcessFrames : TypeAlias = Callable[[List[str], List[QueuePayload], UpdateProgress], None]
ProcessStep = Callable[[str, int, Args], bool] ProcessStep : TypeAlias = Callable[[str, int, Args], bool]
Content = Dict[str, Any] Content : TypeAlias = Dict[str, Any]
Commands = List[str] Commands : TypeAlias = List[str]
WarpTemplate = Literal['arcface_112_v1', 'arcface_112_v2', 'arcface_128_v2', 'dfl_whole_face', 'ffhq_512', 'mtcnn_512', 'styleganex_384'] WarpTemplate = Literal['arcface_112_v1', 'arcface_112_v2', 'arcface_128_v2', 'dfl_whole_face', 'ffhq_512', 'mtcnn_512', 'styleganex_384']
WarpTemplateSet = Dict[WarpTemplate, NDArray[Any]] WarpTemplateSet : TypeAlias = Dict[WarpTemplate, NDArray[Any]]
ProcessMode = Literal['output', 'preview', 'stream'] ProcessMode = Literal['output', 'preview', 'stream']
ErrorCode = Literal[0, 1, 2, 3, 4] ErrorCode = Literal[0, 1, 2, 3, 4]
LogLevel = Literal['error', 'warn', 'info', 'debug'] LogLevel = Literal['error', 'warn', 'info', 'debug']
LogLevelSet = Dict[LogLevel, int] LogLevelSet : TypeAlias = Dict[LogLevel, int]
TableHeaders = List[str] TableHeaders = List[str]
TableContents = List[List[Any]] TableContents = List[List[Any]]
FaceDetectorModel = Literal['many', 'retinaface', 'scrfd', 'yolo_face'] FaceDetectorModel = Literal['many', 'retinaface', 'scrfd', 'yolo_face']
FaceLandmarkerModel = Literal['many', '2dfan4', 'peppa_wutz'] FaceLandmarkerModel = Literal['many', '2dfan4', 'peppa_wutz']
FaceDetectorSet = Dict[FaceDetectorModel, List[str]] FaceDetectorSet : TypeAlias = Dict[FaceDetectorModel, List[str]]
FaceSelectorMode = Literal['many', 'one', 'reference'] FaceSelectorMode = Literal['many', 'one', 'reference']
FaceSelectorOrder = Literal['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best'] FaceSelectorOrder = Literal['left-right', 'right-left', 'top-bottom', 'bottom-top', 'small-large', 'large-small', 'best-worst', 'worst-best']
FaceOccluderModel = Literal['xseg_1', 'xseg_2', 'xseg_3'] FaceOccluderModel = Literal['xseg_1', 'xseg_2', 'xseg_3']
FaceParserModel = Literal['bisenet_resnet_18', 'bisenet_resnet_34'] FaceParserModel = Literal['bisenet_resnet_18', 'bisenet_resnet_34']
FaceMaskType = Literal['box', 'occlusion', 'region'] FaceMaskType = Literal['box', 'occlusion', 'region']
FaceMaskRegion = Literal['skin', 'left-eyebrow', 'right-eyebrow', 'left-eye', 'right-eye', 'glasses', 'nose', 'mouth', 'upper-lip', 'lower-lip'] FaceMaskRegion = Literal['skin', 'left-eyebrow', 'right-eyebrow', 'left-eye', 'right-eye', 'glasses', 'nose', 'mouth', 'upper-lip', 'lower-lip']
FaceMaskRegionSet = Dict[FaceMaskRegion, int] FaceMaskRegionSet : TypeAlias = Dict[FaceMaskRegion, int]
AudioFormat = Literal['flac', 'm4a', 'mp3', 'ogg', 'opus', 'wav'] AudioFormat = Literal['flac', 'm4a', 'mp3', 'ogg', 'opus', 'wav']
ImageFormat = Literal['bmp', 'jpeg', 'png', 'tiff', 'webp'] ImageFormat = Literal['bmp', 'jpeg', 'png', 'tiff', 'webp']
VideoFormat = Literal['avi', 'm4v', 'mkv', 'mov', 'mp4', 'webm'] VideoFormat = Literal['avi', 'm4v', 'mkv', 'mov', 'mp4', 'webm']
TempFrameFormat = Literal['bmp', 'jpeg', 'png', 'tiff'] TempFrameFormat = Literal['bmp', 'jpeg', 'png', 'tiff']
AudioTypeSet = Dict[AudioFormat, str] AudioTypeSet : TypeAlias = Dict[AudioFormat, str]
ImageTypeSet = Dict[ImageFormat, str] ImageTypeSet : TypeAlias = Dict[ImageFormat, str]
VideoTypeSet = Dict[VideoFormat, str] VideoTypeSet : TypeAlias = Dict[VideoFormat, str]
AudioEncoder = Literal['aac', 'libmp3lame', 'libopus', 'libvorbis', 'flac'] AudioEncoder = Literal['aac', 'libmp3lame', 'libopus', 'libvorbis', 'flac']
VideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox'] VideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox']
@@ -129,14 +129,14 @@ VideoPreset = Literal['ultrafast', 'superfast', 'veryfast', 'faster', 'fast', 'm
WebcamMode = Literal['inline', 'udp', 'v4l2'] WebcamMode = Literal['inline', 'udp', 'v4l2']
StreamMode = Literal['udp', 'v4l2'] StreamMode = Literal['udp', 'v4l2']
ModelOptions = Dict[str, Any] ModelOptions : TypeAlias = Dict[str, Any]
ModelSet = Dict[str, ModelOptions] ModelSet : TypeAlias = Dict[str, ModelOptions]
ModelInitializer = NDArray[Any] ModelInitializer : TypeAlias = NDArray[Any]
ExecutionProvider = Literal['cpu', 'coreml', 'cuda', 'directml', 'openvino', 'rocm', 'tensorrt'] ExecutionProvider = Literal['cpu', 'coreml', 'cuda', 'directml', 'openvino', 'rocm', 'tensorrt']
ExecutionProviderValue = Literal['CPUExecutionProvider', 'CoreMLExecutionProvider', 'CUDAExecutionProvider', 'DmlExecutionProvider', 'OpenVINOExecutionProvider', 'ROCMExecutionProvider', 'TensorrtExecutionProvider'] ExecutionProviderValue = Literal['CPUExecutionProvider', 'CoreMLExecutionProvider', 'CUDAExecutionProvider', 'DmlExecutionProvider', 'OpenVINOExecutionProvider', 'ROCMExecutionProvider', 'TensorrtExecutionProvider']
ExecutionProviderSet = Dict[ExecutionProvider, ExecutionProviderValue] ExecutionProviderSet : TypeAlias = Dict[ExecutionProvider, ExecutionProviderValue]
InferenceSessionProvider = Any InferenceSessionProvider : TypeAlias = Any
ValueAndUnit = TypedDict('ValueAndUnit', ValueAndUnit = TypedDict('ValueAndUnit',
{ {
'value' : int, 'value' : int,
@@ -183,20 +183,20 @@ DownloadProviderValue = TypedDict('DownloadProviderValue',
'urls' : List[str], 'urls' : List[str],
'path' : str 'path' : str
}) })
DownloadProviderSet = Dict[DownloadProvider, DownloadProviderValue] DownloadProviderSet : TypeAlias = Dict[DownloadProvider, DownloadProviderValue]
DownloadScope = Literal['lite', 'full'] DownloadScope = Literal['lite', 'full']
Download = TypedDict('Download', Download = TypedDict('Download',
{ {
'url' : str, 'url' : str,
'path' : str 'path' : str
}) })
DownloadSet = Dict[str, Download] DownloadSet : TypeAlias = Dict[str, Download]
VideoMemoryStrategy = Literal['strict', 'moderate', 'tolerant'] VideoMemoryStrategy = Literal['strict', 'moderate', 'tolerant']
AppContext = Literal['cli', 'ui'] AppContext = Literal['cli', 'ui']
InferencePool = Dict[str, InferenceSession] InferencePool : TypeAlias = Dict[str, InferenceSession]
InferencePoolSet = Dict[AppContext, Dict[str, InferencePool]] InferencePoolSet : TypeAlias = Dict[AppContext, Dict[str, InferencePool]]
UiWorkflow = Literal['instant_runner', 'job_runner', 'job_manager'] UiWorkflow = Literal['instant_runner', 'job_runner', 'job_manager']
@@ -205,7 +205,7 @@ JobStore = TypedDict('JobStore',
'job_keys' : List[str], 'job_keys' : List[str],
'step_keys' : List[str] 'step_keys' : List[str]
}) })
JobOutputSet = Dict[str, List[str]] JobOutputSet : TypeAlias = Dict[str, List[str]]
JobStatus = Literal['drafted', 'queued', 'completed', 'failed'] JobStatus = Literal['drafted', 'queued', 'completed', 'failed']
JobStepStatus = Literal['drafted', 'queued', 'started', 'completed', 'failed'] JobStepStatus = Literal['drafted', 'queued', 'started', 'completed', 'failed']
JobStep = TypedDict('JobStep', JobStep = TypedDict('JobStep',
@@ -220,9 +220,9 @@ Job = TypedDict('Job',
'date_updated' : Optional[str], 'date_updated' : Optional[str],
'steps' : List[JobStep] 'steps' : List[JobStep]
}) })
JobSet = Dict[str, Job] JobSet : TypeAlias = Dict[str, Job]
ApplyStateItem = Callable[[Any, Any], None] ApplyStateItem : TypeAlias = Callable[[Any, Any], None]
StateKey = Literal\ StateKey = Literal\
[ [
'command', 'command',
@@ -353,4 +353,4 @@ State = TypedDict('State',
'job_status' : JobStatus, 'job_status' : JobStatus,
'step_index' : int 'step_index' : int
}) })
StateSet = Dict[AppContext, State] StateSet : TypeAlias = Dict[AppContext, State]

View File

@@ -1,8 +1,8 @@
from typing import Any, Dict, IO, Literal from typing import Any, Dict, IO, Literal, TypeAlias
File = IO[Any] File : TypeAlias = IO[Any]
Component = Any Component : TypeAlias = Any
ComponentOptions = Dict[str, Any] ComponentOptions : TypeAlias = Dict[str, Any]
ComponentName = Literal\ ComponentName = Literal\
[ [
'age_modifier_direction_slider', 'age_modifier_direction_slider',