更多
标题摘要内容

DeepFaceLab使用说明以及中英文对照详解

来源: | 作者:www.tallgu.com | 发布时间: 2023-05-03 | 151 次浏览 | 分享到:

一、什么是deepfacelab2.0
deepfacelab是目前使用人数最多,效果最好的AI换脸软件

1.0和2.0有什么区别? DFL 2.0有什么新功能?

  • DFL 2.0的核心与1.0非常相似,但是对它进行了重写和优化,以使其运行速度更快并提供更好的质量。

  • 新模型(SAEHD系列和Quick96)与以前的版本不兼容。

  • 但是,在高版本的DFL 1.0中提取的数据集仍可以在2.0中使用。



二、软件下载
官方代码仓库(适合源码大佬研究):https://github.com/iperov/DeepFaceLab软件下载:https://dfldata.xyz/forum.php?mo ... &extra=page=1


三、新手教程
【新手教程点我】


四、名词解释

逛论坛时,大家经常说着一些炼丹、神丹、预训练等词,听得萌新一愣一愣,在此解释下

:AI换脸模型
炼丹:训练模型的过程
筑基丹、神丹:别人训练好的模型,拿过来用自己素材重新训练下很快就能出效果
预训练:在训练自己特定素材前,用其他角度丰富的人脸数据给模型预热的过程
炉子:显卡




--------------------DFL2.0 官方使用手册翻译:------------------------


2.0主要新增功能():

  • 2个模型大类: SAEHD 和 Quick 96

  • 支持多GPU

  • 比DFL 1.0 更快的提脸、训练、合成速度

  • 提供人脸素材加强脚本

  • 训练支持GAN(一种AI技术),以还原更多细节

  • 新增TrueFace参数 - (只支持 DF 模型架构) - 让SRC和DST表情更相似,减少死鱼脸

  • 合成阶段附带输出遮罩图片, 方便后期导入其他软件编辑

  • 带交互界面的合成脚本(1.0的合成需要手动填参数,非常反人类,这个2.0做的很人性化)

  • 提脸使用s3fd算法,并支持手动模式

  • 模型分辨率可选择为任意16或32倍数

  • 多种模型架构 (两种核心框架DF, LIAE,以及 -U, -D ,-UD 三种附加后缀,这个下文详细展开)

  • 使用Xseg遮罩模型,提供自带画遮罩的工具。


2.0硬件要求:
dfl2.0最新版已经支持英伟达显卡和AMD显卡,但AMD显卡效率不行,买电脑还是推荐英伟达显卡,
需要显卡CUDA Compute Capability 3.0以上

DeepFaceLab 2.0由几个.bat文件组成,这些文件用于执行创建Deepfake的各种任务/步骤,它们与两个子文件夹一起位于主文件夹中:

  • _internal - 相关源代码

  • workspace - 放置你的模型、视频、人脸数据的地方



下面是一些术语解释

Dataset (faceset) - 是一组从图片帧(从视频中提取)或照片已提取的图像。


DFL 2.0中使用了两个数据集,分别是
data_dstdata_src

- "data_dst
“ data_dst”是一个文件夹,其中包含从data_dst.mp4文件提取的帧-这是我们要换脸的目标视频。 它还包含2个文件夹,这些文件夹是在从提取的帧中提取人脸后创建的:“aligned”包含人脸图像(内嵌了人脸特征点数据,用于生成原始遮罩)
“aligned_debug”包含原始帧,这些帧画出了人脸特征点,用于标识检验人脸提取是否正确(并且不参与训练或合成过程)。清理完数据集后,可以将其删除以节省空间。


- "data_src" 是一个文件夹,用于保存从data_src.mp4文件提取的帧(可以是采访,电影,预告片等),也可以在其中放散装图片-就是您要在换到视频上的人。
“aligned”包含人脸图像(内嵌了人脸特征点数据,用于生成原始遮罩)
“aligned_debug”包含原始帧,这些帧画出了人脸特征点,用于标识检验人脸提取是否正确(并且不参与训练或合成过程)。清理完数据集后,可以将其删除以节省空间。


为方便国内朋友理解,我举个例子:我要做一个马保国替换叶问中甄子丹的换脸视频。 那么马保国就是data_src,叶问就是data_dst

但是,在提取脸部之前,必须先从以下对象中提取脸部:

