DeepFaceLab 3.0使用总结

2022-04-23  本文已影响0人  赤色要塞满了

手头刚好有个3080,就选用DFL3.0 1120 RTX30版本。DFL由版本+日期+适配显卡组成。

1 安装

Windows下基本是解压开箱即用。


image.png

主要是安装驱动,下载驱动:

https://www.nvidia.cn/Download/index.aspx?lang=cn

查看CUDA版本:NVIDIA控制面板 - 菜单 - 帮助 - 系统信息 - 组件 - NVCUDA64.DLL。如果需要安装cuda和cudnn,参考:

https://developer.nvidia.com/zh-cn/cuda-downloads
https://developer.nvidia.com/rdp/cudnn-archive # 复制到文件夹

2 使用

2.0 准备视频

源视频的素材可得好好选取准备,越清晰越好!因为清晰的可以变模糊,但模糊的想要清晰可就难了。近景远景正脸侧脸死亡角度白天黑夜喜怒哀乐各种有代表性的,可以用格式工厂之类的进行截取、拼接、转化,最终存为data_src.mp4

目标视频处理比较简单些,看作者的成品想法,最终存为data_dst.mp4。为了换脸丝滑,src和dst尽可能选择表情、角度、光源接近的,src的数据量可以多一些。

2.1 src切图

2.2 dst切图

2.3 src切脸

点击运行4) 提取源头像 data_src faceset extract.bat。会有参数需要设置,如图:

image.png

设置完毕,回车运行脚本,3080切脸速度大概2张/秒。会生成到workspace\data_src\aligned目录。
如果希望加快切脸速度,可以网上找一些专业提脸软件,速度能提升10倍左右。

接下来是重要的整理工作:
推荐使用第三方软件MVE(Machine Video Editor)进行切图纠错、蒙板管理,很强大,有兴趣的自行研究。

如果aligned里有多个人(初始会带着不同的文件名后缀,如_0、_1,一般按照同一张图里头像大小排序的),直接训练会产生混血儿。建议使用颜色直方图做排序,然后把不同的人归类到不同的文件夹备用,或者删除掉不需要换脸的人。这一步可配合人脸筛选工具进行,类似于iphone照片的人物识别归类,会方便许多。

https://github.com/MachineEditor/MachineVideoEditor

2.4 dst切脸

点击运行5) 目标头像提取 data_dst faceset extract.bat。参数如下:

image.png
切完后进行整理。

记住一点,这个aligned目录下的所有人脸,最终都是要被src的人脸替换的。比如如果留着多个人,会产生多胞胎。

2.5 处理遮罩(可选)

2.5.1 绘制

有时候dst图片脸上有遮挡物,如果不处理,到时候就直接把src整个糊上去。那会产生奇怪的效果,比如脸上没眼镜却有两个眼镜腿。

2.5.2 使用Xseg模型(推荐)

网上有一些现成的遮罩模型,注意这跟换脸模型不一样,虽然也是放到model目录。有两种使用方式:

在别的基础上训练,比直接拿来用好一些。是否重新训练

Xseg模型可复用,手工画完的遮罩图可运行data_dst mask for XSeg trainer - fetch.bat搜集起来,增量训练。不过新手用不到。

2.6 训练

入门或者配置低可使用轻量级的train Quick96.bat,不需要设置参数。这里重点说下重量级的SAEHD

首先,新手务必找个预训练模型(仙丹)来继续训练,会大大减少时间、提升效果!!!

使用仙丹后再训个几万次迭代吧,后期打开LRD和GAN。使用仙丹,分辨率没法改。

喜欢src的脸型,就打开true_face_power,否则打开face_style_power。不要同时开,一般是0.001。
最后,来自dfldata网站的一组从0开始训练的推荐参数:

# 先开这组参数训练10-60W
face type : WF
random_flip : off # 防止左右脸不一样的翻来翻去
random warp:y
adabelief : on
Eyes and mouth priority : on
color transfer mode: lct

# 再开这个训练10-30W,开了就别关了!
learning rate drop:y

