VisoMaster / app /ui /widgets /settings_layout_data.py
romanfratric234's picture
Upload 123 files
2cc7a05 verified
Raw
History Blame Contribute Delete
12.2 kB
from app.ui.widgets.actions import control_actions
import cv2
from app.helpers.typing_helper import LayoutDictTypes
SETTINGS_LAYOUT_DATA: LayoutDictTypes = {
'Appearance': {
'ThemeSelection': {
'level': 1,
'label': 'Theme',
'options': ['Dark', 'Dark-Blue', 'Light'],
'default': 'Dark',
'help': 'Select the theme to be used',
'exec_function': control_actions.change_theme,
'exec_function_args': [],
},
},
'General': {
'ProvidersPrioritySelection': {
'level': 1,
'label': 'Providers Priority',
'options': ['CUDA', 'TensorRT', 'TensorRT-Engine', 'CPU'],
'default': 'CUDA',
'help': 'Select the providers priority to be used with the system.',
'exec_function': control_actions.change_execution_provider,
'exec_function_args': [],
},
'nThreadsSlider': {
'level': 1,
'label': 'Number of Threads',
'min_value': '1',
'max_value': '30',
'default': '2',
'step': 1,
'help': 'Set number of execution threads while playing and recording. Depends strongly on GPU VRAM.',
'exec_function': control_actions.change_threads_number,
'exec_function_args': [],
},
},
'Video Settings': {
'VideoPlaybackCustomFpsToggle': {
'level': 1,
'label': 'Set Custom Video Playback FPS',
'default': False,
'help': 'Manually set the FPS to be used when playing the video',
'exec_function': control_actions.set_video_playback_fps,
'exec_function_args': [],
},
'VideoPlaybackCustomFpsSlider': {
'level': 2,
'label': 'Video Playback FPS',
'min_value': '1',
'max_value': '120',
'default': '30',
'parentToggle': 'VideoPlaybackCustomFpsToggle',
'requiredToggleValue': True,
'step': 1,
'help': 'Set the maximum FPS of the video when playing'
},
},
'Auto Swap':{
'AutoSwapToggle': {
'level': 1,
'label': 'Auto Swap',
'default': False,
'help': 'Automatically Swap all faces using selected Source Faces/Embeddings when loading an video/image file'
},
},
'Detectors': {
'DetectorModelSelection': {
'level': 1,
'label': 'Face Detect Model',
'options': ['RetinaFace', 'Yolov8', 'SCRFD', 'Yunet'],
'default': 'RetinaFace',
'help': 'Select the face detection model to use for detecting faces in the input image or video.'
},
'DetectorScoreSlider': {
'level': 1,
'label': 'Detect Score',
'min_value': '1',
'max_value': '100',
'default': '50',
'step': 1,
'help': 'Set the confidence score threshold for face detection. Higher values ensure more confident detections but may miss some faces.'
},
'MaxFacesToDetectSlider': {
'level': 1,
'label': 'Max No of Faces to Detect',
'min_value': '1',
'max_value': '50',
'default': '20',
'step': 1,
'help': 'Set the maximum number of faces to detect in a frame'
},
'AutoRotationToggle': {
'level': 1,
'label': 'Auto Rotation',
'default': False,
'help': 'Automatically rotate the input to detect faces in various orientations.'
},
'ManualRotationEnableToggle': {
'level': 1,
'label': 'Manual Rotation',
'default': False,
'help': 'Rotate the face detector to better detect faces at different angles.'
},
'ManualRotationAngleSlider': {
'level': 2,
'label': 'Rotation Angle',
'min_value': '0',
'max_value': '270',
'default': '0',
'step': 90,
'parentToggle': 'ManualRotationEnableToggle',
'requiredToggleValue': True,
'help': 'Set this to the angle of the input face angle to help with laying down/upside down/etc. Angles are read clockwise.'
},
'LandmarkDetectToggle': {
'level': 1,
'label': 'Enable Landmark Detection',
'default': False,
'help': 'Enable or disable facial landmark detection, which is used to refine face alignment.'
},
'LandmarkDetectModelSelection': {
'level': 2,
'label': 'Landmark Detect Model',
'options': ['5', '68', '3d68', '98', '106', '203', '478'],
'default': '203',
'parentToggle': 'LandmarkDetectToggle',
'requiredToggleValue': True,
'help': 'Select the landmark detection model, where different models detect varying numbers of facial landmarks.'
},
'LandmarkDetectScoreSlider': {
'level': 2,
'label': 'Landmark Detect Score',
'min_value': '1',
'max_value': '100',
'default': '50',
'step': 1,
'parentToggle': 'LandmarkDetectToggle',
'requiredToggleValue': True,
'help': 'Set the confidence score threshold for facial landmark detection.'
},
'DetectFromPointsToggle': {
'level': 2,
'label': 'Detect From Points',
'default': False,
'parentToggle': 'LandmarkDetectToggle',
'requiredToggleValue': True,
'help': 'Enable detection of faces from specified landmark points.'
},
'ShowLandmarksEnableToggle': {
'level': 1,
'label': 'Show Landmarks',
'default': False,
'help': 'Show Landmarks in realtime.'
},
'ShowAllDetectedFacesBBoxToggle': {
'level': 1,
'label': 'Show Bounding Boxes',
'default': False,
'help': 'Draw bounding boxes to all detected faces in the frame'
}
},
'DFM Settings':{
'MaxDFMModelsSlider':{
'level': 1,
'label': 'Maximum DFM Models to use',
'min_value': '1',
'max_value': '5',
'default': '1',
'step': 1,
'help': "Set the maximum number of DFM Models to keep in memory at a time. Set this based on your GPU's VRAM",
}
},
'Frame Enhancer':{
'FrameEnhancerEnableToggle':{
'level': 1,
'label': 'Enable Frame Enhancer',
'default': False,
'help': 'Enable frame enhancement for video inputs to improve visual quality.'
},
'FrameEnhancerTypeSelection':{
'level': 2,
'label': 'Frame Enhancer Type',
'options': ['RealEsrgan-x2-Plus', 'RealEsrgan-x4-Plus', 'RealEsr-General-x4v3', 'BSRGan-x2', 'BSRGan-x4', 'UltraSharp-x4', 'UltraMix-x4', 'DDColor-Artistic', 'DDColor', 'DeOldify-Artistic', 'DeOldify-Stable', 'DeOldify-Video'],
'default': 'RealEsrgan-x2-Plus',
'parentToggle': 'FrameEnhancerEnableToggle',
'requiredToggleValue': True,
'help': 'Select the type of frame enhancement to apply, based on the content and resolution requirements.'
},
'FrameEnhancerBlendSlider': {
'level': 2,
'label': 'Blend',
'min_value': '0',
'max_value': '100',
'default': '100',
'step': 1,
'parentToggle': 'FrameEnhancerEnableToggle',
'requiredToggleValue': True,
'help': 'Blends the enhanced results back into the original frame.'
},
},
'Webcam Settings': {
'WebcamMaxNoSelection': {
'level': 2,
'label': 'Webcam Max No',
'options': ['1', '2', '3', '4', '5', '6'],
'default': '1',
'help': 'Select the maximum number of webcam streams to allow for face swapping.'
},
'WebcamBackendSelection': {
'level': 2,
'label': 'Webcam Backend',
'options': ['Default', 'DirectShow', 'MSMF', 'V4L', 'V4L2', 'GSTREAMER'],
'default': 'Default',
'help': 'Choose the backend for accessing webcam input.'
},
'WebcamMaxResSelection': {
'level': 2,
'label': 'Webcam Resolution',
'options': ['480x360', '640x480', '1280x720', '1920x1080', '2560x1440', '3840x2160'],
'default': '1280x720',
'help': 'Select the maximum resolution for webcam input.'
},
'WebCamMaxFPSSelection': {
'level': 2,
'label': 'Webcam FPS',
'options': ['23', '30', '60'],
'default': '30',
'help': 'Set the maximum frames per second (FPS) for webcam input.'
},
},
'Virtual Camera': {
'SendVirtCamFramesEnableToggle': {
'level': 1,
'label': 'Send Frames to Virtual Camera',
'default': False,
'help': 'Send the swapped video/webcam output to virtual camera for using in external applications',
'exec_function': control_actions.toggle_virtualcam,
'exec_function_args': [],
},
'VirtCamBackendSelection': {
'level': 1,
'label': 'Virtual Camera Backend',
'options': ['obs', 'unitycapture'],
'default': 'obs',
'help': 'Choose the backend based on the Virtual Camera you have set up',
'parentToggle': 'SendVirtCamFramesEnableToggle',
'requiredToggleValue': True,
'exec_function': control_actions.enable_virtualcam,
'exec_funtion_args': [],
},
},
'Face Recognition': {
'RecognitionModelSelection': {
'level': 1,
'label': 'Recognition Model',
'options': ['Inswapper128ArcFace', 'SimSwapArcFace', 'GhostArcFace', 'CSCSArcFace'],
'default': 'Inswapper128ArcFace',
'help': 'Choose the ArcFace model to be used for comparing the similarity of faces.'
},
'SimilarityTypeSelection': {
'level': 1,
'label': 'Swapping Similarity Type',
'options': ['Opal', 'Pearl', 'Optimal'],
'default': 'Opal',
'help': 'Choose the type of similarity calculation for face detection and matching during the face swapping process.'
},
},
'Embedding Merge Method':{
'EmbMergeMethodSelection':{
'level': 1,
'label': 'Embedding Merge Method',
'options': ['Mean','Median'],
'default': 'Mean',
'help': 'Select the method to merge facial embeddings. "Mean" averages the embeddings, while "Median" selects the middle value, providing more robustness to outliers.'
}
},
'Media Selection':{
'TargetMediaFolderRecursiveToggle':{
'level': 1,
'label': 'Target Media Include Subfolders',
'default': False,
'help': 'Include all files from Subfolders when choosing Target Media Folder'
},
'InputFacesFolderRecursiveToggle':{
'level': 1,
'label': 'Input Faces Include Subfolders',
'default': False,
'help': 'Include all files from Subfolders when choosing Input Faces Folder'
}
}
}
CAMERA_BACKENDS = {
'Default': cv2.CAP_ANY,
'DirectShow': cv2.CAP_DSHOW,
'MSMF': cv2.CAP_MSMF,
'V4L': cv2.CAP_V4L,
'V4L2': cv2.CAP_V4L2,
'GSTREAMER': cv2.CAP_GSTREAMER,
}