-对于data_dst,您应该准备目标(目标)视频并将其命名为data_dst.mp4
-对于data_src,您应该准备源视频(如上例所示)并将其命名为data_src.mp4,或者准备jpg或png格式的图像。
从视频中提取帧的过程也称为提取,因此在本指南的其余部分中,我将这两个过程都称为“面部提取”和“帧提取”。

如开头所述,所有这些数据都存储在“ workspace”文件夹中。data_dst.mp4和data_src.mp4放在workspace文件夹目录;data_src文件夹和data_dst文件夹用于放置分解视频得到的原始画面帧或散装图片。运行面部提取后,会在其中自动生成存储人脸的“ aligned”文件夹

1. 工作区清理:



1) Clear Workspace -删除workspace下所有内容。别手贱点他。

2. 从src视频中提取画面 (data_src.mp4):



2) Extract images from video data_src - 
从data_src.mp4视频中提取帧并将其放入自动创建的“ data_src”文件夹中,可用选项:-FPS-跳过视频的默认帧速率,输入其他帧速率的数值(例如,输入5将仅以每秒5帧的速度呈现视频,这意味着将提取较少的帧)
-JPG / PNG-选择提取帧的格式,jpg较小,通常质量足够好,因此建议使用,png较大,不能提供明显更高的质量,但是可以选择。

3. 视频切割 (可选环节):

3) cut video (drop video on me) - 通过将视频拖放到该.bat文件中,可以快速将视频剪切为所需的长度。 如果您没有视频编辑软件并且想快速剪切视频,则很有用,可以选择以下选项:
从时间开始-视频开始
结束时间-视频结束
音轨-保留默认设置
比特率-让我们更改视频的比特率(质量)-最好保留默认设置

3. 从目标视频中提取画面(data_dst.mp4):



3) extract images from video data_dst FULL FPS - 
从data_dst.mp4视频文件中提取帧并将其放入自动创建的“ data_dst”文件夹中,可用选项:
- JPG/PNG - 同2)

4. 提取Data_src中的人脸:



准备源数据集的第一步是对齐人脸(把人脸都摆正了),并从位于“ data_src”文件夹中的提取帧中生成512x512面部图像。

有2个选项:
4) data_src faceset extract MANUAL - 手动提取器,用法请参见5.1。
4) data_src faceset extract - 使用S3FD算法的自动提取

S3FD和MANUAL提取器的可用选项包括:
-根据要训练的模型的面部类型选择提取的覆盖区域:
a) full face (简称F脸,额头部分有些许被裁到)
b) whole face (简称WF脸,范围更大,整个额头都取了,兼容WF和F脸模型)
c) head (不常用,给高玩做avatar用,萌新用不到)
-选择用于面部提取/对齐过程的GPU(或cpu)
-选择是否生成“ aligned_debug”文件夹

4. Data_src 整理:



完成此操作后,下一步是清理错误faceset /数据集/不正确对齐的faces,有关详细信息,请检查以下帖子: https://mrdeepfakes.com/forums/thread-gu...y-facesets

4.1) data_src view aligned result - 不常用

4.2) data_src sort - 给图片排序,方便你筛选错误图片

[0] blur 模糊程度
[1] face yaw direction 俯仰角度
[2] face pitch direction 左右角度
[3] face rect size in source image 人脸在原图中的大小
[4] histogram similarity 颜色直方图相似度
[5] histogram dissimilarity 颜色直方图不相似度
[6] brightness 亮度
[7] hue 颜色色相
[8] amount of black pixels 黑色像素的数量(常用于筛选异常人脸提取结果)
[9] original filename 源文件名字
[10] one face in image 是否是画面中唯一人脸
[11] absolute pixel difference 绝对的像素差异
[12] best faces 筛选最佳的人脸
[13] best faces faster 更快的筛选最佳的人脸

4.2) data_src util add landmarks debug images -重新生成debug文件夹

4.2) data_src util faceset enhance - 用AI算法提升素材清晰度

另一个可选的提升SRC的素材的方法,可用DFDNET ,谷歌colab连接如下:
https://colab.research.google.com/github...7-E-vRSYar

4.2) data_src util faceset metadata restore and 4.2) data_src util faceset metadata save - 让我们从源面集/数据集中保存和还原嵌入的对齐数据,以便在提取某些面部图像(例如将它们锐化,编辑眼镜,皮肤瑕疵,颜色校正)后可以对其进行编辑,而不会丢失对齐数据。如果不按此步骤编辑“已对齐”文件夹中的任何图像,则将不会再使用对齐数据和这些图片进行训练,因此,在保持名称相同的情况下,不允许翻转/旋转,仅是简单的编辑,例如彩色 。

