update processors download method

This commit is contained in:
harisreedhar 2024-11-08 13:47:15 +05:30
parent f9e5e7e2ce
commit c7a85e327f
7 changed files with 965 additions and 958 deletions

View File

@ -10,7 +10,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_int_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_analyser import get_many_faces, get_one_face
from facefusion.face_helper import merge_matrix, paste_back, scale_face_landmark_5, warp_face_by_face_landmark_5
from facefusion.face_masker import create_occlusion_mask, create_static_box_mask
@ -24,39 +24,40 @@ from facefusion.thread_helper import thread_semaphore
from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import match_frame_color, read_image, read_static_image, write_image
MODEL_SET : ModelSet =\
{
'styleganex_age':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'styleganex_age':
{
'age_modifier':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/styleganex_age.hash',
'path': resolve_relative_path('../.assets/models/styleganex_age.hash')
}
},
'sources':
{
'age_modifier':
'age_modifier':
{
'url': resolve_download_url('models-3.0.0', 'styleganex_age.hash'),
'path': resolve_relative_path('../.assets/models/styleganex_age.hash')
}
},
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/styleganex_age.onnx',
'path': resolve_relative_path('../.assets/models/styleganex_age.onnx')
'age_modifier':
{
'url': resolve_download_url('models-3.0.0', 'styleganex_age.onnx'),
'path': resolve_relative_path('../.assets/models/styleganex_age.onnx')
}
},
'templates':
{
'target': 'ffhq_512',
'target_with_background': 'styleganex_384'
},
'sizes':
{
'target': (256, 256),
'target_with_background': (384, 384)
}
},
'templates':
{
'target': 'ffhq_512',
'target_with_background': 'styleganex_384'
},
'sizes':
{
'target': (256, 256),
'target_with_background': (384, 384)
}
}
}
def get_inference_pool() -> InferencePool:
@ -72,7 +73,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
age_modifier_model = state_manager.get_item('age_modifier_model')
return MODEL_SET.get(age_modifier_model)
return create_model_set().get(age_modifier_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -9,7 +9,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_int_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_analyser import get_many_faces, get_one_face
from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5
from facefusion.face_masker import create_occlusion_mask, create_static_box_mask
@ -25,50 +25,51 @@ from facefusion.thread_helper import conditional_thread_semaphore, thread_semaph
from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import get_video_frame, read_image, read_static_image, write_image
MODEL_SET : ModelSet =\
{
'live_portrait':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'live_portrait':
{
'feature_extractor':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash')
'feature_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_feature_extractor.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash')
},
'motion_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_motion_extractor.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash')
},
'generator':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_generator.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash')
}
},
'motion_extractor':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash')
'feature_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_feature_extractor.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx')
},
'motion_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_motion_extractor.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx')
},
'generator':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_generator.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx')
}
},
'generator':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash')
}
},
'sources':
{
'feature_extractor':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx')
},
'motion_extractor':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx')
},
'generator':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx')
}
},
'template': 'arcface_128_v2',
'size': (512, 512)
'template': 'arcface_128_v2',
'size': (512, 512)
}
}
}
def get_inference_pool() -> InferencePool:
@ -83,7 +84,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
expression_restorer_model = state_manager.get_item('expression_restorer_model')
return MODEL_SET.get(expression_restorer_model)
return create_model_set().get(expression_restorer_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -9,7 +9,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_float_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_analyser import get_many_faces, get_one_face
from facefusion.face_helper import paste_back, scale_face_landmark_5, warp_face_by_face_landmark_5
from facefusion.face_masker import create_static_box_mask
@ -24,80 +24,81 @@ from facefusion.thread_helper import conditional_thread_semaphore, thread_semaph
from facefusion.typing import ApplyStateItem, Args, Face, FaceLandmark68, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import read_image, read_static_image, write_image
MODEL_SET : ModelSet =\
{
'live_portrait':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'live_portrait':
{
'feature_extractor':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash')
'feature_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_feature_extractor.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.hash')
},
'motion_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_motion_extractor.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash')
},
'eye_retargeter':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_eye_retargeter.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.hash')
},
'lip_retargeter':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_lip_retargeter.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.hash')
},
'stitcher':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_stitcher.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.hash')
},
'generator':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_generator.hash'),
'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash')
}
},
'motion_extractor':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.hash')
'feature_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_feature_extractor.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx')
},
'motion_extractor':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_motion_extractor.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx')
},
'eye_retargeter':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_eye_retargeter.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.onnx')
},
'lip_retargeter':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_lip_retargeter.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.onnx')
},
'stitcher':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_stitcher.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.onnx')
},
'generator':
{
'url': resolve_download_url('models-3.0.0', 'live_portrait_generator.onnx'),
'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx')
}
},
'eye_retargeter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_eye_retargeter.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.hash')
},
'lip_retargeter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_lip_retargeter.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.hash')
},
'stitcher':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_stitcher.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.hash')
},
'generator':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.hash',
'path': resolve_relative_path('../.assets/models/live_portrait_generator.hash')
}
},
'sources':
{
'feature_extractor':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_feature_extractor.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_feature_extractor.onnx')
},
'motion_extractor':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_motion_extractor.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_motion_extractor.onnx')
},
'eye_retargeter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_eye_retargeter.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_eye_retargeter.onnx')
},
'lip_retargeter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_lip_retargeter.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_lip_retargeter.onnx')
},
'stitcher':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_stitcher.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_stitcher.onnx')
},
'generator':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/live_portrait_generator.onnx',
'path': resolve_relative_path('../.assets/models/live_portrait_generator.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
'template': 'ffhq_512',
'size': (512, 512)
}
}
}
def get_inference_pool() -> InferencePool:
@ -113,7 +114,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
face_editor_model = state_manager.get_item('face_editor_model')
return MODEL_SET.get(face_editor_model)
return create_model_set().get(face_editor_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -9,7 +9,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_int_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.face_analyser import get_many_faces, get_one_face
from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5
from facefusion.face_masker import create_occlusion_mask, create_static_box_mask
@ -23,198 +23,199 @@ from facefusion.thread_helper import thread_semaphore
from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import read_image, read_static_image, write_image
MODEL_SET : ModelSet =\
{
'codeformer':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'codeformer':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/codeformer.hash',
'path': resolve_relative_path('../.assets/models/codeformer.hash')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'codeformer.hash'),
'path': resolve_relative_path('../.assets/models/codeformer.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'codeformer.onnx'),
'path': resolve_relative_path('../.assets/models/codeformer.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'sources':
'gfpgan_1.2':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/codeformer.onnx',
'path': resolve_relative_path('../.assets/models/codeformer.onnx')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.2.hash'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.2.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.2.onnx'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.2.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'template': 'ffhq_512',
'size': (512, 512)
},
'gfpgan_1.2':
{
'hashes':
'gfpgan_1.3':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.2.hash',
'path': resolve_relative_path('../.assets/models/gfpgan_1.2.hash')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.3.hash'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.3.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.3.onnx'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.3.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'sources':
'gfpgan_1.4':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.2.onnx',
'path': resolve_relative_path('../.assets/models/gfpgan_1.2.onnx')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.4.hash'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.4.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gfpgan_1.4.onnx'),
'path': resolve_relative_path('../.assets/models/gfpgan_1.4.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'template': 'ffhq_512',
'size': (512, 512)
},
'gfpgan_1.3':
{
'hashes':
'gpen_bfr_256':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.3.hash',
'path': resolve_relative_path('../.assets/models/gfpgan_1.3.hash')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_256.hash'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_256.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_256.onnx'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_256.onnx')
}
},
'template': 'arcface_128_v2',
'size': (256, 256)
},
'sources':
'gpen_bfr_512':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.3.onnx',
'path': resolve_relative_path('../.assets/models/gfpgan_1.3.onnx')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_512.hash'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_512.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_512.onnx'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_512.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'template': 'ffhq_512',
'size': (512, 512)
},
'gfpgan_1.4':
{
'hashes':
'gpen_bfr_1024':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.4.hash',
'path': resolve_relative_path('../.assets/models/gfpgan_1.4.hash')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_1024.hash'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_1024.onnx'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.onnx')
}
},
'template': 'ffhq_512',
'size': (1024, 1024)
},
'sources':
'gpen_bfr_2048':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gfpgan_1.4.onnx',
'path': resolve_relative_path('../.assets/models/gfpgan_1.4.onnx')
}
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_2048.hash'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'gpen_bfr_2048.onnx'),
'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.onnx')
}
},
'template': 'ffhq_512',
'size': (2048, 2048)
},
'template': 'ffhq_512',
'size': (512, 512)
},
'gpen_bfr_256':
{
'hashes':
'restoreformer_plus_plus':
{
'face_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_256.hash',
'path': resolve_relative_path('../.assets/models/gpen_bfr_256.hash')
}
},
'sources':
{
'face_enhancer':
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'restoreformer_plus_plus.hash'),
'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.hash')
}
},
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_256.onnx',
'path': resolve_relative_path('../.assets/models/gpen_bfr_256.onnx')
}
},
'template': 'arcface_128_v2',
'size': (256, 256)
},
'gpen_bfr_512':
{
'hashes':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_512.hash',
'path': resolve_relative_path('../.assets/models/gpen_bfr_512.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_512.onnx',
'path': resolve_relative_path('../.assets/models/gpen_bfr_512.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
},
'gpen_bfr_1024':
{
'hashes':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_1024.hash',
'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_1024.onnx',
'path': resolve_relative_path('../.assets/models/gpen_bfr_1024.onnx')
}
},
'template': 'ffhq_512',
'size': (1024, 1024)
},
'gpen_bfr_2048':
{
'hashes':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_2048.hash',
'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/gpen_bfr_2048.onnx',
'path': resolve_relative_path('../.assets/models/gpen_bfr_2048.onnx')
}
},
'template': 'ffhq_512',
'size': (2048, 2048)
},
'restoreformer_plus_plus':
{
'hashes':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/restoreformer_plus_plus.hash',
'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.hash')
}
},
'sources':
{
'face_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/restoreformer_plus_plus.onnx',
'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
'face_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'restoreformer_plus_plus.onnx'),
'path': resolve_relative_path('../.assets/models/restoreformer_plus_plus.onnx')
}
},
'template': 'ffhq_512',
'size': (512, 512)
}
}
}
def get_inference_pool() -> InferencePool:
@ -230,7 +231,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
face_enhancer_model = state_manager.get_item('face_enhancer_model')
return MODEL_SET.get(face_enhancer_model)
return create_model_set().get(face_enhancer_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -8,7 +8,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, face_classifier, face_detector, face_landmarker, face_masker, face_recognizer, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import get_first
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.execution import has_execution_provider
from facefusion.face_analyser import get_average_face, get_many_faces, get_one_face
from facefusion.face_helper import paste_back, warp_face_by_face_landmark_5
@ -25,309 +25,310 @@ from facefusion.thread_helper import conditional_thread_semaphore
from facefusion.typing import ApplyStateItem, Args, Embedding, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import read_image, read_static_image, read_static_images, unpack_resolution, write_image
MODEL_SET : ModelSet =\
{
'blendswap_256':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'blendswap_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/blendswap_256.hash',
'path': resolve_relative_path('../.assets/models/blendswap_256.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/blendswap_256.onnx',
'path': resolve_relative_path('../.assets/models/blendswap_256.onnx')
}
},
'type': 'blendswap',
'template': 'ffhq_512',
'size': (256, 256),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'ghost_1_256':
{
'hashes':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_1_256.hash',
'path': resolve_relative_path('../.assets/models/ghost_1_256.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'blendswap_256.hash'),
'path': resolve_relative_path('../.assets/models/blendswap_256.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_1_256.onnx',
'path': resolve_relative_path('../.assets/models/ghost_1_256.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'blendswap_256.onnx'),
'path': resolve_relative_path('../.assets/models/blendswap_256.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
'type': 'blendswap',
'template': 'ffhq_512',
'size': (256, 256),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'ghost_2_256':
{
'hashes':
'ghost_1_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_2_256.hash',
'path': resolve_relative_path('../.assets/models/ghost_2_256.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_1_256.hash'),
'path': resolve_relative_path('../.assets/models/ghost_1_256.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_2_256.onnx',
'path': resolve_relative_path('../.assets/models/ghost_2_256.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_1_256.onnx'),
'path': resolve_relative_path('../.assets/models/ghost_1_256.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'ghost_3_256':
{
'hashes':
'ghost_2_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_3_256.hash',
'path': resolve_relative_path('../.assets/models/ghost_3_256.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_2_256.hash'),
'path': resolve_relative_path('../.assets/models/ghost_2_256.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ghost_3_256.onnx',
'path': resolve_relative_path('../.assets/models/ghost_3_256.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_2_256.onnx'),
'path': resolve_relative_path('../.assets/models/ghost_2_256.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_ghost.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'hififace_unofficial_256':
{
'hashes':
'ghost_3_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/hififace_unofficial_256.hash',
'path': resolve_relative_path('../.assets/models/hififace_unofficial_256.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_3_256.hash'),
'path': resolve_relative_path('../.assets/models/ghost_3_256.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/arcface_converter_hififace.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_hififace.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/hififace_unofficial_256.onnx',
'path': resolve_relative_path('../.assets/models/hififace_unofficial_256.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'ghost_3_256.onnx'),
'path': resolve_relative_path('../.assets/models/ghost_3_256.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_ghost.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_ghost.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/arcface_converter_hififace.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_hififace.onnx')
}
'type': 'ghost',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'type': 'hififace',
'template': 'mtcnn_512',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'inswapper_128':
{
'hashes':
'hififace_unofficial_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128.hash',
'path': resolve_relative_path('../.assets/models/inswapper_128.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128.onnx',
'path': resolve_relative_path('../.assets/models/inswapper_128.onnx')
}
},
'type': 'inswapper',
'template': 'arcface_128_v2',
'size': (128, 128),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'inswapper_128_fp16':
{
'hashes':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128_fp16.hash',
'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/inswapper_128_fp16.onnx',
'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.onnx')
}
},
'type': 'inswapper',
'template': 'arcface_128_v2',
'size': (128, 128),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'simswap_256':
{
'hashes':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_256.hash',
'path': resolve_relative_path('../.assets/models/simswap_256.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'hififace_unofficial_256.hash'),
'path': resolve_relative_path('../.assets/models/hififace_unofficial_256.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_hififace.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_hififace.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_256.onnx',
'path': resolve_relative_path('../.assets/models/simswap_256.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'hififace_unofficial_256.onnx'),
'path': resolve_relative_path('../.assets/models/hififace_unofficial_256.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_hififace.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_hififace.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx')
}
'type': 'hififace',
'template': 'mtcnn_512',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
},
'type': 'simswap',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.485, 0.456, 0.406 ],
'standard_deviation': [ 0.229, 0.224, 0.225 ]
},
'simswap_unofficial_512':
{
'hashes':
'inswapper_128':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_unofficial_512.hash',
'path': resolve_relative_path('../.assets/models/simswap_unofficial_512.hash')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'inswapper_128.hash'),
'path': resolve_relative_path('../.assets/models/inswapper_128.hash')
}
},
'embedding_converter':
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.hash',
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash')
}
},
'sources':
{
'face_swapper':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/simswap_unofficial_512.onnx',
'path': resolve_relative_path('../.assets/models/simswap_unofficial_512.onnx')
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'inswapper_128.onnx'),
'path': resolve_relative_path('../.assets/models/inswapper_128.onnx')
}
},
'embedding_converter':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/arcface_converter_simswap.onnx',
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx')
}
'type': 'inswapper',
'template': 'arcface_128_v2',
'size': (128, 128),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'type': 'simswap',
'template': 'arcface_112_v1',
'size': (512, 512),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'uniface_256':
{
'hashes':
'inswapper_128_fp16':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/uniface_256.hash',
'path': resolve_relative_path('../.assets/models/uniface_256.hash')
}
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'inswapper_128_fp16.hash'),
'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.hash')
}
},
'sources':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'inswapper_128_fp16.onnx'),
'path': resolve_relative_path('../.assets/models/inswapper_128_fp16.onnx')
}
},
'type': 'inswapper',
'template': 'arcface_128_v2',
'size': (128, 128),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'sources':
'simswap_256':
{
'face_swapper':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/uniface_256.onnx',
'path': resolve_relative_path('../.assets/models/uniface_256.onnx')
}
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'simswap_256.hash'),
'path': resolve_relative_path('../.assets/models/simswap_256.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_simswap.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash')
}
},
'sources':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'simswap_256.onnx'),
'path': resolve_relative_path('../.assets/models/simswap_256.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_simswap.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx')
}
},
'type': 'simswap',
'template': 'arcface_112_v1',
'size': (256, 256),
'mean': [ 0.485, 0.456, 0.406 ],
'standard_deviation': [ 0.229, 0.224, 0.225 ]
},
'type': 'uniface',
'template': 'ffhq_512',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
'simswap_unofficial_512':
{
'hashes':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'simswap_unofficial_512.hash'),
'path': resolve_relative_path('../.assets/models/simswap_unofficial_512.hash')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_simswap.hash'),
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.hash')
}
},
'sources':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'simswap_unofficial_512.onnx'),
'path': resolve_relative_path('../.assets/models/simswap_unofficial_512.onnx')
},
'embedding_converter':
{
'url': resolve_download_url('models-3.0.0', 'arcface_converter_simswap.onnx'),
'path': resolve_relative_path('../.assets/models/arcface_converter_simswap.onnx')
}
},
'type': 'simswap',
'template': 'arcface_112_v1',
'size': (512, 512),
'mean': [ 0.0, 0.0, 0.0 ],
'standard_deviation': [ 1.0, 1.0, 1.0 ]
},
'uniface_256':
{
'hashes':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'uniface_256.hash'),
'path': resolve_relative_path('../.assets/models/uniface_256.hash')
}
},
'sources':
{
'face_swapper':
{
'url': resolve_download_url('models-3.0.0', 'uniface_256.onnx'),
'path': resolve_relative_path('../.assets/models/uniface_256.onnx')
}
},
'type': 'uniface',
'template': 'ffhq_512',
'size': (256, 256),
'mean': [ 0.5, 0.5, 0.5 ],
'standard_deviation': [ 0.5, 0.5, 0.5 ]
}
}
}
def get_inference_pool() -> InferencePool:
@ -344,7 +345,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
face_swapper_model = state_manager.get_item('face_swapper_model')
face_swapper_model = 'inswapper_128' if has_execution_provider('coreml') and face_swapper_model == 'inswapper_128_fp16' else face_swapper_model
return MODEL_SET.get(face_swapper_model)
return create_model_set().get(face_swapper_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -9,7 +9,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_int_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension
from facefusion.processors import choices as processors_choices
from facefusion.processors.typing import FrameColorizerInputs
@ -18,109 +18,110 @@ from facefusion.thread_helper import thread_semaphore
from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import read_image, read_static_image, unpack_resolution, write_image
MODEL_SET : ModelSet =\
{
'ddcolor':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'ddcolor':
{
'frame_colorizer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor.hash',
'path': resolve_relative_path('../.assets/models/ddcolor.hash')
}
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'ddcolor.hash'),
'path': resolve_relative_path('../.assets/models/ddcolor.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'ddcolor.onnx'),
'path': resolve_relative_path('../.assets/models/ddcolor.onnx')
}
},
'type': 'ddcolor'
},
'sources':
'ddcolor_artistic':
{
'frame_colorizer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor.onnx',
'path': resolve_relative_path('../.assets/models/ddcolor.onnx')
}
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'ddcolor_artistic.hash'),
'path': resolve_relative_path('../.assets/models/ddcolor_artistic.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'ddcolor_artistic.onnx'),
'path': resolve_relative_path('../.assets/models/ddcolor_artistic.onnx')
}
},
'type': 'ddcolor'
},
'type': 'ddcolor'
},
'ddcolor_artistic':
{
'hashes':
'deoldify':
{
'frame_colorizer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor_artistic.hash',
'path': resolve_relative_path('../.assets/models/ddcolor_artistic.hash')
}
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify.hash'),
'path': resolve_relative_path('../.assets/models/deoldify.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify.onnx'),
'path': resolve_relative_path('../.assets/models/deoldify.onnx')
}
},
'type': 'deoldify'
},
'sources':
'deoldify_artistic':
{
'frame_colorizer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ddcolor_artistic.onnx',
'path': resolve_relative_path('../.assets/models/ddcolor_artistic.onnx')
}
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify_artistic.hash'),
'path': resolve_relative_path('../.assets/models/deoldify_artistic.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify_artistic.onnx'),
'path': resolve_relative_path('../.assets/models/deoldify_artistic.onnx')
}
},
'type': 'deoldify'
},
'type': 'ddcolor'
},
'deoldify':
{
'hashes':
'deoldify_stable':
{
'frame_colorizer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify.hash',
'path': resolve_relative_path('../.assets/models/deoldify.hash')
}
},
'sources':
{
'frame_colorizer':
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify_stable.hash'),
'path': resolve_relative_path('../.assets/models/deoldify_stable.hash')
}
},
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify.onnx',
'path': resolve_relative_path('../.assets/models/deoldify.onnx')
}
},
'type': 'deoldify'
},
'deoldify_artistic':
{
'hashes':
{
'frame_colorizer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_artistic.hash',
'path': resolve_relative_path('../.assets/models/deoldify_artistic.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_artistic.onnx',
'path': resolve_relative_path('../.assets/models/deoldify_artistic.onnx')
}
},
'type': 'deoldify'
},
'deoldify_stable':
{
'hashes':
{
'frame_colorizer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_stable.hash',
'path': resolve_relative_path('../.assets/models/deoldify_stable.hash')
}
},
'sources':
{
'frame_colorizer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/deoldify_stable.onnx',
'path': resolve_relative_path('../.assets/models/deoldify_stable.onnx')
}
},
'type': 'deoldify'
'frame_colorizer':
{
'url': resolve_download_url('models-3.0.0', 'deoldify_stable.onnx'),
'path': resolve_relative_path('../.assets/models/deoldify_stable.onnx')
}
},
'type': 'deoldify'
}
}
}
def get_inference_pool() -> InferencePool:
@ -136,7 +137,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
frame_colorizer_model = state_manager.get_item('frame_colorizer_model')
return MODEL_SET.get(frame_colorizer_model)
return create_model_set().get(frame_colorizer_model)
def register_args(program : ArgumentParser) -> None:

