将source image中的人脸换到target image上。
roop pipeline概述
首先用人脸检测模型检测source image和target image中的人脸,并分析人脸特征;然后抠出source人脸和target人脸,给到inswapper完成换脸再贴到target image上。人脸修复是一项可选的后处理,本仓库中使用的是codeformer模型。
git clone https://github.com/ZillaRU/roop_face.git
cd roop_face
pip3 install torch==2.0.1 torchvision==0.15.2 opencv-python-headless flask==2.2.2 insightface onnxruntime gradio
pip3 install tpu-perf*.whl
。bmodel_files
,解压(tar xzvf bmodel_files.tar.gz
)并把bmodel文件放进去。python demo_app.py
,启动完成后终端会显示端口号,浏览器访问盒子ip:端口号
即可。
example
文件夹)python3 app_roop.py
,启动完成后服务在7019端口。
{
"source_img": "base64_encoded_source_image",
"target_img": "base64_encoded_target_image",
"payload": "additional_parameters_if_needed"
}
{
"ret_img": ["base64_encoded_face_swapped_image"],
"message": "success"
}
{
"image": "base64_encoded_image",
"restorer_visibility": 0.5, // 可选,调整增强效果的可见度
"payload": "additional_parameters_if_needed" // 可选
}
{
"ret_img": ["base64_encoded_enhanced_image"],
"message": "success"
}