本文主要记录在GPU服务器中部署roop实现图片视频换脸功能
python环境准备
安装Anaconda3
1、cd ~
2、wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
3、bash Anaconda3-2024.02-1-Linux-x86_64.sh
4、一直按 Enter,出现的yes/no,都写yes
创建虚拟环境以及下载一些依赖
1、创建虚拟环境:conda create --name roopenv python=3.10.6
2、激活虚拟环境:conda activate roopenv
3、升级setuptools: pip install --upgrade pip setuptools wheel (后面install项目依赖时,安装basicsr的时候要求PEP 517,如果已经是PEP 517,忽略忽略此步骤)
4、yum install mesa-libGL.x86_64 (roop项目中使用到了libGL.so,如果已经安装,忽略此步骤)
部署roop项目
1、git clone https://github.com/s0md3v/roop.git
2、修改requirements.txt文件中的第一行【很有必要】
将 https://download.pytorch.org/whl/cu118 替换成 https://mirrors.aliyun.com/pypi/simple
如果不修改,在下载依赖的时候会很慢,并且可能会超时,导致无法下载完成
上传模型文件
1、获取模型文件:https://pan.baidu.com/s/1OdYRvOptjFwju3EW812dBw?pwd=roop
解压后如下
2、上传到指定目录下
2.1、roop文件夹下的所有文件夹直接复制到项目主目录下
2.2、root文件夹下的所有文件夹上传到linux中 root文件夹下
运行项目
1、安装项目依赖:pip install -r requirements.txt --use-pep517 --verbose
2、运行示例
命令1:
python run.py --execution-provider cuda --temp-frame-format jpg -s /www/wwwroot/myroop/roop/example/zbs.jpg -t /www/wwwroot/myroop/roop/example/a.mp4 -o /www/wwwroot/myroop/roop/example/a100.mp4
命令2:
python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer -s /www/wwwroot/myroop/roop/example/zbs.jpg -t /www/wwwroot/myroop/roop/example/a.mp4 -o /www/wwwroot/myroop/roop/example/a200.mp4
命令3:
python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer --similar-face-distance 1.5 -s /www/wwwroot/myroop/roop/example/zbs.jpg -t /www/wwwroot/myroop/roop/example/a.mp4 -o /www/wwwroot/myroop/roop/example/a300.mp4
3个命令不同的参数说明:
–temp-frame-format jpg 图片保存jpg格式
–frame-processor face_swapper face_enhancer 视频高清化处理
–similar-face-distance 1.5 处理脸部跳闪
-s 是源图片(要替换成的头像路径)
-t 是目标图片或视频(被替换的,资源路径)
-o 是输出路径