Spaces:
				
			
			
	
			
			
		Paused
		
	
	
	
			
			
	
	
	
	
		
		
		Paused
		
	| import argparse | |
| from dofaker import FaceSwapper | |
| def parse_args(): | |
| parser = argparse.ArgumentParser(description='running face swap') | |
| parser.add_argument('--source', | |
| help='select an image or video to be swapped', | |
| dest='source', | |
| required=True) | |
| parser.add_argument('--dst_face_paths', | |
| help='select images in source to be swapped', | |
| dest='dst_face_paths', | |
| nargs='+', | |
| default=None) | |
| parser.add_argument( | |
| '--src_face_paths', | |
| help='select images to replace dst_faces in source image or video.', | |
| dest='src_face_paths', | |
| nargs='+', | |
| required=True) | |
| parser.add_argument('--output_dir', | |
| help='output directory', | |
| dest='output_dir', | |
| default='output') | |
| parser.add_argument('--det_model_name', | |
| help='detection model name for insightface', | |
| dest='det_model_name', | |
| default='buffalo_l') | |
| parser.add_argument('--det_model_dir', | |
| help='detection model dir for insightface', | |
| dest='det_model_dir', | |
| default='weights/models') | |
| parser.add_argument('--swap_model_name', | |
| help='swap model name', | |
| dest='swap_model_name', | |
| default='inswapper') | |
| parser.add_argument('--image_sr_model', | |
| help='image super resolution model', | |
| dest='image_sr_model', | |
| default='bsrgan') | |
| parser.add_argument('--face_swap_model_dir', | |
| help='swap model path', | |
| dest='face_swap_model_dir', | |
| default='weights/models') | |
| parser.add_argument('--image_sr_model_dir', | |
| help='image super resolution model dir', | |
| dest='image_sr_model_dir', | |
| default='weights/models') | |
| parser.add_argument('--face_enhance_name', | |
| help='face enhance model', | |
| dest='face_enhance_name', | |
| default='gfpgan') | |
| parser.add_argument('--face_enhance_model_dir', | |
| help='face enhance model dir', | |
| dest='face_enhance_model_dir', | |
| default='weights/models') | |
| parser.add_argument('--face_sim_thre', | |
| help='similarity of face embedding threshold', | |
| dest='face_sim_thre', | |
| default=0.5) | |
| parser.add_argument('--log_iters', | |
| help='print log intervals', | |
| dest='log_iters', | |
| default=10, | |
| type=int) | |
| parser.add_argument('--use_enhancer', | |
| help='whether use face enhance model', | |
| dest='use_enhancer', | |
| action='store_true') | |
| parser.add_argument('--use_sr', | |
| help='whether use image super resolution model', | |
| dest='use_sr', | |
| action='store_true') | |
| parser.add_argument('--sr_scale', | |
| help='image super resolution scale', | |
| dest='sr_scale', | |
| default=1, | |
| type=float) | |
| return parser.parse_args() | |
| if __name__ == '__main__': | |
| args = parse_args() | |
| faker = FaceSwapper( | |
| face_det_model=args.det_model_name, | |
| face_det_model_dir=args.det_model_dir, | |
| face_swap_model=args.swap_model_name, | |
| face_swap_model_dir=args.face_swap_model_dir, | |
| image_sr_model=args.image_sr_model, | |
| image_sr_model_dir=args.image_sr_model_dir, | |
| face_enhance_model=args.face_enhance_name, | |
| face_enhance_model_dir=args.face_enhance_model_dir, | |
| face_sim_thre=args.face_sim_thre, | |
| log_iters=args.log_iters, | |
| use_enhancer=args.use_enhancer, | |
| use_sr=args.use_sr, | |
| scale=args.sr_scale, | |
| ) | |
| faker.run( | |
| input_path=args.source, | |
| dst_face_paths=args.dst_face_paths, | |
| src_face_paths=args.src_face_paths, | |
| output_dir=args.output_dir, | |
| ) | |