4.2) data_src util faceset pack and 4.2) data_src util faceset unpack - 将“ aligned”文件夹中的所有面孔打包/解压缩到一个文件中。 主要用于准备自定义的预训练数据集或更易于共享为一个文件。

4.2.other) data_src util recover original filename - 将面部图像的名称恢复为原始顺序/文件名(排序后)。 可选,无论SRC face文件名如何,训练和合成都能正确运行。

5. Data_dst 数据准备:


这里的步骤与源数据集几乎相同,除了少数例外,让我们从面部提取/对齐过程开始。
我们仍然有Manual和S3FD提取方法,但是还有一种结合了这两种方法和一种特殊的手动提取模式,始终会生成“ aligned_debug”文件夹。

5) data_dst faceset extract MANUAL RE-EXTRACT DELETED ALIGNED_DEBUG - 从“ aligned_debug”文件夹中删除的帧进行手动重新提取。 有关更多信息,请参见5. Data_dst清理。 以下步骤5.1中的用法。
5) data_dst faceset extract MANUAL - 纯手动模式
5) data_dst faceset extract manual fix - 半自动,机器识别不了的会切手动
5) data_dst faceset extract - 纯自动提取

选项和src的一样,不重复说了

5.1 手动人脸提取的操作说明:



启动手动提取器或重新提取器后,将打开一个窗口,您可以在其中手动找到要提取/重新提取的脸部:
-使用鼠标定位脸部
-使用鼠标滚轮更改搜索区域的大小
-确保所有或至少是大多数地标(在某些情况下,取决于角度,照明或当前障碍物,可能无法精确对齐所有地标,因此,请尝试找到一个最能覆盖所有可见位并且是“ t太不对准)落在重要的部位,例如眼睛,嘴巴,鼻子,眉毛上,并正确遵循面部形状,向上箭头指示您面部的“向上”或“顶部”在哪里
-使用键A更改精度模式,现在地标不会对检测到的面部“粘”太多,但您可能能够更正确地定位地标
-用户<和>键(或,和。)来回移动,以确认检测到鼠标左键单击并移至下一个或按Enter
-鼠标右键,用于检测无法检测到的正面或非人脸(需要应用xseg进行正确的遮罩)
-q跳过剩余的面孔并退出提取器(到达最后一张面孔并确认时也会关闭)

5.2 Data_dst 数据整理:



对齐data_dst面后,我们必须清理它们,类似于我们使用源faceset / dataset进行处理时,我们将选择一些排序方法,由于它们的工作方式与src完全相同,因此我将不作解释。
但是清理目标数据集与源数据集有所不同,因为我们要使所有存在的帧的所有面对齐(包括可以在XSeg编辑器中标记的受遮挡的面),然后训练XSeg模型以将其遮盖 -有效地使障碍物在学到的面孔上清晰可见,更多的是在下面的XSeg阶段。


这块做法和data_src类似,区别在于,最后合成时是根据dst中aligned文件数量来合成。删掉的dst人脸数据对应的画面就不会换脸


5.3: XSeg model 的训练和使用(画遮罩).



这章比较复杂,晚点翻译。萌新先不要使用遮罩。不用遮罩正常也能训练


6. 训练:



有两种模式可以选择:

SAEHD (6GB ): 高质量模型,至少6GB显存


特点/设置
- 最高640x640分辨率,
- 可支持half face, mid-half face, full face, whole face and head face 5中人脸尺寸类型
- 8种模型结构: DF, LIAE, 每种4 个变种 - regular, -U, -D and -UD
- 可调节的批大小(batchsize)
- 可调节的模型各层维度大小
- Auto Backup feature 自动备份
- Preview History预览图存档
- Adjustable Target Iteration 目标迭代次数
- Random Flip (yaw) 随机水平翻转
- Uniform Yaw 按角度顺序来训练
- Eye Priority 眼神训练优先
- Masked Training 带遮罩训练
- GPU Optimizer 优化器放GPU上
- Learning Dropout 学习率自动下降
- Random Warp 随机扭曲
- GAN Training Power 使用GAN
- True Face Training Power 提高人脸相似度
- Face and Background Style Power 提高颜色相似度
- Color Transfer modes 变对素材变色
- Gradient Clipping 梯度裁剪
- Pretrain Mode 使用预训练模式

