Example #1
0
def register():
    try:
        if app.unused_port:
            port = app.unused_port.pop()
        else:
            return register_response(
                status=afy_flask_register_status.QUOTA_EXCEEDED,
                error="Quota Exceeded")
        in_addr = app.base_address + ":" + str(port)
        out_addr = app.base_address + ":" + str(port + 1)
        sps = shlex.split(
            f'./run.sh --is-worker --in-port {port} --out-port {port+1} --no-vcam'
        )
        ps = Popen(sps)
        time.sleep(2)
        try:
            predictor_args = {
                'config_path': app.opt.config,
                'checkpoint_path': app.opt.checkpoint,
                'relative': app.opt.relative,
                'adapt_movement_scale': app.opt.adapt_scale,
                'enc_downscale': app.opt.enc_downscale
            }
            predictor = predictor_remote.PredictorRemote(in_addr=in_addr,
                                                         out_addr=out_addr,
                                                         **predictor_args)
        except ConnectionError as err:
            if app.verbose:
                traceback.print_exc()
            return register_response(
                status=afy_flask_register_status.CONNECTION_ERROR,
                error=str(err))
        while True:
            token = generate_token()
            if token not in app.processes:
                break
        app.processes[token] = {}
        app.processes[token]['port'] = port
        app.processes[token]['ps'] = ps
        app.processes[token]['predictor'] = predictor
        return register_response(status=afy_flask_register_status.SUCCESS,
                                 token=token)
    except Exception as e:
        if app.verbose:
            traceback.print_exc()
        return register_response(error=str(e))
Example #2
0
    predictor_args = {
        'config_path': opt.config,
        'checkpoint_path': opt.checkpoint,
        'relative': opt.relative,
        'adapt_movement_scale': opt.adapt_scale,
        'enc_downscale': opt.enc_downscale
    }
    if opt.is_worker:
        from afy import predictor_worker
        predictor_worker.run_worker(opt.in_port, opt.out_port)
        sys.exit(0)
    elif opt.is_client:
        from afy import predictor_remote
        try:
            predictor = predictor_remote.PredictorRemote(in_addr=opt.in_addr,
                                                         out_addr=opt.out_addr,
                                                         **predictor_args)
        except ConnectionError as err:
            log(err)
            sys.exit(1)
        predictor.start()
    else:
        from afy import predictor_local
        predictor = predictor_local.PredictorLocal(**predictor_args)

    cam_id = select_camera(config)

    if cam_id is None:
        exit(1)

    cap = VideoCaptureAsync(cam_id)
Example #3
0
    log('Loading Predictor')
    predictor_args = {
        'config_path': opt.config,
        'checkpoint_path': opt.checkpoint,
        'relative': opt.relative,
        'adapt_movement_scale': opt.adapt_scale,
        'enc_downscale': opt.enc_downscale
    }
    if opt.is_worker:
        from afy import predictor_worker
        predictor_worker.run_worker(opt.worker_port)
        sys.exit(0)
    elif opt.worker_host:
        from afy import predictor_remote
        predictor = predictor_remote.PredictorRemote(
            worker_host=opt.worker_host,
            worker_port=opt.worker_port,
            **predictor_args)
    else:
        from afy import predictor_local
        predictor = predictor_local.PredictorLocal(**predictor_args)

    avatars = []
    images_list = sorted(glob.glob(f'{opt.avatars}/*'))
    for i, f in enumerate(images_list):
        if f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png'):
            key = len(avatars) + 1
            log(f'Key {key}: {f}')
            img = cv2.imread(f)
            if img.ndim == 2:
                img = np.tile(img[..., None], [1, 1, 3])
            img = img[..., :3][..., ::-1]