Spaces:
Paused
Paused
| from refacer import Refacer | |
| from os.path import exists | |
| import argparse | |
| import cv2 | |
| parser = argparse.ArgumentParser(description='Refacer') | |
| parser.add_argument("--force_cpu", help="Force CPU mode", default=False, action="store_true") | |
| parser.add_argument("--colab_performance", help="Use in colab for better performance", default=False,action="store_true") | |
| parser.add_argument("--face", help="Face to replace (ex: <src>,<dst>,<thresh=0.2>)", nargs='+', action="append", required=True) | |
| parser.add_argument("--video", help="Video to parse", required=True) | |
| args = parser.parse_args() | |
| refacer = Refacer(force_cpu=args.force_cpu,colab_performance=args.colab_performance) | |
| def run(video_path,faces): | |
| video_path_exists = exists(video_path) | |
| if video_path_exists == False: | |
| print ("Can't find " + video_path) | |
| return | |
| faces_out = [] | |
| for face in faces: | |
| face_str = face[0].split(",") | |
| origin = exists(face_str[0]) | |
| if origin == False: | |
| print ("Can't find " + face_str[0]) | |
| return | |
| destination = exists(face_str[1]) | |
| if destination == False: | |
| print ("Can't find " + face_str[1]) | |
| return | |
| faces_out.append({ | |
| 'origin':cv2.imread(face_str[0]), | |
| 'destination':cv2.imread(face_str[1]), | |
| 'threshold':float(face_str[2]) | |
| }) | |
| return refacer.reface(video_path,faces_out) | |
| run(args.video, args.face) | |