Quick96 (2-4GB): 低配电脑可用

特点:
- 96x96 分辨率
- 只支持Full Face
- Batch size 4
- 默认DF-UD结构


6) train SAEHD
6) train Quick96


由于Quick96不可调节,因此您将看到命令窗口弹出并仅询问一个问题-CPU或GPU(如果您有更多问题,它将选择其中之一或同时进行训练)。
但是,SAEHD将为您提供更多调整选项。


在这两种情况下,首先都会出现一个命令行窗口,您可以在其中输入模型设置。 初次使用时,您将可以访问以下说明的所有设置,在使用已经受过训练的模型进行训练并在“模型”文件夹中显示该模型时,您还将收到提示,您可以在其中选择要训练的模型( (如果您的“模型”文件夹中存在多个模型文件)。
您还将始终提示您选择要在其上运行培训器的GPU或CPU。


启动后将看到的第二件事是预览窗口,如下所示:
【必看】DFL官方使用说明【已汉化】

这是所有功能的更详细说明,以便在开始训练新模型时将其呈现给用户:


请注意,由于这些模型的工作方式,其中一些已锁定,一旦开始训练就无法更改,例如,稍后无法更改的示例如下:

- model resolution 模型分辨率
- model architecture 模型结构
- models dimensions (dims settings) 模型维度参数
- face type 人脸类型

Autobackup every N hour ( 0..24 ?:help ) : 自动备份频率,0不备份

Target iteration : 将在达到一定的迭代次数后停止训练,例如,如果要将模型训练为仅进行100.000次迭代,则应输入值100000。将其保留为0将使其运行,直到您手动将其停止为止。 默认值为0(禁用)。

Flip faces randomly ( y/n ?:help ) : 基本不开。在您没有要交换到目标的人脸(源数据集)的所有必要角度的情况下的有用选项。 例如,如果您有一个目标/目标视频,人物直视向右,而您的源只具有直视向左的脸,则应启用此功能,但请记住,由于没有人脸对称,结果看起来可能不太像 src以及来源面部的特征(例如美容标记,疤痕,痣等)都会被镜像。 默认值为n(禁用)。

Batch_size ( ?:help ) : 批处理大小设置会影响每次迭代中相互比较的面孔数。 最低值是2,您可以提高到GPU允许的最大值,受GPU影响。 模型分辨率,尺寸越高,启用的功能越多,将需要更多的显存,因此可能需要较小的批处理大小。 建议不要使用低于4的值。批量越大,质量越好,但训练时间越长(迭代时间越长)。 对于初始阶段,可以将其设置为较低的值以加快初始训练的速度,然后将其升高。 最佳值为6-12。 如何猜测要使用的批量大小? 您可以使用试错法,也可以通过查看DFL 2.0电子表格来了解其他人在他们的GPU上可以实现什么,以帮助自己:[url = https://mrdeepfakes.com/forums/thread-dfl-2- 0-user-model-settings-spreadsheet] https://mrdeepfakes.com/forums/t ... ettings-spreadsheet

Resolution ( 64-640 ?:help ) : 在这里,您可以设置模型的分辨率,请记住,在训练过程中不能更改此选项。 它会影响交换的面部的分辨率,模型的分辨率越高-学习的面部越详细,但训练的负担也将越来越长。 分辨率可以从64x64增至640x640,其增量为:
16(对于常规和-U体系结构变体)
32(用于-D和-UD体系结构变体)
更高的分辨率可能需要增加模型尺寸(尺寸)。

Face type ( h/mf/f/wf/head ?:help ) :此选项使您可以设置要训练的脸部区域,共有5个选项-半脸,半脸,全脸,全脸和头部:
a)H半脸-仅从嘴巴到眉毛训练,但在某些情况下可以割破脸部的顶部或底部(眉毛,下巴,嘴巴)。
b)MF中半脸-旨在解决此问题,方法是遮盖脸部比半脸大30%,这应该可以防止大多数不希望的割伤的发生,但仍然可以发生。
c)F全脸-覆盖除额头以外的大部分脸部区域,有时会割掉一点下巴,但是这种情况很少发生-当SRC和/或DST的额头覆盖头发时,最推荐使用此方法。
d)WF整脸-扩大该区域以覆盖几乎整个脸部,包括额头,甚至一点点头发,但是当我们要交换整个脸部(不包括头发)时,应使用此模式。该脸部类型的另一个选项是masked_training,它使您可以优先确定学习脸部的整个脸部的优先级,然后(禁用之后)让模型学习像额头一样的脸部其余部分。
e)头-用于交换整个头,不适合长发的对象,如果源面组/数据集来自单个源并且SRC和DST都短发或不变,则效果最好形状取决于角度。此脸型的最低建议分辨率为224。
【必看】DFL官方使用说明【已汉化】

