Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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')