设为首页收藏本站

天空语文 如皋  九华 作文  教学

 找回密码
 我要加入(register注册)

QQ登录

只需一步,快速开始

快捷登录

最近看过此主题的会员

天空新人

77翔子

41BCDD

顾佳瑞七六阅读

小燕子

李白202091

蓝兰的花朵

嘿嘿嘿

joycy

颂颂.g

酷土土土

用户已注销

Jeremy

ʚ贴贴ɞ

果子黑

H·princess

李苏楠

方大金

依灵灵灵.

金川兰

lulululu

lisunan18795762

清风拂过

楠大人

王悦

朴弟

查看: 836|回复: 0
收起左侧

DeepFaceLab 3.0使用总结

  [复制链接] TA的其它主题
来自- 保留地址

Ta在天空论坛排行

积分:NO. 60 名

发帖:NO. 56 名

在线:NO. 65 名

永远爱你冰塘 发表于 2022-8-3 16:27:04 | 显示全部楼层 |阅读模式 来自- 保留地址
来自- 保留地址

加入天空更多精彩

您需要 登录 才可以下载或查看,没有帐号?我要加入(register注册)

x
DeepFaceLab 3.0使用总结赤色要塞满了关注
2022.04.23 01:30:51字数 4,141阅读 3,140



手头刚好有个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-downloadshttps://developer.nvidia.com/rdp/cudnn-archive # 复制到文件夹
2 使用2.0 准备视频
源视频的素材可得好好选取准备,越清晰越好!因为清晰的可以变模糊,但模糊的想要清晰可就难了。近景远景正脸侧脸死亡角度白天黑夜喜怒哀乐各种有代表性的,可以用格式工厂之类的进行截取、拼接、转化,最终存为data_src.mp4。
目标视频处理比较简单些,看作者的成品想法,最终存为data_dst.mp4。为了换脸丝滑,src和dst尽可能选择表情、角度、光源接近的,src的数据量可以多一些。
2.1 src切图
  • 点击运行2) 源视频转图片 extract images from video data_src.bat。
  • 输入自定义帧率,推荐值10,以减少重复图片。
  • 选择格式,有两种,PNG无损清晰,JPG文件小,要求不高的就用JPG吧。
    回车开始切图,40分钟的视频,不到1分钟就切完了,存在workspace\data_src根目录。这些图片只是为了后面切脸,所以切完脸可以删掉。甚至有的第三方切脸软件可以直接从视频开始,那就省略这一步了。
2.2 dst切图
  • 点击运行3) 目标视频转图片 extract images from video data_dst FULL FPS.bat。
  • 选择格式,比如JPG。
    回车开始切图,这个根目录下的图片千万别删除,没人脸也别删,因为每一张图最后都是用来合成视频的,所以不需要输入帧率。
2.3 src切脸
点击运行4) 提取源头像 data_src faceset extract.bat。会有参数需要设置,如图:



image.png


  • 选择脸型:有全脸(f)、整脸(wf)、头(head)。wf比f替换面积更大,覆盖额头和胡子,f只替换到眉毛上方一点点。一般选择默认的wf。
  • 设置最多识别几个人,如果视频大部分时间就1个人,那就选1;如果不少时候都是两人同框,且可能都需要,那就选2。
  • 设置图片大小:一般256够了,当然分辨率当然越高越好,但也耗资源。不过如果源视频质量不怎样,就算512也没啥用。
  • 图片质量就默认90。
  • 调试图片也没啥好看的,错切的到时候删掉就是。
设置完毕,回车运行脚本,3080切脸速度大概2张/秒。会生成到workspace\data_src\aligned目录。
如果希望加快切脸速度,可以网上找一些专业提脸软件,速度能提升10倍左右。
接下来是重要的整理工作:
推荐使用第三方软件MVE(Machine Video Editor)进行切图纠错、蒙板管理,很强大,有兴趣的自行研究。
  • 可用VisiPics软件去除掉无意义的重复的图。
  • 点击运行4.2) 源头像排序 data_src sort.bat将图片排序,一般选择5-颜色直方图排序。筛选下,删除掉模糊的、旋转的(基本是因为识别失败)、残缺的、有遮挡的、有黑边裁切的、刘海太大的、不相干人物的、以及光照差异大的。如果是普通的遮挡物且素材奇缺,可以保留着用作遮罩训练。
  • 识别不准的如果很珍贵,可以进行手删补切。就是删除掉debug目录里对应的错图,然后运行手动提取脚本data_src faceset extract MANUAL.bat再来一次,素材多就直接删了吧。
  • 还可以运行排序脚本按1-模糊程度排个序,然后删除,不过也有观点认为适当模糊的其实也可以留着训练,自行探索吧。