whole face案例

AE architecture (df/liae/df-u/liae-u/df-d/liae-d/df-ud/liae-ud ?:help ) : 此选项使您可以在2种主要的体系结构DF和LIAE及其-U,-D和-UD变体之间进行选择。

DF和LIAE体系结构是基础体系结构,两者均提供高质量和良好的性能。
DF-U,DF-UD,LIAE-U和LIAE-UD是其他体系结构变体。



DF: 此模型体系结构提供了更直接的人脸交换,不使人脸变形,但要求源和目标/目标人脸/头部具有相似的人脸形状。
该模型在正面拍摄时效果最好,并且要求您的源数据集具有所有所需的角度,在侧面轮廓上可能会产生较差的结果。

LIAE: 当涉及源和目标/目标之间的面部/头部形状相似性时,此模型体系结构没有那么严格,但是该模型确实使面部变形,因此建议使实际面部特征(眼睛,鼻子,嘴巴,整体面部结构)相似 在源和目标/目标之间。 该模型与源头镜头的源相似性较差,但可以更好地处理侧面轮廓,并且在源源面集/数据集方面更宽容,通常可以产生更精致的人脸替换,并具有更好的颜色/照明匹配度。

-U: 
此变体旨在提高训练结果面与SRC数据集的相似性/相似性。
-D: 此变体旨在提高性能,让您以两倍的分辨率训练模型,而无需额外的计算成本(VRAM使用)和类似的性能,例如以与128分辨率相同的VRAM使用和速度(迭代时间)训练256分辨率模型

-UD: 结合U和D

接下来的4个选项控制模型神经网络的尺寸,这些尺寸会影响模型的学习能力,对其进行修改可能会对所学面孔的性能和质量产生重大影响,因此应将其保留为默认值。



AutoEncoder dimensions ( 32-1024 ?:help ) : 自动编码器中间层维度大小
Encoder dimensions ( 16-256 ?:help ) : 编码器尺寸设置会影响模型学习面孔总体结构的能力。
Decoder dimensions ( 16-256 ?:help ) : 解码器尺寸设置会影响模型学习细节的能力。
Decoder mask dimensions ( 16-256 ?:help ) : 遮罩解码器的尺寸设置会影响学习到的遮罩的质量。

更改每个设置时的性能变化可能会对性能产生不同的影响,如果没有大量的培训,就无法衡量每个参数对性能和质量的影响。 每个设置为某个默认值,该默认值应提供最佳结果,并在训练速度和质量之间取得良好的折衷。


同样,在更改一个参数时,也应更改其他参数,以保持它们之间的关系相似(例如,如果将“编码器”和“解码器”的尺寸从64降低到48,则还可以将“自动编码器”的尺寸从256降低到192-240)。 随意尝试各种设置。
果要获得最佳结果,请将其保留为默认值,或者对于高分辨率型号,将其略微提高。
Eyes priority ( y/n ?:help ) : 试图通过强制神经网络训练优先级更高的眼睛来解决眼睛训练问题。
请记住,它不能保证正确的眼睛方向,它只会影响眼睛的细节和周围区域。 示例(之前和之后):

Place models and optimizer on GPU ( y/n ?:help ) : 启用GPU优化器会将所有负载都放在GPU上,这将大大提高性能(迭代时间),但会导致更高的VRAM使用率,禁用此功能会将优化器的某些工作分担给CPU,从而减少了GPU和VRAM使用率的负载,从而使您可以实现 批处理量更大或以更高的迭代时间为代价运行更苛刻的模型。 如果您收到OOM(内存不足)错误,并且不想减小批量大小或禁用某些功能,则应禁用此功能,这样一来,一些工作将被卸载到CPU上,而某些数据将从GPU VRAM转移到系统RAM中- 您将能够以较低速度为代价运行模型而不会出现OOM错误。 默认值为y(启用)。

Use learning rate dropout ( y/n/cpu ?:help ) : LRD被用于加速面部的培训,并减少相比,如果没有启用它,使用它较少的迭代子像素抖动:


-在禁用RW之前和运行其他选项之后一次。