# 再关闭随机扭曲训练10-30W
random warp:n

# 最后开GAN训练10-30W
GAN power: 0.1 # 此时loss比较低了,比如0.1,打开前可以备份下,容易崩

训练效果差一般就是因为src素材缺乏,没好料。

2.7 应用模型

本步骤将图片换脸,以前老版本叫convert吧。

各种参数自行试一试,多按一按,就找到感觉了!!!

2.7.1 覆盖模式

1-overlay,2-hist-match,3-hist-match-bw,4-seamless,5-seamless-hist-match,6-raw-rgb,7-raw-rgb-mask,8-raw-mask-only ,9-raw-predicted-only。
其中,4-seamless(泊松克隆)比较适配遮挡的情况,缺点:闪烁、抖动、偏暗。一般推荐2-hist-match的色彩比较接近,配合erode和blur使用。

2.7.2 直方图匹配阈值

Hist match threshold. [0..255] (default – 255): 快捷键QA设定需要的亮度,适当降低该值,可以解决亮斑,比如238。

2.7.3 侵蚀

快捷键WS调整被替换区域,值变大增大遮罩向内收缩程度,有时会出现亮色边。

2.7.4 模糊

Choose blur mask modifier [-200..200]: 快捷键ED设定平滑度,羽化边缘,看起来模糊自然。如果不处理遮挡,hist-match (erode: 100, blur: 100);如果遮挡比较大,seamless (erode: 30, blur:0)。

2.7.5 运动模糊

快捷键RF调节运动模糊程度,前后帧脸部变化越大,模糊程度越大。使用前确保aligned_dst的每一帧只有一个人脸。

2.7.6 超分辨率

快捷键TG调节超分辨率效果,可以让人脸更清晰,可以设定为100。

2.7.7 锐化

快捷键YH调节锐化程度,按N更改锐化模式,选择gaussian模式,按Y增加参数到5。

2.7.8 放大缩小

快捷键UJ调节人脸大小。

2.7.9 背景劣化

有时候人脸不清晰,干脆降低背景画质,大家一起摆烂。其中,快捷键IK调节图片降噪效果(和磨皮差不多),快捷键OL调节双三次插值劣化效果,快捷键P;调节颜色劣化效果。

2.7.10 遮罩与颜色控制区

Mask mode: (1) learned, (2) dst, (3) FAN-prd, (4) FAN-dst (5) FAN-prd * dst (6) learned * FAN-prd * FAN-dst help (?) . Default – 1:
一般选2,速度快。其他效果好,但慢,且在使用了Fanseg模型遮罩之后,必须使用FAN模型。
如果要处理遮挡,转换启动后启用动态交互,然后按Tab键盘进入预览窗口,按两次X,切换成Fan-dst。

2.8 合成视频

设置下码率即可,比如3。

3 经验

3.1 复用模型

也就是使用预训练模型(灵丹)。先将其复制到model文件夹,然后src和dst放自己想要换脸的素材,开启训练后2秒钟内按回车,最后把“是否启用预训练模式 use pretrain mode”改为N。注意,这选项千万不需要Y,否则会调用内置的外国人数据进行训练。然后训练,基本一开始就能看到人影。如果看不到,就按回车结束训练,把预训练模型的.npy文件复制替换到模型文件夹中,重来一次。

预训练模型跟正式训练模型本质上都是模型,只不过预训模型使用了大量素材进行炼丹,学会了很多绘画技法。在其基础上再去专门学习画某个人,速度就快了。也有做法将正训素材也加到预训素材里一起炼丹,普通玩家就别随便炼丹了。

3.2 素材不够

3.3 多人切脸

4 问题

4.1 报错

大部分是因为驱动太旧、显存太少。如CUDA driver version is insufficient for CUDA runtime versionCould not create cudnn handle,可以升级驱动解决。

4.2 视频抖动

4.3 视频闪烁

4.4 肤色不统一

4.5 皮肤太光滑


上一篇 下一篇

猜你喜欢

热点阅读