如果aligned里有多个人(初始会带着不同的文件名后缀,如_0、_1,一般按照同一张图里头像大小排序的),直接训练会产生混血儿。建议使用颜色直方图做排序,然后把不同的人归类到不同的文件夹备用,或者删除掉不需要换脸的人。这一步可配合人脸筛选工具进行,类似于iphone照片的人物识别归类,会方便许多。
https://github.com/MachineEditor/MachineVideoEditor
2.4 dst切脸
点击运行5) 目标头像提取 data_dst faceset extract.bat。参数如下:



image.png


切完后进行整理。
  • 建议用颜色直方图做排序,归类不同人到不同的文件夹备用,或删除掉不想换脸的,特别模糊看不清的。
  • 极限仰脸/侧脸之类的都看不清谁是谁的,可以干脆删掉不换了。还有一个做法是,复制一份到src的aligned目录用于自己训练自己。或者想办法去src里补充下极限角度素材。
  • 有遮挡的别删,因为也需要换脸。
  • 对于脸部轮廓识别错误的、图片旋转但脸部清晰的,别直接删!需要人工修改下。先在Debug目录删除掉对应的图片,然后运行data_dst extract faces MANUAL RE-EXTRACT DELETED RESULTS DEBUG.bat,会提示发现一张图片,等加载完毕后,移动和滚动鼠标来调整区域,单击鼠标进行解锁或锁定,最后回车确认,就会开始提取,debug目录和aligned都会生成更新图片。
记住一点,这个aligned目录下的所有人脸,最终都是要被src的人脸替换的。比如如果留着多个人,会产生多胞胎。
2.5 处理遮罩(可选)2.5.1 绘制
有时候dst图片脸上有遮挡物,如果不处理,到时候就直接把src整个糊上去。那会产生奇怪的效果,比如脸上没眼镜却有两个眼镜腿。
  • 运行data_dst mask for XSeg trainer - edit.bat,会跳出界面绘制dst遮罩,就是框框抠抠,这是个细活儿,挺累的。
  • 运行train.bat训练遮罩,设置脸型和batch_size,训练个几十上百万,回车结束。
  • XSeg遮罩训练素材是不区分是src和dst。
2.5.2 使用Xseg模型(推荐)
网上有一些现成的遮罩模型,注意这跟换脸模型不一样,虽然也是放到model目录。有两种使用方式:
  • 训练前先推理遮罩。运行data_src/dst trained mask - apply.bat,将遮罩写入图片并学习非遮罩区域。
  • (推荐)合成merge时,在交互窗口,按X,实时选择遮罩并预览,新手就用这个吧,别训练了,效果略差,但也差不到哪里去。
在别的基础上训练,比直接拿来用好一些。是否重新训练
Xseg模型可复用,手工画完的遮罩图可运行data_dst mask for XSeg trainer - fetch.bat搜集起来,增量训练。不过新手用不到。
2.6 训练
入门或者配置低可使用轻量级的train Quick96.bat,不需要设置参数。这里重点说下重量级的SAEHD。
首先,新手务必找个预训练模型(仙丹)来继续训练,会大大减少时间、提升效果!!!
使用仙丹后再训个几万次迭代吧,后期打开LRD和GAN。使用仙丹,分辨率没法改。
  • batch_size默认可能是4,如果是沿用已有模型,启动训练后2秒内回车,可以修改batch_size等,比如16,单次迭代时间应该会变长。
  • 模型架构:DF五官结构保留的更像,LIAE光影处理的更好,-u增加人脸相似度,-d分辨率不错,推荐LIAE。
  • 几个层的宽度,根据配置选择,比如中间瓶颈层为256、编码解码层为64,而遮罩层一般是三分之一解码层宽度。
  • 如果有闭眼、张嘴的素材,可以开启Eyes and mouth priority。
  • 训练没进步了可以开启学习率丢弃(Use learning rate dropout)。
  • Enable random warp of samples可以前期开启,提高训练难度,后期关闭。
  • 配置高可以开一点GAN power ,比如0.1。GAN dimensions大概16。
  • 变色处理:color transfer选RCT和LCT,可弥补光影变化不足,当然最好是收集更多全角度不同光影下的SRC素材。
  • Enable gradient clipping梯度裁剪必须开启!
  • src/dst loss都刷进0.2就差不多了,预览图蓝色和黄色分别代表src和dst。
  • 或者,预览界面第5列足够清晰,且表情接近第4列,就可以回车结束了。
  • masked_training: True。意思是只学习蒙板内的?待确认。
