Rename to lip syncer

This commit is contained in:
henryruhs
2024-01-31 18:25:58 +01:00
parent 7f9348dcaa
commit 872094a1fd
6 changed files with 18 additions and 14 deletions
+2 -2
View File
@@ -1,13 +1,13 @@
from typing import List
from facefusion.common_helper import create_int_range
from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameEnhancerModel, LipSyncModel
from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameEnhancerModel, LipSyncerModel
face_debugger_items : List[FaceDebuggerItem] = [ 'bbox', 'kps', 'face-mask', 'score', 'age', 'gender' ]
face_enhancer_models : List[FaceEnhancerModel] = [ 'codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'restoreformer_plus_plus' ]
face_swapper_models : List[FaceSwapperModel] = [ 'blendswap_256', 'inswapper_128', 'inswapper_128_fp16', 'simswap_256', 'simswap_512_unofficial' ]
frame_enhancer_models : List[FrameEnhancerModel] = [ 'real_esrgan_x2plus', 'real_esrgan_x4plus', 'real_esrnet_x4plus' ]
lip_sync_models : List[LipSyncModel] = [ 'wav2lip' ]
lip_syncer_models : List[LipSyncerModel] = [ 'wav2lip' ]
face_enhancer_blend_range : List[int] = create_int_range(0, 100, 1)
frame_enhancer_blend_range : List[int] = create_int_range(0, 100, 1)
+4 -4
View File
@@ -1,11 +1,11 @@
from typing import List, Optional
from facefusion.processors.frame.typings import FaceSwapperModel, FaceEnhancerModel, FrameEnhancerModel, FaceDebuggerItem, LipSyncModel
from facefusion.processors.frame.typings import FaceDebuggerItem, FaceEnhancerModel, FaceSwapperModel, FrameEnhancerModel, LipSyncerModel
face_swapper_model : Optional[FaceSwapperModel] = None
face_debugger_items : Optional[List[FaceDebuggerItem]] = None
face_enhancer_model : Optional[FaceEnhancerModel] = None
lip_sync_model : Optional[LipSyncModel] = None
face_enhancer_blend : Optional[int] = None
face_swapper_model : Optional[FaceSwapperModel] = None
frame_enhancer_model : Optional[FrameEnhancerModel] = None
frame_enhancer_blend : Optional[int] = None
face_debugger_items : Optional[List[FaceDebuggerItem]] = None
lip_syncer_model : Optional[LipSyncerModel] = None
@@ -34,7 +34,7 @@ MODELS : ModelSet =\
{
'url': 'https://huggingface.co/bluefoxcreation/Wav2lip-Onnx/resolve/main/wav2lip_gan.onnx?download=true',
'path': resolve_relative_path('../.assets/models/wav2lip_gan.onnx'),
},
}
}
OPTIONS : Optional[OptionsWithModel] = None
@@ -61,7 +61,7 @@ def get_options(key : Literal['model']) -> Any:
if OPTIONS is None:
OPTIONS =\
{
'model': MODELS[frame_processors_globals.lip_sync_model]
'model': MODELS[frame_processors_globals.lip_syncer_model]
}
return OPTIONS.get(key)
@@ -73,12 +73,12 @@ def set_options(key : Literal['model'], value : Any) -> None:
def register_args(program : ArgumentParser) -> None:
program.add_argument('--lip-sync-model', help = wording.get('help.lip_sync_model_help'), default = config.get_str_value('frame_processors.lip_sync_model', 'wav2lip'), choices = frame_processors_choices.lip_sync_models)
program.add_argument('--lip-syncer-model', help = wording.get('help.lip_syncer_model'), default = config.get_str_value('frame_processors.lip_syncer_model', 'wav2lip'), choices = frame_processors_choices.lip_syncer_models)
def apply_args(program : ArgumentParser) -> None:
args = program.parse_args()
frame_processors_globals.lip_sync_model = args.lip_sync_model
frame_processors_globals.lip_syncer_model = args.lip_syncer_model
def pre_check() -> bool:
@@ -132,7 +132,11 @@ def lip_sync(audio_frame : AudioFrame, target_face : Face, temp_frame : VisionFr
crop_frame, affine_matrix = warp_face_by_bbox(temp_frame, target_face.bbox, (96, 96))
audio_frame = prepare_audio_frame(audio_frame)
crop_frame = prepare_crop_frame(crop_frame)
crop_frame = frame_processor.run(None, {'vid' : crop_frame, 'mel' : audio_frame})[0]
crop_frame = frame_processor.run(None,
{
'vid' : crop_frame,
'mel' : audio_frame
})[0]
crop_frame = normalize_crop_frame(crop_frame)
crop_mask = create_static_box_mask(crop_frame.shape[:2][::-1], 0.1, (50, 0, 0, 0))
paste_frame = paste_back(temp_frame, crop_frame, crop_mask, affine_matrix)
+1 -1
View File
@@ -4,4 +4,4 @@ FaceDebuggerItem = Literal['bbox', 'kps', 'face-mask', 'score', 'age', 'gender']
FaceEnhancerModel = Literal['codeformer', 'gfpgan_1.2', 'gfpgan_1.3', 'gfpgan_1.4', 'gpen_bfr_256', 'gpen_bfr_512', 'restoreformer_plus_plus']
FaceSwapperModel = Literal['blendswap_256', 'inswapper_128', 'inswapper_128_fp16', 'simswap_256', 'simswap_512_unofficial']
FrameEnhancerModel = Literal['real_esrgan_x2plus', 'real_esrgan_x4plus', 'real_esrnet_x4plus']
LipSyncModel = Literal['wav2lip']
LipSyncerModel = Literal['wav2lip']
+1 -1
View File
@@ -97,9 +97,9 @@ WORDING : Dict[str, Any] =\
'face_enhancer_model': 'choose the model responsible for enhancing the face',
'face_enhancer_blend': 'blend the enhanced into the previous face',
'face_swapper_model': 'choose the model responsible for swapping the face',
'lip_sync_model': 'choose the model responsible for lip syncing',
'frame_enhancer_model': 'choose the model responsible for enhancing the frame',
'frame_enhancer_blend': 'blend the enhanced into the previous frame',
'lip_syncer_model': 'choose the model responsible for the lip syncing',
# uis
'ui_layouts': 'Launch a single or multiple UI layouts (choices: {choices}, ...)'
},
+1 -1
View File
@@ -33,7 +33,7 @@ def test_image_to_video() -> None:
def test_audio_to_video() -> None:
commands = [ sys.executable, 'run.py', '--frame-processors', 'lip_sync', '-s', '.assets/examples/source.mp3', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples', '--trim-frame-end', '10', '--headless' ]
commands = [ sys.executable, 'run.py', '--frame-processors', 'lip_syncer', '-s', '.assets/examples/source.mp3', '-t', '.assets/examples/target-240p.mp4', '-o', '.assets/examples', '--trim-frame-end', '10', '--headless' ]
run = subprocess.run(commands, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
assert run.returncode == 0