工欲善其事必先利其器,想要玩转换脸,硬件,软件,系统必须跟上!先从准备工作说起。
硬件
换脸软件出来也好几年了,但是目前依旧对硬件依赖比较大。想要在自己电脑上跑换脸软件就必须要一张显卡,想要轻松点,就必须要一张好显卡(今年搞一张好显卡不容易)。 显卡主要分N卡(英伟达)和A卡(AMD),一般来说是推荐N卡,N卡的支持会更好,使用场景更广泛。 在DeepFaceLab的历史版本中,曾经有支持A卡的opencl版本,中途放弃了对A卡的支持,2021终于有了支持A卡的DirectX12版本。总的来说,买一张中上水平的N卡,肯定可以玩,如果是A卡就需要确认支持DirectX12。
常见的N卡有10系列,20系列,30系列。还有丽台,泰坦,特斯拉,安倍。几乎所有显存大于2G的N卡都支持。 rtx3060 12G 因为显存大,对于跑模型有优势,性价比较高。所有60结尾的卡,都是性价比比较高,功耗比较低,显存还可以。而50结尾的卡么….。如果你只在乎性能,那么可以上目前最强的游戏卡RTX3090,指导价一万出头,市场价可能两万多。除了3090,上一代的2080ti,和上上代的1080ti 也是一个不错的选择,这两张卡显存比较给力,速度也比较快,提取头像比3000系列还有优势。
除了显卡之外,其实CPU最好也跟上。显卡特别快,处理器跟不上,整体速度就会下来。显卡和cpu的比较强的情况下,电源供电一定要有保障。电源不够的话,烧卡不至于,但是可能会重启,不稳定。
关于硬盘,使用普通HDD完全没有问题,用SSD的话在某些情况下会更好。比如加载,写入的时候,还有大量素材图片拷贝,粘贴,删除的时候。
总而言之,想要玩基于深度学习的软件,都需要中高端配置。其中显卡和显存是核心指标。
软件
软件方面,DeepFaceLab相比之前的一些换脸软件,最大的优势就是“集成” 。如果你使用DeepFaceLab,千万不要去装什么CUDA,CUDN,除非你知道自己在干什么。
软件方面主要是注意版本的问题。
DeepFaceLab最早的版本可以追溯到2018年,到目前为止经历了1.0和2.0两个大版更新,现在推荐2.0版,无论是模型还是训练或是合成效果都有了很大的提升。选择版本需要注意几个点。
■A卡还是N卡? A卡只能用2019年opencl版和2021的DirectX12版。
■RTX2080ti:针对2080ti以及以下版本
■RTX3000:针对3000系列显卡
■DirectX12:针对支持DirectX12
需要注意的是,2080ti版肯定不能用在30系列显卡上,而rtx3000可以支持老显卡。DirectX12并不针对A卡或者N卡,而是针对支持DirectX12的显卡设备。言下之意不支持DirectX12的显卡,不管你姓黄还是姓苏,都没用。大部分新卡都支持!
软件下载:
百度网盘链接: 点我下载 提取码:2nnn (建议保存下来,会持续更新)
系统
从大的的范畴来说,除了MacOS之外,window和linux全部可以使用。
Window方面,主要是支持win10和win7。但是随着30系列新显卡的推出,win7不推荐了。使用30系列显卡的朋友需确保三件事情:
■操作系统版本Win10 20h2+
■驱动去官方下载更新到最新
■启用操作系统的GPU加速计划
驱动不够新,提取这一步就过不了。
系统不够新,没有GPU加速选项
没有GPU加速选项,可能导致训练卡死。
新版驱动似乎对GPU加速没有要求,但是保险起见,还是先把上面几点做好。
最后提示一下,XP和32位系统请自觉回避。
驱动
DeepFaceLab唯一的依赖就是驱动。驱动最大的问题就是不够新,因为DFL一直在更新,往往都是针对最新的版本。所以驱动一定要跟上。用鲁大师和驱动精灵的需要注意一下,这些第三方软件安装的驱动有可能不是最新的,会出现问题,推荐用官方的Geforce Experience更新升级驱动。
deepfacelab新手教程讲过了安装DeepFaceLab所需要的软硬件环境。正常来说就可以进入安装,实操的阶段了。但是,我觉得安装之前还是要先结合workspace来讲一些概念,这样用起来会更加顺畅。workspace这个是软件自带的目录,安装完之后就已经存在了。
工作目录里都有啥?
deepfacelab新手教程workspace主要包含如下文件:
■data_dst(目标素材)
■data_src (源素材)
■model (模型)
■data_dst.mp4 (目标视频)
■data_src.mp4 (源视频)
DeepFaceLab为了简化操作和规范素材名称,采用惯例的方式。就是把所有素材统一放workspace里面,而且统一命名。所有文件夹,文件名都不能乱改。
什么是视频换脸?
所谓视频换脸就是把一个人的脸换到另一个人的脑袋上并保持表情神态的同步。比如将张三的脸换到李四身上。源素材取自张三,我们需要换脸的对象是李四。张三提供脸,李四提供身体,最后的结果是李四看起来变成了张三。而为了实现换脸这个目标我们需要收集两个人的视频。
张三的视频叫data_src.mp4,我们称为源视频,李四的视频叫data_dst.mp4,我们称为目标视频。
有了视频之后我们需要将视频里的人脸提取出来,让AI去分析学习人脸特征。
data_dst 和data_src 文件夹里放的就是目标视频和源视频中提取出来的图片和人脸。
图片是指把视频转换成一张一张的图片,人脸是指从图片中抠出人脸部分并摆端正,最后放在aligned文件夹里面。在抠图的同时还会用一些点标出人脸的轮廓放在debug文件里面。
模型是什么?
DeepFaceLab换脸看是有很多步骤,其实就两大步骤,一个是训练模型,一个是应用模型。model文件夹里面放的就是模型文件,是换脸软件的核心所在。
那么模型是个啥东西? 有人可能会理解为模板,这种比喻并不精确,但是有那么一点意思。模板只能简单的复刻,但是模型可以自动匹配各种表情,要智能一些。
其实在深度学习里面模型这个概念无处不在,我们常用的基于深度学的一些应用,比如美颜,贴图,翻译,语音识别,语音合成,人脸识别,去码,脱衣,背后都有模型。
模型就像是一个学富五车或者特别擅长某种技能的人。所谓训练模型,就像是训练一个小孩子,让他学习增加某一方的能力。
那些“绘画”能力特别强的机器视觉模型,我们可以把它比喻成一个画师。没学习之前,他什么不会。你给他看了很多法外狂徒的视频,他不断临摹之后,就掌握了画出张三的能力。因为他的大脑就是为绘画而生,所以他闭着眼睛也能画出张三,更厉害的是,给他一张李四的脸他也能画出和李四表情一样的张三。当然,要变得这么强,除了天赋之外,学习时间肯定少不了,而且得多看高清视频,记住各种细节才可以。光记住还不行,还得有一定的联想能力。
训练模型也常常被称为“炼丹”,而模型就是仙丹。要搞个仙丹肯定不容易是吧。比如,太上老君练齐天大圣,练了那么多太天,一不小心还是没练成。练好一颗丹,需要很多条件。
■首先,得有好的原材料(人脸素材)。
■其次,得有好的丹炉(电脑硬件显卡和CPU)
■再次,得掌握好火候(参数)
■最后,八八六十四一天不能少。(时间)
初学者,肯定要反复尝试,才能找到最好的方式。
不同仙丹,有不同的效果。有些包治百病(通用模型),有些只有一个功效比如长生不老(专用模型)
说回画师,有的画师稍作学习什么都能画(通用模型),有的画师只会画一个人(专用模型)
名字不能随便改
如果不懂workspace的命名规则,可能会出现一些问题。一定记住不要少文件,也不要改文件名。比如提取src的时候一定要有data_src.mp4这个视频,其他名字没用。合成视频的时候一定要有dat_dst.mp4这个视频,没有那就直接报错。比如你自己的视频原先叫“我很帅.mp4” ,你想换脸,就必须把这句话改掉,改成data_src.mp4 。不管多帅都得按规矩来。
如何用图片来换脸?
虽然一直建议用视频素材来换脸,但是依旧有很多人问到能不能用图片换脸。能,是肯定能,但是你不要希望在DFL上用一张图片来换出好的效果。用图片换脸,只需要将完整的图片直接放在data_src文件里面,然后用提取脚本提取人脸即可,其他操作和视频换脸一模一样。
概念这个东西吧,理解了很有用,不理解好像也没啥用。不理解也没关系,只要记住workspace这个文件夹,所有相关的素材都放在里面。下一篇,我们就“不讲道理”了,直接一步一步来操作。
对于刚入门的朋友来说,你给他直接上心法肯定没啥有,最直接的还是教招式。实操,才有感觉嘛!DeepFaceLab虽然版本一直在升级,但是整体步骤和执行逻辑并没有太大变化。所以老教程现在一样能用了。但是为了教程的完整性,我就全部重写一遍,稍作改进。
安装软件
安装过程其实非常简单。一般发布的软件包都是.exe结尾,本质上其实就是一个用7z压缩的压缩包而已。大家可以通过我分享的链接,找到适合自己显卡的版本,然后解压安装即可!
安装的时候需要注意几个点。
第一:杀毒软件可能会有木马警报,添加信任就好。杀毒软件可能会无警报删文件,导致执行的时候出现未知错误。这种情况可以先退杀毒软件,安装完了就不受影响。
第二:安装的时候记得选好路径
deepfacelab新手教程路径并没有硬性要求,默认是解压到安装包所在路径。建议放在C盘外的其他盘的根目录。文件路径不要有中文,避免各种莫名其妙的问题,如上图,最好放到磁盘根目录,方便查找使用。
第三:输入密码
deepfacelab新手教程我发布的软件或教程如果有密码,就都是395267954。不管哪个版本直接输入就好了。
deepfacelab新手教程解压后就是如上图的样子。里面会有_internal和workplace文件夹。前者放的是源代码和软件相关的内容,后者是工作目录。除此之外还有一堆.bat结尾的文件。可以把这些称为脚本或者批处理文件。里面是一行行的DOS命令。
批处理文件打开方式和EXE一模一样,直接双击打开!每一个批处理文件都干一件事情,我们要做的就是按一定的顺序点击这些文件,就能完成换脸。是不是挺简单?
执行步骤
DFL换脸的思路是,想将视频转换成图,从图片中提取人脸,从人脸中学习特征。然后应用模型,先对图片进行换脸,然后把图片合成视频,同时带上原视频的音轨。
具体来说可以分为如下几步:
1.src视频分解图像
2.dst视频分解图像
3.src提取面部
4.dst提取面部
5.训练模型
6.应用模型
7.合成视频
批处理文件步骤依次如下:
2) src 视频提取图像extract images fromvideo data_src.bat
3) dst 视频提取图像(全帧率)extract imagesfrom video data_dst FULL FPS.bat
4) src 自动提取面部data_src facesetextract.bat
5) dst 自动提取面部data_dst facesetextract.bat
6) 训练SAEHD train SAEHD.bat
7) 应用SAEHD merge SAEHD.bat
8) 合成 MP4 视频merged to mp4.bat
其实看着很复杂,但真正的操作就几个步骤,下面我就按照顺序带着大家操作一边软件,这里只讲SEAHD模型的操作,Q96和AMP大同小异,模型参数这次也不做过多讲解,后期的教程会单独写一篇关于参数的介绍。关于操作,这里做一个重点提示:遇事不决按回车!
Step1:src视频 分解图像
双击批处理文件 2) src 视频提取图像 extract images from video data_src.bat
deepfacelab新手教程跳出黑色窗口,默认回车,然后输入jpg回车,就会自动开始将视频分解为图片。
确认帧率:视频有一个指标叫帧率,常见有24,30,60等,代表一秒钟有几张。第一个参数输入10指的是一秒钟只取10张;不输入直接回车,默认帧率是30就取30张。因为很多影视剧画面相对固定,没必要全部取,否则后面会浪费大量提取时间,而且模型训练压力也会加大。这里根据自己的需求选择,帧数越高,画面越流畅,文件体积就越大。
输出图片格式: 图片格式,主要是jpg和png。png是无损格式,但是JPG能在保证画质的情况下减少巨量的空间。所以如果不是要求特别变态,一般都用jpg。这样可以减少空间,节省时间。
deepfacelab新手教程正常情况下,这个步骤执行非常快,出现“搞定/done” 的字样就是执行完成了。完成后,workplace/data_src下面就会出现很多图片,这就是从视频里分解出来的图片。文件名一般为0000x.jpg,其实这里面命名可以随意,没有强制要求。这里还有一个aligned的文件夹,是为后面步骤准备的。
Step2:dst视频 分解图像
双击批处理文件 3) dst 视频提取图像(全帧率)extract images from video data_dst FULL FPS.bat
deepfacelab新手教程和上面的步骤类似,这次处理的是dst视频。因为dst必须一帧不落,所以没有FPS选项,只有图片格式这一个选项。
deepfacelab新手教程处理完后的图片保存在workspace/data_dst里面。
Step3:src 提取面部
双击批处理文件 4) src 自动提取面部 data_src faceset extract.bat
deepfacelab新手教程这一步的作用是提取src素材图片中的人脸。这里有六个参数,一般只需一路回车即可。第一次使用需要缓存GPU内核,需要稍微等一等。开始提取后底部有显示进度,当进度到100%,会显示图片数量和提取到的人脸数量,并出现“搞定!!!” 就证明已经出来成功并且处理完成。
deepfacelab新手教程处理完成后,头像保存在data_src/aligned下面。
不少人在这个环节会遇到问题。
常见问题是:
驱动不够新,去官网下载更新到最新版本即可。
软件不够新,加QQ 395267954获取新版
显卡软件不匹配,N卡分3系和非3系版本,3系显卡(比如RTX3080,RTX3090等)用DFL_RTX3000_series.exe这个版本,非3系(如RTX2060,GTX1060等)用DFL_UPTO_RTX2080Ti.exe这个版本。A卡和老显卡用DFL_DirectX12.exe版本。
提取完之后,如果src素材比较复杂,比如侧脸多,仰头低头等复杂的角度,视频中有多个人脸等,自动切脸就会出现切错的情况。这个时候就需要做一些筛选。这个筛选可以写一篇很长的文章。这里简要说一下。主要是把一些不需要的素材删除:
■很模糊的可以直接删除
■不是目标人物的可以直接删除
■图片残缺的删除
■脸部有遮挡的删除
■脸部光照差异特别大的删除
…..
Step4:dst 提取面部
双击批处理文件 5) dst 自动提取面部 data_dst faceset extract.bat
deepfacelab新手教程这一步的作用是提取dst素材图片中的人脸。和上一步非常类似,这里就是少了一个“保存调试图片”的参数。其实也不是少了,而是默认就执行了。
deepfacelab新手教程提取的头像保存在data_dst/aligned的文件夹里。
提取完之后也要对素材进行一个筛选。
把不是目标人物的素材删掉,把头像旋转的图片删掉。一般来说文件名后缀_1的都可以删掉。dst的删除核心原则是要换的人脸留下,不要换的统统删掉。
deepfacelab新手教程这一步默认就生成了debug的文件。
打开aligned_debug文件及里的其中一张图片,可以看到人脸上有三种颜色的线框。
deepfacelab新手教程红色就是头像截取的区域,蓝色是面部区域,绿色是人脸轮廓,以及五官定位的点。其实就是人脸的landmark。通过debug你可以直观的看到人脸识别算法识别了哪些区域,有没有识别正确。如果这个区域不在人脸上或者出现了乱七八糟的交织线,就说明这个脸部提取错误,这个时候就需要手动提取了。新手暂时不讲如何手动提取,后期的教程再做介绍。
Step5:训练模型
这里简单介绍下目前的三种模型:一个是Q96适合低配电脑玩的轻量模型,优点是对显卡要求不高,比如2G显存的老卡就可以玩。缺点是像素太低,没有高级参数选项,合成效果差,可玩性低。
另一种是AMP模型,这种模型刚出来不久,对素材要求高,训练出来效果逼真,但新手操作复杂,不建议新手玩这个模型。
最后一种就是今天我们要介绍的SAEHD模型,这个模型也是使用范围最广,运用最成熟的一种模型。可以灵活调整各种模型的参数,以达到最佳的训练效果。那么我们开始讲SAEHD模型的训练。
双击批处理文件 6) 训练 SAEHD train SAEHD.bat
deepfacelab新手教程这一步是训练模型,所有步骤中最重要,最难,也是最耗时间的部分。
SAEHD模型推荐显卡显存在4G+,这里就以分辨率为128,其他参数默认的模型参数来演示,建议新手也跟我使用一样的参数来练手,后期我会单独做一个参数讲解的教程。
如下图,第一次运行会提示创建新模型,这里随便输入模型名称,比如我们这里输入128 你也可以默认回车,回车默认创建名为 new 的模型文件名。一路回车即可!
deepfacelab新手教程所有参数设置完成后,程序就会自动加载素材,并显示模型的参数,如下图。
deepfacelab新手教程之后底部会有一行跳动的数字,然后会跳出一个预览窗口。如下图
deepfacelab新手教程先来说说底部的数字,总共五列,分别代表:模型保存时间,迭代次数,单次迭代时间,src损失,dst损失。理论上说,迭代次数是越多越好,损失是越低越好,零就是无损了嘛~不过,不可能达到,一般推荐数值在0.1以下!
这里补充一点,win10新增了显卡加速功能,开启能大大提高训练速度,具体开启方法为:设置-系统-显示-图形设置-硬件GPU加速计划-打开
下面来说说预览窗口
deepfacelab新手教程预览窗口包含操作提示、loss曲线,人脸区域。人脸区域总共五列。第一列是src,第三列是dst。第二,四,五列为算法生成列,刚开始是纯色,啥头像都没有。随着训练的进行,会慢慢出现轮廓,鼻子,眼睛,然后慢慢变清晰。
训练的过程就是等待这几列变清晰的过程,最后一列就是换脸后的效果。
这个过程,就是训练模型,我们俗称“炼丹”。根据显卡的性能,这个过程可能持续十天半个月,甚至是一个月或者更长的时间。但是我们可以使用训练好的模型,如下图对比,我们使用训练好的模型,第2,4,5这几列是不是立马变清晰了?使用模型就省去了大量的时间去从0训练模型,省去了训练模型的这十天半个月的时间。所以,如果想快速合成或者不想浪费时间去训练模型的小伙伴,可以联系我获取训练好的模型,快速合成。
deepfacelab新手教程deepfacelab新手教程不管是使用模型还是自己训练模型,通过预览图来判断就更加直观了,如上图。只要观察第二列是否无限接近第一列,第四列是否无限接近第三列。第五列的表情是否无限接近第四列。所有列的图片是否都足够清晰。如果是的,且损失值在0.1左右 ,那么就可以按回车或者直接关闭窗口,进入下一步。
正常情况下模型会过几十分钟保存一次,也可以手动按S直接保存。关闭后,可以重新点击批处理文件继续训练,不用担心丢失进度。当然,要防止意外关机和重启,可能会损坏模型。
Step6:应用模型
双击批处理文件 7) 应用 SAEHD merge SAEHD.bat
deepfacelab新手教程这个步骤要做的是将图片进行换脸。应用SAEHD模型也很简单。启动直接按回车选中或者输入对应的数字选中上一步已经训练好的模型。然后软件就会加载模型并显示模型参数。
然后需要配置两个参数:
一个是是否启用交互模式,直接回车,默认启用。
一个是线程数量,输入小于等于8的数字,回车。注意,如果你核心特别多,默认回车会报错的!
稍等一会儿会弹出帮助界面。
deepfacelab新手教程这个界面并没有任何功能上的用处,只是显示了这个环节可以使用的快捷键。每个快捷键旁边都有中文注释,可以看个大概,具体的参数含义在后期的教程会做详细的介绍。
点击这个界面,确保输入法为英文,按下键盘上的Tab,就可以进入合成预览界面。
deepfacelab新手教程进来后,默认情况下都会有人皮面具的感觉,这是正常现象。因为我们参数还没有调整!就这个素材来说,只要调整W/S,E/D 快捷键即可(W和S键是调节遮罩侵蚀的加减;E和D键是调节遮罩羽化效果的加减),新手建议先学习这几个参数,基本也够用了。调整后的效果如下:
deepfacelab新手教程调整后可以试试查看预览效果,觉得差不多可以了,按下快捷键shift+?(向后应用到所有帧) 然后再按下shift+>(自动合成) 就开始自动合成了。也可以通过键盘上的< 和 >进行手动切换,查看前后帧的合成效果。
deepfacelab新手教程黑色窗口会显示所有的合成参数,这里的参数后期进阶教程也会详细介绍。等到进度到了100%完成之后,手动关闭窗口即可。
deepfacelab新手教程此时,在data_dst下面已经多了两个文件,一个是merged,一个是merged_mask
deepfacelab新手教程进入merged可以看到很多图,这些图片中的人脸已经完全换脸。
deepfacelab新手教程进入merged_mask可以看到一些黑色的图片,中间有一个白色的区域。这些文件是为了方便后期制作。我们单纯使用DFL的不用太关心。
Step7:合成视频
双击批处理文件 8) 合成 MP4 视频 merged to mp4.bat
deepfacelab新手教程这个步骤是将已经换好脸的图片转换成视频,并且会自动读取源视频的配置信息,包括帧率,音轨这些。这个环节只有一个输出码率的参数,常规来说4就够了,你也可以默认16。
除了合成mp4之外,还可以根据自己的需求合成无损视频,AVI ,MOV等格式,便于后期处理。
deepfacelab新手教程执行完成后,workspace下面多了两个文件,分别是result.mp4和 result_mask.mp4 。result.mp4就是我们需要的最终视频,后者是遮罩视频,供后期使用。
deepfacelab新手教程双击打开视频,就可以看到最终效果了。因为我只是为了做教程,所以模型没有充分的训练,合成也只是随便调了几个参数,并非最终的完美效果,你可以根据自己的需要,继续训练模型以达到最好的效果。
步骤其实不难,细节很多。有些是可以直接照搬别人经验的。有些需要自己不断摸索。这并不是什么傻瓜软件,要做出好的效果肯定是要花时间研究。就像即便送你PS,PR,你没有一定的学习积累不可能做出酷炫的效果。但是我可以保证,市面上几乎所有神乎其技的换脸视频都是基于DFL,有些可能专门准备了道具场景并使用了后期制作。新手不要急于求成,一步步来,先学习软件操作,再慢慢摸索,不要上来就换,基础的知识都不学习,一步一个脚印,相信你也很快能做出完美的作品!
本图文教程基于TONY教程修改和完善!
暂无评论内容