喜欢src的脸型,就打开true_face_power,否则打开face_style_power。不要同时开,一般是0.001。
最后,来自dfldata网站的一组从0开始训练的推荐参数:
# 先开这组参数训练10-60Wface type : WFrandom_flip : off # 防止左右脸不一样的翻来翻去random warp:yadabelief : onEyes and mouth priority : oncolor transfer mode: lct# 再开这个训练10-30W,开了就别关了!learning rate drop:y# 再关闭随机扭曲训练10-30Wrandom warp:n# 最后开GAN训练10-30WGAN power: 0.1 # 此时loss比较低了,比如0.1,打开前可以备份下,容易崩
训练效果差一般就是因为src素材缺乏,没好料。
2.7 应用模型
本步骤将图片换脸,以前老版本叫convert吧。
  • 入门可使用merge Quick96.bat,另有SAEHD(高质量)、AMP(实时换脸,用于DeepFaceLive)。
  • 选择交互模式,输入法切换成英文;
  • 线程数根据CPU确定;
  • 显示快捷键后,按Tab切换合成预览界面/帮助;
  • 快捷键修改调整,然后可以按shift+?,将这组参数配置应用到剩余所有帧,再按shift+>,自动合成剩余所有帧,会出现沙漏。过程中可以暂停进行调整,然后继续应用、合成。
  • 按住shift调整,参数每次±5。
各种参数自行试一试,多按一按,就找到感觉了!!!
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 遮罩与颜色控制区
  • Z 直方图匹配对遮罩区域起效
  • X 遮罩模式,记得是prd-dst效果比较好,多试试
    老版本的还有:
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。
  • C 颜色转化模式
  • V 查看遮罩范围
2.8 合成视频
设置下码率即可,比如3。
3 经验3.1 复用模型
也就是使用预训练模型(灵丹)。先将其复制到model文件夹,然后src和dst放自己想要换脸的素材,开启训练后2秒钟内按回车,最后把“是否启用预训练模式 use pretrain mode”改为N。注意,这选项千万不需要Y,否则会调用内置的外国人数据进行训练。然后训练,基本一开始就能看到人影。如果看不到,就按回车结束训练,把预训练模型的.npy文件复制替换到模型文件夹中,重来一次。
预训练模型跟正式训练模型本质上都是模型,只不过预训模型使用了大量素材进行炼丹,学会了很多绘画技法。在其基础上再去专门学习画某个人,速度就快了。也有做法将正训素材也加到预训素材里一起炼丹,普通玩家就别随便炼丹了。
3.2 素材不够
  • DF架构,src和dst素材互换进行训练,学习到dst的极限角度。
3.3 多人切脸
  • 为了避免多人影响切脸,可以用PR蒙板圈出dst脸,并且路径跟踪脸部,然后导出data_dst.mp4,再切图切脸,速度快很多。然后把data_dst根目录的切图给删掉,将没有蒙板的原始视频拷贝成data_dst.mp4,切图即可,不要再切脸了!
  • 合成换脸时,src dst的aligned目录只能有一个人!否则会出现双胞胎、混血儿。先把闲杂人先移走,换好一对脸,把帧图保存下来继续换下一个,最后合成视频。
  • 最好一人一丹,更好是一对一丹,费点事。
4 问题4.1 报错
大部分是因为驱动太旧、显存太少。如CUDA driver version is insufficient for CUDA runtime version,Could not create cudnn handle,可以升级驱动解决。
4.2 视频抖动
  • 可能是dst切脸轮廓不统一,参考之前的手删补切解决。
  • 侵蚀过大,调到比如50试试。
  • 打开颜色转移CT,比如lct。
  • 试试增加训练时间,或者增加LRD的时间,以稳定像素映射。
4.3 视频闪烁
  • 有可能是dst漏切脸了,导致视频在src和dst两张脸间闪烁,可以去aligned目录检查一下并补充。
  • 视dst切脸的准确程度,也可能造成局部闪烁,手删补切吧。
  • 还可能是dst光影丰富,而src光影不足,可以换成LIAE架构,或者想办法补充src素材吧。
4.4 肤色不统一
  • 训练时间不够
  • 缺少src素材
  • 建议开启颜色转移CT,不停按C看看效果
  • 软件后期
4.5 皮肤太光滑
  • 训练充分后,关闭随机扭曲random warp,开启GAN0.01-0.1,提高清晰度
  • 合成时再加超精细和锐化(box),按T加大超分辨率

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 天空金币 , 目前已有0人回答

最近访客

谁来看过你
此贴被TA们浏览了836次
来自- 保留地址
回复
天空论坛,有你有我,明天更好!
来自- 保留地址
点评回复 来自- 保留地址

使用道具 举报 私信管理员来自- 保留地址

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

×天空论坛发帖友情提示:
1、注册用户在本论坛发表、转载的任何作品仅代表其个人观点,不代表本论坛认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本论坛保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

QQ|手机版|我们的天空 ( 苏ICP备18048761号 ) |苏公网安备32068202000215号 |网站地图

GMT+8, 2024-11-5 18:53 , Processed in 0.291120 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表