DeepFaceLab相关文章
一:《简单介绍DeepFaceLab(DeepFake)的使用以及容易被忽略的事项》
二:《继续聊聊DeepFaceLab(DeepFake)不断演进的2.0版本》
三:《如何翻译DeepFaceLab(DeepFake)的交互式合成器》
四:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(一)》
五:《想要提高DeepFaceLab(DeepFake)质量的注意事项和技巧(二)》
六:《友情提示DeepFaceLab(DeepFake)目前与RTX3080和3090的兼容问题》
七:《高效使用DeepFaceLab(DeepFake)提高速度和质量的一些方法》
八:《支持DX12的DeepFaceLab(DeepFake)新版本除了CUDA也可以用A卡啦》
九:《简单尝试DeepFaceLab(DeepFake)的新AMP模型》
十:《非常规的DeepFaceLab(DeepFake)小花招和注意事项》
随着作者小伙子伊佩罗夫的论文发表:《DeepFaceLab: A simple, flexible and extensible face swapping framework》,项目更新明显放缓,几个月只更新了一个整除的修正(/改为//,蛤?)。
目前整个效率和结果的准确性(真实性)相比我上次写的文章那个版本又上升了不少,当然主要是因为我很久没有关注,作者7月之前的版本更新还是挺快的。
我试了一下还是蛮不错的,因为训练用的时间不太长,例如下:
我老婆拯救世界第二季+四川话修改翻译,又又又重制版本:)
一起唱生日快乐歌吧!
除了增加选项,提高分辨率,丰富模型以外。
最大的修改就是xseg,区别与以前的fanseg遮罩处理方式(2020年3月份就有了)。
大概意思就是,目标脸部有遮挡的时候,以前需要人工每一帧去画,避开遮挡物。
但现在只需要画一些关键帧,变化的帧,其它的交给机器学习。
比如你想把自己的脸换到某个视频的歌星身上,那段视频里他(她)唱歌时经常脸可识别但被麦克风档了一小部分。如果是以前的fanseg手动画,则需要画全部麦克风遮挡的帧(纳尼!),而现在只需要手动画一小部分不同类型的遮挡方式,其它的机器学习呗。
当然源可以和目标一样的处理,只不过何必呢——源脸是自己的,当然能找一套相对高质量各种角度的无遮挡素材。
主要命令就是下面这些(源和目标是一样的,我去掉了)
5.XSeg) data_dst mask - edit.bat
5.XSeg) data_dst mask - fetch.bat
5.XSeg) data_dst mask - remove.bat
5.XSeg) data_dst trained mask - apply.bat
5.XSeg) data_dst trained mask - remove.bat
5.XSeg) train.bat
这个脚本就是编辑目标脸部遮罩的,怎么用呢,我懒了直接翻译一下作者原话把,这一步需要稍微有点耐心,毕竟能力越强责任越大……啊不,画得越多质量越好……:
编辑器就是下面这个界面:
每个按钮鼠标移上去都有中文解析,和PS的选取差不多。
右边三种颜色仅仅是为了方便查看,比如要是给环视的脸用红色显示遮罩,就是个大灾难啊……
继续机翻:
PS:训练的时候好扭曲啊,这里我只是举个例子,不能再跑了,笔记本要炸了。。。
PS:训练完遮罩后,workspace/model/ 目录下就会有xseg的几个文件:
XSeg_256.npy
XSeg_256_opt.npy
XSeg_data.dat
XSeg_default_options.dat
XSeg_summary.txt
在交互式合成器里面,选遮罩模式
这样就可以用学习到的遮罩了。
mask_mode: XSeg-dst
我记得之前好像说只能用整个脸的模式(Whole Face),
不过测试全脸(Full Face)也可以用,也许是版本更新了。
我测试的时候那些帧的cmd记录参数如下:
效果脑部,呃,我就不截图了。
MergerConfig 00001.jpg:
Mode: seamless
mask_mode: XSeg-dst
erode_mask_modifier: 45
blur_mask_modifier: 90
motion_blur_power: 0
output_face_scale: 0
color_transfer_mode: lct
sharpen_mode : gaussian
blursharpen_amount : 1
super_resolution_power: 0
image_denoise_power: 0
bicubic_degrade_power: 0
color_degrade_power: 20
================
还有几个脚本,有其它用途,
比如导出啊,应用到学习过程中,我也没用过,懒得测试和写了,有需求的可以自己研究一下。
从data_dst.mp4提取了目标帧后,一定要降噪。
即使用了合适的参数,学习了脸部小细节,但学习后的脸还是太平滑了。
如果背景帧有电影噪点而脸没有,就显得失真。
也就是:3) extract images from video data_dst FULL FPS.bat
之后要:3.optional) denoise data_dst images.bat
那么电影效果怎么恢复呢……
请自己用视频处理软件吧,AE,PR,Vegas……自己模拟个电影的噪点效果加上去就OK了。
如果源是同一个人,那么训练结果(模型)是可以重复利用的,比从0开始训练可以减少特别多的时间。
假设你把自己的脸部换到了神奇女侠身上,已经训练了100W次,效果不错了。
现在你又想把自己的脸换到绯红女巫身上,那么请直接用神奇女侠那个100W次的模型,可能几分钟就能出比较初步的结果,几小时就完成了呢。如果你从0开始重新训练,可能又得好几天。
100W次只是比分,你可以继续训练300W,500W次。仅仅是时效比会越来越低而已。
这个居然忘了,从没说过……
相当于本身“预训练”的作用。
之前我自以为quick96仅仅是分辨率低,但其实因为分辨率低,会导致模型学习出现偏差。比如闪烁,脸方向的小偏差,看起来会很失真的。
所以尽量还是用自己计算机能承受的较高的模型,参数和分辨率吧。
我有个朋友,计算机配置很不错,2080TI级别的。
但并不是码农程序员,怎么才能给他讲清楚DeepFaceLab咋用呢……
我感觉教程够用,他还是不会,好苦恼。