-禁用RW之后(也是LRD)第二次使用其他选项(均匀偏航,样式效果,真面,眼睛优先),但在启用GAN之后。


此选项会影响VRAM的使用,因此,如果遇到OOM错误,则可以在CPU上运行它,但需要花费20%的迭代时间或降低批处理大小。


有关LRD的详细说明以及在培训期间启用主要功能的顺序,请参阅FAQ问题8(此主题的第3个帖子):

"When should I enable or disable random warp, GAN, True Face, Style Power, Color Transfer and Learning Rate Dropout?".

Enable random warp of samples ( y/n ?:help ) : 随机扭曲用于概括模型,以便它可以正确学习所有基本形状,面部特征,面部结构,表情等,但是只要启用该模型,学习精细细节就可能会遇到麻烦-因为它 建议您只要您的脸部仍在改善中(通过查看减少的损耗值和预览窗口)就启用此功能,一旦对脸部进行了全面训练并想要获得更多详细信息,则应禁用它并进行数千次迭代 应该会开始看到更多详细信息,并且禁用此功能后,您将继续进行培训。 默认值为y(启用)。

Uniform_yaw ( y/n ?:help ) : 
有助于训练轮廓脸部,迫使模型根据其偏航角在所有面孔上均匀地训练,并优先考虑轮廓脸部,可能会导致正面脸部的训练速度变慢,这在预训练期间默认启用,可与随机变形类似地使用(在开始时 (训练过程)或在禁用或禁用RW后启用(当您对面部进行或多或少的训练,并且您希望轮廓脸部看起来更好且更少模糊时)。 当您的源数据集没有很多轮廓照片时很有用。 可以帮助降低损失值。 默认值为n(禁用)。

GAN power ( 0.0 .. 10.0 ?:help ) : GAN代表Generative Adversarial Network,在DFL 2.0的情况下,它是作为获得更详细/更清晰面孔的一种额外培训方式而实施的。 此选项的调整范围是0.0到10.0,只有在模型或多或少地完成训练后(禁用样本随机扭曲并启用LRD之后),才应启用该选项。 建议从低值0.1开始,该值在大多数情况下也是建议值,一旦启用,就不应禁用它,请确保对模型进行备份,以防不满意结果。
默认值为0.0(禁用)。

用GAN训练0.1的面部进行40k迭代之前/之后的示例:
【必看】DFL官方使用说明【已汉化】
'True face' power. ( 0.0000 .. 1.0 ?:help ) : 使用可变功率设置的真实面部训练,让您将模型鉴别器设置为更高或更低的值,这样做是为了使最终面孔看起来更像src,而对于GAN,只有在禁用了随机扭曲后,才应启用此功能 并且模型训练有素。 在启用此功能之前,请考虑进行备份。 切勿使用较高的值,典型值为0.01,但可以使用较低的值,例如0.001。 设置越高,结果面将越像源数据集中的面,这可能导致颜色匹配问题,并导致出现伪影,因此重要的是不要使用高值。 它对性能的影响很小,可能会导致OOM错误发生。 默认值为0.0(禁用)。
【必看】DFL官方使用说明【已汉化】

Face style power ( 0.0..100.0 ?:help ) and Background style power ( 0.0..100.0 ?:help ) : 此设置控制图像的面部或背景部分的样式转移,用于将目标/目标面孔(data_dst)的样式转移到最终学习的面孔,这样可以提高质量和合并后最终结果的外观,但是 高值可能导致学习的人脸看起来更像data_dst,而不是data_src。 它将从DST传输一些颜色/照明信息到结果脸部。 建议不要使用大于10的值。从0.001-0.01之类的小值开始。 此功能对性能有很大影响,使用它会增加迭代时间,并且可能需要您减小批处理大小,禁用gpu优化器或在CPU上运行LRD。 在启用此功能之前,请考虑进行备份。 默认值为0.0(禁用)。

Color transfer for src faceset ( none/rct/lct/mkl/idt/sot ?:help ) : 此功能用于将data_src的颜色与data_dst进行匹配,以使最终结果具有与data_dst相似的肤色/色调,并且训练后的最终结果不会在人脸移动时改变颜色(如果脸部不同,可能会发生这种情况 角度是从包含不同光照条件或颜色分级不同的各种光源获取的。 有以下几种选择:

- rct (reinhard color transfer)(我常用,滚石注): 基于: https://www.cs.tau.ac.il/~turkel/imagepa...ansfer.pdf
- lct (linear color transfer): 使用线性变换将目标图像的颜色分布与源图像的颜色分布匹配。
- mkl (Monge-Kantorovitch linear): 基于: http://www.mee.tcd.ie/~sigmedia/pmwiki/u...tie07b.pdf
- idt (Iterative Distribution Transfer): 基于: http://citeseerx.ist.psu.edu/viewdoc/dow...1&type=pdf
- sot (sliced optimal transfer): based on: https://dcoeurjo.github.io/OTColorTransfer/

Enable gradient clipping ( y/n ?:help ) : 梯度裁剪。实现此功能是为了防止在使用DFL 2.0的各种功能时可能发生的所谓的模型崩溃/损坏。 它对性能的影响很小,因此,如果您真的不想使用它,则必须启用自动备份,因为崩溃后的模型无法恢复,必须将其废弃,并且必须从头开始进行培训。 默认值为n(禁用),但是由于对性能的影响非常低,并且如果保持启用状态,可以防止模型崩溃而节省大量时间。 使用Style Powers时最容易发生模型崩溃,因此强烈建议您启用渐变裁剪或备份(也可以手动进行)。

Enable pretraining mode ( y/n ?:help ) : 启用预训练过程,该过程使用随机人脸数据集对模型进行初始训练,将其训练约200k-400k次迭代后,可以在开始使用要训练的实际data_src和data_dst进行训练时使用此类模型,因为您可以节省时间不必每次都从0开始全面训练(模型将“知道”面孔的外观,从而加快初始训练阶段)。可以随时启用pretrain选项,但建议在开始时仅对模型进行一次预训练。您还可以使用自己的自定义面集进行预训练,您要做的就是创建一个(可以是data_src或data_dst),然后使用4.2)data_src(或dst)util faceset pack .bat文件打包成一个文件,然后将其重命名为faceset.pak并替换(备份旧的)“ ...  _ internal  pretrain_CelebA”文件夹中的文件。默认值为n(禁用)。但是,如果要节省一些时间,可以去论坛找别人训练好的模型。

Shared models: https://mrdeepfakes.com/forums/thread-df...d-requests

要使用共享的预训练模型,只需下载它,将所有文件直接放入模型文件夹中,开始训练,在选择要训练的模型(如果在模型文件夹中有更多内容)和用于训练的设备后2秒钟内按任意键 (GPU / CPU)来覆盖模型设置,并确保禁用预训练选项,以便您开始正确的训练;如果您启用了预训练选项,则模型将继续进行预训练。 请注意,该模型会将迭代计数恢复为0,这是预训练模型的正常行为。


7. Merging合成:



训练完模型后,该将学习的人脸合并到原始帧上以形成最终视频了(转换)。



为此,我们有2个对应于2种可用型号的转换脚本:

7) merge SAEHD
7) merge Quick96