View File

@ -9,7 +9,7 @@ import facefusion.jobs.job_store
import facefusion.processors.core as processors
from facefusion import config, content_analyser, inference_manager, logger, process_manager, state_manager, wording
from facefusion.common_helper import create_int_metavar
from facefusion.download import conditional_download_hashes, conditional_download_sources
from facefusion.download import conditional_download_hashes, conditional_download_sources, resolve_download_url
from facefusion.filesystem import in_directory, is_image, is_video, resolve_relative_path, same_file_extension
from facefusion.processors import choices as processors_choices
from facefusion.processors.typing import FrameEnhancerInputs
@ -18,366 +18,367 @@ from facefusion.thread_helper import conditional_thread_semaphore
from facefusion.typing import ApplyStateItem, Args, Face, InferencePool, ModelOptions, ModelSet, ProcessMode, QueuePayload, UpdateProgress, VisionFrame
from facefusion.vision import create_tile_frames, merge_tile_frames, read_image, read_static_image, write_image
MODEL_SET : ModelSet =\
{
'clear_reality_x4':
def create_model_set() -> ModelSet:
return\
{
'hashes':
'clear_reality_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/clear_reality_x4.hash',
'path': resolve_relative_path('../.assets/models/clear_reality_x4.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'clear_reality_x4.hash'),
'path': resolve_relative_path('../.assets/models/clear_reality_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'clear_reality_x4.onnx'),
'path': resolve_relative_path('../.assets/models/clear_reality_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'sources':
'lsdir_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/clear_reality_x4.onnx',
'path': resolve_relative_path('../.assets/models/clear_reality_x4.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'lsdir_x4.hash'),
'path': resolve_relative_path('../.assets/models/lsdir_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'lsdir_x4.onnx'),
'path': resolve_relative_path('../.assets/models/lsdir_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'size': (128, 8, 4),
'scale': 4
},
'lsdir_x4':
{
'hashes':
'nomos8k_sc_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/lsdir_x4.hash',
'path': resolve_relative_path('../.assets/models/lsdir_x4.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'nomos8k_sc_x4.hash'),
'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'nomos8k_sc_x4.onnx'),
'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'sources':
'real_esrgan_x2':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/lsdir_x4.onnx',
'path': resolve_relative_path('../.assets/models/lsdir_x4.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x2.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x2.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x2.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x2.onnx')
}
},
'size': (256, 16, 8),
'scale': 2
},
'size': (128, 8, 4),
'scale': 4
},
'nomos8k_sc_x4':
{
'hashes':
'real_esrgan_x2_fp16':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/nomos8k_sc_x4.hash',
'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x2_fp16.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x2_fp16.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.onnx')
}
},
'size': (256, 16, 8),
'scale': 2
},
'sources':
'real_esrgan_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/nomos8k_sc_x4.onnx',
'path': resolve_relative_path('../.assets/models/nomos8k_sc_x4.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x4.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x4.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x4.onnx')
}
},
'size': (256, 16, 8),
'scale': 4
},
'size': (128, 8, 4),
'scale': 4
},
'real_esrgan_x2':
{
'hashes':
'real_esrgan_x4_fp16':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x2.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x4_fp16.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x4_fp16.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.onnx')
}
},
'size': (256, 16, 8),
'scale': 4
},
'sources':
'real_esrgan_x8':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x2.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x8.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x8.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x8.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x8.onnx')
}
},
'size': (256, 16, 8),
'scale': 8
},
'size': (256, 16, 8),
'scale': 2
},
'real_esrgan_x2_fp16':
{
'hashes':
'real_esrgan_x8_fp16':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2_fp16.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x8_fp16.hash'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_esrgan_x8_fp16.onnx'),
'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.onnx')
}
},
'size': (256, 16, 8),
'scale': 8
},
'sources':
'real_hatgan_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x2_fp16.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x2_fp16.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_hatgan_x4.hash'),
'path': resolve_relative_path('../.assets/models/real_hatgan_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_hatgan_x4.onnx'),
'path': resolve_relative_path('../.assets/models/real_hatgan_x4.onnx')
}
},
'size': (256, 16, 8),
'scale': 4
},
'size': (256, 16, 8),
'scale': 2
},
'real_esrgan_x4':
{
'hashes':
'real_web_photo_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x4.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_web_photo_x4.hash'),
'path': resolve_relative_path('../.assets/models/real_web_photo_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'real_web_photo_x4.onnx'),
'path': resolve_relative_path('../.assets/models/real_web_photo_x4.onnx')
}
},
'size': (64, 4, 2),
'scale': 4
},
'sources':
'realistic_rescaler_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x4.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'realistic_rescaler_x4.hash'),
'path': resolve_relative_path('../.assets/models/realistic_rescaler_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'realistic_rescaler_x4.onnx'),
'path': resolve_relative_path('../.assets/models/realistic_rescaler_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'size': (256, 16, 8),
'scale': 4
},
'real_esrgan_x4_fp16':
{
'hashes':
'remacri_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4_fp16.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'remacri_x4.hash'),
'path': resolve_relative_path('../.assets/models/remacri_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'remacri_x4.onnx'),
'path': resolve_relative_path('../.assets/models/remacri_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'sources':
'siax_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x4_fp16.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x4_fp16.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'siax_x4.hash'),
'path': resolve_relative_path('../.assets/models/siax_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'siax_x4.onnx'),
'path': resolve_relative_path('../.assets/models/siax_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'size': (256, 16, 8),
'scale': 4
},
'real_esrgan_x8':
{
'hashes':
'span_kendata_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x8.hash')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'span_kendata_x4.hash'),
'path': resolve_relative_path('../.assets/models/span_kendata_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'span_kendata_x4.onnx'),
'path': resolve_relative_path('../.assets/models/span_kendata_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'sources':
'swin2_sr_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x8.onnx')
}
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'swin2_sr_x4.hash'),
'path': resolve_relative_path('../.assets/models/swin2_sr_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'swin2_sr_x4.onnx'),
'path': resolve_relative_path('../.assets/models/swin2_sr_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'size': (256, 16, 8),
'scale': 8
},
'real_esrgan_x8_fp16':
{
'hashes':
'ultra_sharp_x4':
{
'frame_enhancer':
'hashes':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8_fp16.hash',
'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.hash')
}
},
'sources':
{
'frame_enhancer':
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'ultra_sharp_x4.hash'),
'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.hash')
}
},
'sources':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_esrgan_x8_fp16.onnx',
'path': resolve_relative_path('../.assets/models/real_esrgan_x8_fp16.onnx')
}
},
'size': (256, 16, 8),
'scale': 8
},
'real_hatgan_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_hatgan_x4.hash',
'path': resolve_relative_path('../.assets/models/real_hatgan_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/real_hatgan_x4.onnx',
'path': resolve_relative_path('../.assets/models/real_hatgan_x4.onnx')
}
},
'size': (256, 16, 8),
'scale': 4
},
'real_web_photo_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/real_web_photo_x4.hash',
'path': resolve_relative_path('../.assets/models/real_web_photo_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/real_web_photo_x4.onnx',
'path': resolve_relative_path('../.assets/models/real_web_photo_x4.onnx')
}
},
'size': (64, 4, 2),
'scale': 4
},
'realistic_rescaler_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/realistic_rescaler_x4.hash',
'path': resolve_relative_path('../.assets/models/realistic_rescaler_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/realistic_rescaler_x4.onnx',
'path': resolve_relative_path('../.assets/models/realistic_rescaler_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'remacri_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/remacri_x4.hash',
'path': resolve_relative_path('../.assets/models/remacri_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/remacri_x4.onnx',
'path': resolve_relative_path('../.assets/models/remacri_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'siax_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/siax_x4.hash',
'path': resolve_relative_path('../.assets/models/siax_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/siax_x4.onnx',
'path': resolve_relative_path('../.assets/models/siax_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'span_kendata_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/span_kendata_x4.hash',
'path': resolve_relative_path('../.assets/models/span_kendata_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/span_kendata_x4.onnx',
'path': resolve_relative_path('../.assets/models/span_kendata_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'swin2_sr_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/swin2_sr_x4.hash',
'path': resolve_relative_path('../.assets/models/swin2_sr_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.1.0/swin2_sr_x4.onnx',
'path': resolve_relative_path('../.assets/models/swin2_sr_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
},
'ultra_sharp_x4':
{
'hashes':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ultra_sharp_x4.hash',
'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.hash')
}
},
'sources':
{
'frame_enhancer':
{
'url': 'https://github.com/facefusion/facefusion-assets/releases/download/models-3.0.0/ultra_sharp_x4.onnx',
'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
'frame_enhancer':
{
'url': resolve_download_url('models-3.0.0', 'ultra_sharp_x4.onnx'),
'path': resolve_relative_path('../.assets/models/ultra_sharp_x4.onnx')
}
},
'size': (128, 8, 4),
'scale': 4
}
}
}
def get_inference_pool() -> InferencePool:
@ -393,7 +394,7 @@ def clear_inference_pool() -> None:
def get_model_options() -> ModelOptions:
frame_enhancer_model = state_manager.get_item('frame_enhancer_model')
return MODEL_SET.get(frame_enhancer_model)
return create_model_set().get(frame_enhancer_model)
def register_args(program : ArgumentParser) -> None: