DeepFaceLab 部署在 Ubuntu(docker gpu)

该文提供了一种在Ubuntu服务器上通过Docker部署DeepFaceLab的步骤,包括使用tensorflowGPU镜像,解决Python和protobuf版本问题,以及详细的数据处理、模型训练和参数调整过程,涉及Deepfake头像替换技术。
该文章已生成可运行项目,

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
本文章已经生成可运行项目
### 如何在 Ubuntu 上通过 Docker 安装 Ollama 并配置 GPU 支持 #### 准备工作 为了成功完成此操作,需先确认系统已满足以下条件: - 已安装最新版本的 NVIDIA 驱动程序。 - 已安装并配置好 Docker 和 NVIDIA 容器工具。 #### 步骤说明 ##### 1. 安装 NVIDIA 容器工具 NVIDIA 提供了一个专门用于容器化的工具包 `nvidia-container-toolkit`,它允许 Docker 使用主机上的 GPU 资源。以下是具体命令: ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker ``` 这一步完成后,可以验证是否正确加载了 NVIDIA 的驱动程序[^1]。 ##### 2. 安装 Docker 如果尚未安装 Docker,则可以通过以下方式快速设置环境。这里假设已经跳过了前几步,直接进入第五步(基于引用中的描述)。执行如下脚本即可完成安装过程: ```bash sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` 上述步骤会确保 Docker 及其依赖项被正确安装到系统中[^3]。 ##### 3. 下载并启动 Ollama 映像 一旦基础环境搭建完毕,就可以拉取最新的 Ollama 映像文件,并将其绑定至本地 GPU 设备。运行下列指令来实现这一目标: ```bash docker pull ollama/ollama:latest docker run --rm -it --gpus all -v ~/.ollama:/root/.ollama -p 11434:11434 ollama/ollama serve ``` 其中参数解释如下: - `--gpus all`: 将所有可用的 GPU 分配给容器; - `-v ~/.ollama:/root/.ollama`: 绑定宿主机目录与容器内部路径,以便保存模型数据; - `-p 11434:11434`: 开启端口映射功能,使外部能够访问服务接口[^2]。 至此,整个流程结束,应该能够在浏览器地址栏输入 `http://localhost:11434` 来测试界面响应情况。 --- ### 注意事项 对于某些特殊情况下的错误排查建议查阅官方文档或者寻求社区帮助资源链接作为补充参考资料。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值