选择其中任何一个后,命令行窗口将出现,并带有多个提示。
第一个将询问您是否要使用带交互界面的转化器,默认值为y(启用),除非你受虐狂,不然就好好开着吧,边调参数边预览
Use interactive merger? ( y/n ) :

第二个将询问您要使用哪种模型:
Choose one of saved models, or enter a name to create a new model.
[r] : rename
[d] : delete
[0] : df192 - latest
:

第3个会问您要在合并(转换)过程中使用哪个GPU / GPU:
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : GeForce GTX 1070 8GB
[0] Which GPU indexes to choose? :
按Enter将使用默认值(0)。

完成之后,您将看到一个带有当前设置的命令行窗口以及一个预览窗口,其中显示了操作交互式转换器/合并程序所需的所有控件。

这是命令行窗口和转换器预览窗口的快速浏览:
【必看】DFL官方使用说明【已汉化】

Converter具有许多选项,可用于更改遮罩类型,大小,羽化/模糊,还可以添加其他颜色转移并进一步锐化/增强最终训练的脸部。

这是解释的所有合并/转换器功能的列表:

1. Main overlay modes:
- original: 显示原始画面而没有换脸
- overlay: 简单地将学习到的脸覆盖在框架上 (推荐用这个,滚石注)
- hist-match: 根据直方图叠加学习的面部和试图以使其匹配(具有2种模式:正常模式和可通过Z切换的蒙版)
- seamless: 使用opencv泊松无缝克隆功能在原始帧的头部上方融合新学习的面部
- seamless hist match: 结合了直方图匹配和无缝匹配。
- raw-rgb: 覆盖原始学习过的脸部而没有任何遮罩

