def main(source, target, output=None, select_source=d('select_source'), select_target=d('select_target'), # General arguments resolution=d('resolution'), crop_scale=d('crop_scale'), gpus=d('gpus'), cpu_only=d('cpu_only'), display=d('display'), verbose=d('verbose'), encoder_codec=d('encoder_codec'), # Detection arguments: detection_model=d('detection_model'), det_batch_size=d('det_batch_size'), det_postfix=d('det_postfix'), # Sequence arguments: iou_thresh=d('iou_thresh'), min_length=d('min_length'), min_size=d('min_size'), center_kernel=d('center_kernel'), size_kernel=d('size_kernel'), smooth_det=d('smooth_det'), seq_postfix=d('seq_postfix'), write_empty=d('write_empty'), # Pose arguments: pose_model=d('pose_model'), pose_batch_size=d('pose_batch_size'), pose_postfix=d('pose_postfix'), cache_pose=d('cache_pose'), cache_frontal=d('cache_frontal'), smooth_poses=d('smooth_poses'), # Landmarks arguments: lms_model=d('lms_model'), lms_batch_size=d('lms_batch_size'), landmarks_postfix=d('landmarks_postfix'), cache_landmarks=d('cache_landmarks'), smooth_landmarks=d('smooth_landmarks'), # Segmentation arguments: seg_model=d('seg_model'), seg_batch_size=d('seg_batch_size'), segmentation_postfix=d('segmentation_postfix'), cache_segmentation=d('cache_segmentation'), smooth_segmentation=d('smooth_segmentation'), seg_remove_mouth=d('seg_remove_mouth'), # Finetune arguments: finetune=d('finetune'), finetune_iterations=d('finetune_iterations'), finetune_lr=d('finetune_lr'), finetune_batch_size=d('finetune_batch_size'), finetune_workers=d('finetune_workers'), finetune_save=d('finetune_save'), # Swapping arguments: batch_size=d('batch_size'), reenactment_model=d('reenactment_model'), completion_model=d('completion_model'), blending_model=d('blending_model'), criterion_id=d('criterion_id'), min_radius=d('min_radius'), output_crop=d('output_crop'), renderer_process=d('renderer_process')): face_swapping = FaceSwapping( resolution, crop_scale, gpus, cpu_only, display, verbose, encoder_codec, detection_model=detection_model, det_batch_size=det_batch_size, det_postfix=det_postfix, iou_thresh=iou_thresh, min_length=min_length, min_size=min_size, center_kernel=center_kernel, size_kernel=size_kernel, smooth_det=smooth_det, seq_postfix=seq_postfix, write_empty=write_empty, pose_model=pose_model, pose_batch_size=pose_batch_size, pose_postfix=pose_postfix, cache_pose=cache_pose, cache_frontal=cache_frontal, smooth_poses=smooth_poses, lms_model=lms_model, lms_batch_size=lms_batch_size, landmarks_postfix=landmarks_postfix, cache_landmarks=cache_landmarks, smooth_landmarks=smooth_landmarks, seg_model=seg_model, seg_batch_size=seg_batch_size, segmentation_postfix=segmentation_postfix, cache_segmentation=cache_segmentation, smooth_segmentation=smooth_segmentation, seg_remove_mouth=seg_remove_mouth, finetune=finetune, finetune_iterations=finetune_iterations, finetune_lr=finetune_lr, finetune_batch_size=finetune_batch_size, finetune_workers=finetune_workers, finetune_save=finetune_save, batch_size=batch_size, reenactment_model=reenactment_model, completion_model=completion_model, blending_model=blending_model, criterion_id=criterion_id, min_radius=min_radius, output_crop=output_crop, renderer_process=renderer_process) if len(source) == 1 and len(target) == 1 and os.path.isfile(source[0]) and os.path.isfile(target[0]): face_swapping(source[0], target[0], output, select_source, select_target) else: batch(source, target, output, face_swapping, postfix='.mp4', skip_existing=True)
def main( input, output=d('output'), resolution=d('resolution'), crop_scale=d('crop_scale'), gpus=d('gpus'), cpu_only=d('cpu_only'), display=d('display'), verbose=d('verbose'), # Detection arguments: detection_model=d('detection_model'), det_batch_size=d('det_batch_size'), det_postfix=d('det_postfix'), # Sequence arguments: iou_thresh=d('iou_thresh'), min_length=d('min_length'), min_size=d('min_size'), center_kernel=d('center_kernel'), size_kernel=d('size_kernel'), smooth_det=d('smooth_det'), seq_postfix=d('seq_postfix'), write_empty=d('write_empty'), # Pose arguments: pose_model=d('pose_model'), pose_batch_size=d('pose_batch_size'), pose_postfix=d('pose_postfix'), cache_pose=d('cache_pose'), cache_frontal=d('cache_frontal'), smooth_poses=d('smooth_poses'), # Landmarks arguments: lms_model=d('lms_model'), lms_batch_size=d('lms_batch_size'), landmarks_postfix=d('landmarks_postfix'), cache_landmarks=d('cache_landmarks'), smooth_landmarks=d('smooth_landmarks'), # Segmentation arguments: seg_model=d('seg_model'), seg_batch_size=d('seg_batch_size'), segmentation_postfix=d('segmentation_postfix'), cache_segmentation=d('cache_segmentation'), smooth_segmentation=d('smooth_segmentation'), seg_remove_mouth=d('seg_remove_mouth')): video_process = VideoProcessCallable( resolution, crop_scale, gpus, cpu_only, display, verbose, detection_model=detection_model, det_batch_size=det_batch_size, det_postfix=det_postfix, iou_thresh=iou_thresh, min_length=min_length, min_size=min_size, center_kernel=center_kernel, size_kernel=size_kernel, smooth_det=smooth_det, seq_postfix=seq_postfix, write_empty=write_empty, pose_model=pose_model, pose_batch_size=pose_batch_size, pose_postfix=pose_postfix, cache_pose=cache_pose, cache_frontal=cache_frontal, smooth_poses=smooth_poses, lms_model=lms_model, lms_batch_size=lms_batch_size, landmarks_postfix=landmarks_postfix, cache_landmarks=cache_landmarks, smooth_landmarks=smooth_landmarks, seg_model=seg_model, seg_batch_size=seg_batch_size, segmentation_postfix=segmentation_postfix, cache_segmentation=cache_segmentation, smooth_segmentation=smooth_segmentation, seg_remove_mouth=seg_remove_mouth) if len(input) == 1 and os.path.isfile(input[0]): video_process.cache(input, output) else: batch(input, None, output, video_process, postfix='.mp4')