DeepFaceLab 部署在 Ubuntu(docker gpu)

DeepFaceLab 在windows图形界面部署比较多,下面用ubuntu 部署在服务器上。部署过程中python版本,或者protobuf版本可能有问题,所以建议用docker,若需要我可以共享我的镜像

代码下载

cd /trainssd
 git clone --depth 1 https://github.com/nagadit/DeepFaceLab_Linux.git
 cd DeepFaceLab_Linux
 git clone --depth 1 https://github.com/iperov/DeepFaceLab.git

下载容器

docker pull tensoflow/tensorflow:2.4.0-gpu

启动docker容器

代码已经提前下载在

docker run -itd --name deepfacelab --gpus all  -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -v /trainssd:/trainssd tensorflow/tensorflow:2.4.0-gpu /bin/bash

进入容器

docker exec -it deepfacelab /bin/bash

系统库安装

apt update && apt install -y vim libsm6 libxrender1 libxext6  ffmpeg wget

修改pip源

mkdir /root/.pip && cat>/root/.pip/pip.conf<<EOF
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF

或者是

[global]
index-url=http://pypi.doubanio.com/simple/
trusted-host=pypi.doubanio.com

我这里用python3.8源码编译安装可以,python3.6会遇到protobuf 问题。

protobuf也需要下载源码编译对应的版本,3.20.3,编译安装

安装python依赖

cd /trainssd/DeepFaceLab_Linux/
python -m pip install -r ./DeepFaceLab/requirements-cuda.txt

关闭conda和修改python版本

#进入到scripts目录
cd ./scripts
sed -i 's/python3.7/python3.6/g' env.sh 
sed -i 's/conda/#conda/g' env.sh

env.sh 里面

export DFL_PYTHON="python3.7"

改为

export DFL_PYTHON="python3.8"

初始化工作区

#慎重默认会删除所有工作区域的数据
bash 1_clear_workspace.sh

准备数据

#此处按照自己实际情况处理需要 data_src.为前缀和data_dst.为前缀
cp /data/yhf/SimSwap/Videos/fbb_02.mp4 /trainssd/DeepFaceLab_Linux/workspace/data_src.mp4
cp /data/yhf/SimSwap/Videos/fbb_01.mp4 /trainssd/DeepFaceLab_Linux/workspace/data_dst.mp4

src数据抽中

bash 2_extract_image_from_data_src.sh

dst数据抽中

bash 3_extract_image_from_data_dst.sh 

数据去噪

bash 3.1_denoise_data_dst_images.sh

模型下载

bash 4.1_download_CelebA.sh
bash 4.1_download_FFHQ.sh
bash 4.1_download_Quick96.sh

###
按照脚本执行就可以

bash 4_data_src_extract_faces_S3FD.sh

bash 5_data_dst_extract_faces_S3FD.sh

bash 6_train_Quick96.sh 或者 6_train_Quick96_no_preview.sh

bash 7_merge_Quick96.sh

bash 8_merged_to_mp4.sh

上面几个脚本能够训练出模型,其他的脚本是优化图像的,可以慢慢研究下

训练开始时候的窗口,第二第四第五列都是模糊的

随着训练迭代的次数增多,第二第四第五列算法会慢慢生成出人脸轮廓、五官,然后慢慢变的清晰。

我们只需要观察第二列是否与第一列无限相似,第四列与第三列无限相似,第五列的表情与第四列无限相似。

当所有列的图片足够清晰,那么就可以停止。

7_merge_Quick96.sh交互模式

若用非交互模式,我们参考了《 Project Aksel: Deepfake Head Replacement 》这篇文章里的 merge 参数的设置,效果不错。 

方法1.                                                         
Mode: seamless                                                                                                                                  mask_mode: learned-prd*learned-dst                                                                                             erode_mask_modifier: 0                                                                                                                   blur_mask_modifier: 91                                                                                                                     motion_blur_power: 0                                                                                                                     output_face_scale: -7                                                                                                                       color_transfer_mode: rct                                                                                                                     sharpen_mode : gaussian                                                                                                                 blursharpen_amount : 0                                                                                                                     super_resolution_power: 0                                                                                                                image_denoise_power: 0                                                                                                                   bicubic_degrade_power: 0                                                                                                                 color_degrade_power: 0

方法2.   

Mode: overlay
mask_mode: learned-prd*learned-dst
erode_mask_modifier: 0
blur_mask_modifier: 91
motion_blur_power: 0
output_face_scale: -7
color_transfer_mode: rct
sharpen_mode : gaussian
blursharpen_amount : 5
super_resolution_power: 0
image_denoise_power: 0
bicubic_degrade_power: 0
color_degrade_power: 0

方法3.   

Mode: overlay                                                                                                                                   mask_mode: learned-prd                                                                                                                   erode_mask_modifier: 18                                                                                                                  blur_mask_modifier: 91                                                                                                                      motion_blur_power: 0                                                                                                                         output_face_scale: 0                                                                                                                           color_transfer_mode: rct                                                                                                                     sharpen_mode : None                                                                                                                       blursharpen_amount : 0                                                                                                                     super_resolution_power: 0                                                                                                                 image_denoise_power: 0                                                                                                                   bicubic_degrade_power: 0                                                                                                                 color_degrade_power: 0

方法4.

 Use interactive merger? ( y/n ) : n    # 不能选 y!
 mode: overlay
 mask_mode: learned-prd
 erode_mask_modifier: 0
 blur_mask_modifier: 0
 motion_blur_power: 0
 output_face_scale: -5
 color_transfer_mode: rct
 sharpen_mode : None
 blursharpen_amount : 0
 super_resolution_power: 16
 image_denoise_power: 0
 bicubic_degrade_power: 0
 color_degrade_power: 0
 Number of workers:48

猜你喜欢

转载自blog.csdn.net/soralaro/article/details/129285078