注意:无缝模式可能导致闪烁。

2. Hist match threshold:在直方图匹配和无缝直方图覆盖模式下控制直方图匹配的强度。
Q - 增加值
A - 减小值

3. Erode mask: 控制遮罩的大小。
W - 增加遮罩腐蚀(较小的遮罩)
S - 减少遮罩腐蚀(较大的遮罩)

4. Blur mask: 使遮罩边缘模糊/羽化,以实现更平滑的过渡
E - 增加值
D - 减小值

5. Motion blur: 动态模糊。输入初始参数(转换器模式,模型,GPU / CPU)后,合并将加载所有帧和data_dst对齐的数据,同时,它会计算用于创建此设置控制的运动模糊效果的运动矢量,让您 将其添加到人脸移动的地方,但是即使移动很小,高值也可能使人脸模糊。 该选项仅在“ data_dst / aligned”文件夹中存在一组面孔时才有效-如果在清理过程中某些面孔带有_1前缀(即使只有一个人的面孔),效果将不起作用,同样 如果有一个可以反射目标人员面部的镜子,在这种情况下,您将无法使用运动模糊,并且添加该模糊的唯一方法是分别训练每组面部。
R - 增加motion blur
F - 减少motion blur

6. Super resolution: 超分辨率使用与data_src数据集/面部设置增强器类似的算法,它可以为牙齿,眼睛等区域添加更多定义,并增强所学面部的细节/纹理。
T - 增加细节 the enhancement effect
G - 减少细节
7. Blur/sharpen: 使用方块或高斯方法模糊或锐化所学的面部。
Y - sharpens the face
H - blurs the face
N - box/gaussian mode switch

8. Face scale: 缩放人脸
U - scales learned face down
J - scales learned face up

9. Mask modes: 6种遮罩计算方式,效果自己试一遍就知道了

dst: uses masks derived from the shape of the landmarks generated during data_dst faceset/dataset extraction.
learned-prd: uses masks learned during training. Keep shape of SRC faces.
learned-dst: uses masks learned during training. Keep shape of DST faces.
learned-prd*dst: combines both masks, smaller size of both.
learned-prd dst: combines both masks, bigger size of both.
XSeg-prd: uses XSeg model to mask using data from source faces.
XSeg-dst: uses XSeg model to mask using data from destination faces.
XSeg-prd*dst: combines both masks, smaller size of both.
learned-prd*dst*XSeg-dst*prd: combines all 4 mask modes, smaller size of all.

10. Color transfer modes: 与训练过程中的颜色转移类似,您可以使用此功能将学习到的脸部的肤色与原始帧更好地匹配,以实现更加无缝和逼真的脸部交换。 有8种不同的模式:
RCT
LCT
MKL
MKL-M
IDT
IDT-M
SOT - M
MIX-M

11. Image degrade modes: 
您可以使用3种设置来影响原始帧的外观(不影响换面):
Denoise - denoises image making it slightly blurry (I - increases effect, K - decrease effect)
Bicubic - blurs the image using bicubic method (O - increases effect, L - decrease effect)
Color - decreases color bit depth (P - increases effect, ; - decrease effect)

附加控件::

TAB button - 在主预览窗口和帮助屏幕之间切换。
请记住,您只能在主预览窗口中更改参数,按帮助屏幕上的任何其他按钮都不会更改它们。
-/_ and =/ buttons are used to scale the preview window.
Use caps lock to change the increment from 1 to 10 (affects all numerical values).

要保存/覆盖当前一帧中所有下一帧的设置 shift /
要保存/覆盖当前一帧中所有先前帧的设置 shift M
要开始合并所有帧,请按 shift >
要返回第一帧,请按  shift <
要仅转换下一帧,请按 >
要返回上一帧,请按 <

8. 把转化好的帧合成为视频


合并/转换所有面部之后,“ data_dst”文件夹中将有一个名为“ merged”的文件夹,其中包含构成视频的所有帧。
最后一步是将它们转换回视频,并与data_dst.mp4文件中的原始音轨合并。


为此,您将使用提供的4个.bat文件之一,这些文件将使用FFMPEG将所有帧组合成以下格式之一的视频-avi,mp4,lessless mp4或lossless mov:
- 8) merged to avi
- 8) merged to mov lossless 无损mov
- 8) merged to mp4 lossless 无损MP4
- 8) merged to mp4