星级打分
平均分: 5 参与人数: 2 我的评分: 未评
本帖最后由 Lau9 于 2023-12-31 01:19 编辑
为了阅读指南和使用 DeepFaceLab,您首先应该熟悉一些基本术语。
DeepFaceLab 提供了一套工作流程,形成了灵活的管道。在 DeepFaceLab(简称 DFL)中,我们可以将 pipeline 抽象为三个阶段:提取、训练和转换。这三个部分依次呈现。此外,值得注意的是,DFL 属于典型的一对一换脸范式,这意味着只有两种数据:src 和 dst,即 source 和 destination 的缩写,用于以下叙述。
-DeepFaceLab 开发人员
[td]
捆绑的 DeepFaceLab 软件(例如 RTX 3000 系列Build构建)
存储所有图像、视频和其他重要文件的 /workspace 文件夹。
作为视频或图像的输入数据,将放置在最终视频或图像中的面部
预期的输出视频或图像,将被 deepfake 替换的面部
从经过训练的模型创建图像的过程,还将图像和目标声音转换为视频文件
DeepFaceLab 2.0 Deepfake 术语
下载并安装 DeepFaceLab 2.0[td]
[td]
检查 DeepFaceLab GitHub 存储库
下载完成后,您可以双击 .exe 文件(自解压存档)或使用您喜欢的 zip 程序进行解压。Microsoft Defender 可能会将其作为无法识别的应用程序来阻止。这不是病毒;它是一个 zip 文件。单击“更多信息”,然后单击“仍然运行”。DeepFaceLab 没有设置。提取文件后,安装完成。
系统优化 [td]
Recommended by the developer.
Helps reduce Out of Memory (OOM) crashes.
Reduces the amount of Windows reserved VRAM. Note: May get reset to default by Windows Update.
Multi-GPU users report a significant performance increase.
DeepFaceLab 2.0 系统优化
DeepFaceLab 2.0 批处理文件和文件夹
工作区概述
data_dst.* 和 data_src.* 视频文件。
目标 faceset 图像。将对齐的 faceset 图像放在此文件夹中。
源 faceset 图像。将对齐的 faceset 图像放在此文件夹中。
模型数据。将模型文件放在此文件夹中,包括 XSeg 模型文件。
DeepFaceLab 2.0 工作区文件夹
第 1 步:清除工作区和导入数据
目的:定义项目工作区。
可选: 1) clear workspace.bat
删除工作区子目录中的所有数据并重建文件夹结构。保留 data_src.* 和 data_dst.* 视频文件。谨慎使用。
脸型
人脸类型是你在 deepfake 过程中必须做出的第一个关键决定,因为它决定了可以训练的人脸的最大面积。覆盖更多面部和头部的更大面部类型将产生更好的deepfake ,但是它将需要更多的系统资源、更长的训练时间、额外的蒙版和后处理。由于面部类型必须适应各种角度,一些提取的图像可能会被裁剪得更紧,而另一些则在面部周围留出更多空间。此外,较大的人脸类型可用于将模型集训练为较小的人脸类型。许多 deepfake 创作者选择 Whole Face (wf) 类型以平衡速度和相似性。
DeepFaceLab 2.0 人脸类型
图: DeepFaceLab 2.0 人脸类型对比
在上图中,您可以看到 3 种最常见的面部类型和原始帧图像。请注意,虽然头部类型覆盖了大部分区域,但在左侧对齐的图像中,面部显得最小。您需要调整 Faceset 图像大小(分辨率)以适应面部类型和原始素材的分辨率。您还可以测量或近似帧中人脸的大小,以确定合适的图像大小。在 XSeg 蒙版期间,最重要的是,在 deepfake 模型训练期间,也需要输入面部类型。人脸类型会对训练的速度和结果的质量产生很大的影响。
Run: 4) data_src faceset extract.bat (Automatic)
· Which GPU indexes to choose 要选择哪些 GPU 索引?:从列表中选择一个或多个 GPU 索引以运行提取。
选择多个 GPU 索引时建议使用相同的设备。
· Face type 人脸类型(f / wf / head):选择要提取的人脸类型。
[工具提示:全脸/全脸/头部。“全脸”覆盖整个面部区域,包括前额。'head' 覆盖全头,但需要 XSeg 用于 src 和 dst faceset。]
· Max number of faces from image 图像中的最大人脸数:选择要从每帧中提取的最大人脸数。
[工具提示:如果您提取的 src faceset 包含具有大量人脸的帧,建议将 max faces 设置为 3 以加快提取速度。0 – 无限制]
· Image size 图像大小(256 – 2048):选择提取的 Faceset 图像文件的大小(分辨率)。
[工具提示:输出图像大小。图像尺寸越大,面部增强器的效果就越差。仅当源图像足够清晰且无需增强人脸时才使用高于 512 的值。]
· Jpeg quality Jpeg 质量 (1 – 100):选择提取的 faceset 图像文件的质量(压缩)。
[工具提示:Jpeg 质量。jpeg 质量越高,输出文件越大。]
· Write debug images to aligned_debug 将调试图像写入aligned_debug?( y/n ):选择是否写入调试图像。
几分钟后,提取将完成,并为您提供有关找到的图像数量和检测到的人脸的报告。源 faceset 图像文件将在 data_src/aligned 文件夹中创建。
Optional: 4) data_src faceset extract MANUAL.bat
示例: DeepFaceLab 2.0 手动提取
[td]
DeepFaceLab 2.0 手动提取键盘输入
步骤 4.1:查看源 Faceset 结果
提取后,您可以使用随附的 XNView 图像查看器查看源 Faceset 结果。
运行: 4.1) data_src view aligned result.bat
源 faceset 将使用附带的 XNView 图像查看器打开。您还可以在 data_src/aligned 文件夹中找到这些文件。您会注意到图像按顺序编号,并带有包含下划线和数字的后缀。DeepFaceLab 根据原始图像编号和图片中人脸的索引为每个文件命名。第一张脸,由 _0 后缀表示,通常是父帧图像中最大的脸。
示例: DeepFaceLab 2.0 XNView 图像查看器
按索引删除不需要的面孔
如果您没有限制每张图像的最大面部数量,那么提取器可能会产生大量不需要的面部提取和错误检测。
示例: DeepFaceLab 2.0 多面调试图像
Source Faceset Raw Extraction Samples:
示例: DeepFaceLab 2.0 在清理之前提取的 Faceset
使用 XNView 或导航到 data_src/aligned 文件夹,您可以开始删除不需要的面。由于源人脸可能是第一个或第二个图像索引,因此您可以快速删除其他人的人脸。在搜索栏中开始输入“_0.jpg”。这将向您显示在每个帧图像中检测到的第一张脸。删除任何不需要的面孔和错误检测。您还可以开始移除高度旋转或缩放的面以及源面的极端障碍物。现在搜索“_1.jpg”并从下一个人脸索引中删除所有不需要的图像,重复该过程直到到达最后一个人脸索引。清除搜索框并再次查看整个面部集,以查找您可能错过的任何不需要的图像。
示例: DeepFaceLab 2.0 源 Faceset 重复检测
请注意可能的重复或错位的面部提取。 在上图中,您可以看到已提取了 2 个相似的人脸。 虽然人脸边界框(蓝色)找到了 2 个不同的人脸,但特征对齐(绿色)被遮挡,这导致图像边界框(红色)定位到错误的人脸。 在这种情况下,应保留第一个图像(索引 _0)。 如果您不确定哪张脸是正确的,您应该简单地删除它们。
Step 4.2: Source Faceset Sorting & Cleanup
目的:整理源输入数据。
人脸集提取器将从原始图像中导出许多面部,并且可能包括错误检测、对齐不良的面部和重复图像。源人脸集清理的目标是产生一个准确对齐的主题的人脸集,具有高度的多样性和很少的重复。由于您可能会拥有大量源图像,因此请随意删除您不确定的任何面孔。您还应该修剪源人脸集以适合目标人脸集角度、表达式和颜色。提取目标 faceset 后重新访问此部分。
清理和修剪后的源人脸集:
示例: DeepFaceLab 2.0 清理后提取的 Faceset
运行: 4.2)data_src sort.bat
有许多不同的排序方法可供选择。按直方图相似度排序会将相似的图像组合在一起,帮助您批量删除不需要的面孔和极其相似的图像。按间距排序和按偏航排序将帮助您找出错误的对齐方式。按模糊排序允许您删除低质量的图像。
这些排序方法将按照新顺序重命名文件。运行文件 '4.2) data_src util restore original filename' 将使文件恢复其原始名称和顺序。唯一的例外是按最佳面孔和最佳面孔更快地排序。这两种方法将要求您输入所需数量的图像,从中选择具有不同属性的各种面孔。其余图像将移至“aligned_trash”文件夹。最好的面孔排序不是很准确,所以不要仅仅依靠它来创建你的人脸集。
[td]
[2] face yaw direction 面向偏航方向
[3] face pitch direction 面俯仰方向
[4] face rect size in source image 源图像中的人脸矩形大小
[5] histogram similarity 直方图相似度
[6] histogram dissimilarity 直方图相异
[9] amount of black pixels 黑色像素数量
[10]original filename 原始文件名
[11] one face in image 图像中的一张脸
[12] absolute pixel difference 绝对像素差
按多种方法(带模糊)排序并删除相似的面孔。选择要保留的人脸图像的目标数量。丢弃的面移至 data_src/aligned_trash。
[14] best faces faster 最好的面孔更快
按多种方法排序( w/face rect size)并删除相似的面孔。选择要保留的人脸图像的目标数量。丢弃的面移至 data_src/aligned_trash。
DeepFaceLab 2.0 排序方法
示例: DeepFaceLab 2.0 排序方法
Data_src 实用程序
有几个实用程序可以帮助您处理源图像。
[td]
4.2) data_src util add landmarks debug images.bat
添加人脸标记调试图像。
复制 data_src/aligned 中的 faceset 图像。
为图像添加可见的标记。
将 “_debug”附加到文件名。
注意:在训练之前从 faceset 中删除调试图像。
4.2) data_src util faceset enhance.bat
通过高档增强源人脸集。
将在 data_src/aligned_enhanced 中创建增强图像。
系统将询问您是否要替换(覆盖)原始图像。
4.2) data_src util faceset metadata restore.bat
从 meta.dat 文件恢复源 faceset 元数据。
4.2) data_src util faceset metadata save.bat
将源 faceset 元数据保存为 meta.dat 文件。
[控制台:现在您可以编辑图像了。!!!在文件夹中保留相同的文件名。
您可以更改图像的大小,恢复过程将缩小到原始大小。
之后,使用恢复元数据。 ]
4.2) data_src util faceset pack.bat
将源 faceset 打包为 data_src/aligned/faceset.pak 文件。系统将询问您是否要删除原始文件。
4.2) data_src util faceset resize.bat
调整和更改源 Faceset 图像的面部类型。[注:半脸/中脸/全脸/全脸/头部/无变化]调整大小的图像将在data_src/aligned_resized中创建。系统将询问您是否要替换(覆盖)原始图像。
4.2) data_src util faceset unpack.bat
解压源 data_src/aligned/faceset.pak 文件。Faceset.pak 将被删除。
4.2) data_src util recover original filename.bat
排序后用原始文件名重命名源 Faceset 文件。Faceset 文件名取自原始视频帧图像文件名。
DeepFaceLab 2.0 源实用程序
第五步: Extract Destination Faceset
目的:为 DeepFaceLab 提供目标对齐的 faceset 图像。
目标人脸集提取过程类似于源人脸集的提取过程。如果您已导入自己的目标 faceset,则可以跳到步骤 5.3。
运行 : 5) data_dst faceset extract.bat
· Which GPU indexes to choose?: Select one or more GPU indexes from the list to run extraction. 要选择哪些 GPU 索引?:从列表中选择一个或多个 GPU 索引以运行提取。
选择多个 GPU 索引时建议使用相同的设备。
· Face type ( f / wf / head ): Select the face type for the extraction.人脸类型(f / wf / head):选择要提取的人脸类型。
[工具提示:全脸/全脸/头部。“全脸”覆盖整个面部区域,包括前额。'head' 覆盖全头,但需要 XSeg 用于 src 和 dst faceset。]
· Image size ( 256 – 2048 ): Select the size (resolution) of the extracted faceset image files. 图像大小(256 – 2048):选择提取的 Faceset 图像文件的大小(分辨率)。
[工具提示:输出图像大小。图像尺寸越大,面部增强器的效果就越差。仅当源图像足够清晰且无需增强人脸时才使用高于 512 的值。]
· Jpeg quality ( 1 – 100 ): Select the quality (compression) of the extracted faceset image files.Jpeg 质量 (1 – 100):选择提取的 faceset 图像文件的质量(压缩)。
[工具提示:Jpeg 质量。jpeg 质量越高,输出文件越大。]
几分钟后,提取将完成,并为您提供有关找到的图像数量和检测到的人脸的报告。目标 faceset 图像文件将在 data_src/aligned 文件夹中创建。调试图像也将在 data_dst/aligned_debug 文件夹中生成。
Optional: 5) data_dst faceset extract MANUAL.bat
手动目标人脸集提取器采用与 5) data_dst faceset extract.bat 相同的选项。 打开一个界面以在图像上手动设置 faceset 对齐标记。 手动模式每帧只允许选择一个人脸。
Optional: 5) data_dst faceset extract + manual fix.bat
手动修复的目标人脸集提取器采用与 5) data_dst faceset extract.bat。 自动目标人脸集提取器,可选择手动标记未检测到的帧。 自动提取后将打开一个界面,允许您在未检测到人脸的视频帧上手动设置人脸对齐标记。 手动模式允许每帧选择一个人脸。
Manual Re-Extract Faces
您可以手动重新提取对齐不佳或未检测到的人脸。 删除不需要的面孔后,您可能需要重新访问此步骤。
首先,通过运行 [5.1) data_dst view aligned_debug results.bat](
https://www.deepfakevfx.com/guides/deepfacelab-2-0-guide/# 5-1-数据-dst-view-aligned-debug-result)。 删除包含您想要包含在目标人脸集中的未正确对齐或未检测到的人脸的任何图像。 接下来,您将仅从已删除的帧中手动重新提取人脸。 由于您只能在手动模式下选择一个人脸,因此该图像将收到 _0 的索引,并将覆盖该帧和人脸索引的当前对齐图像。 该帧具有任何其他索引的对齐图像将保留。 虽然不是必需的,但在删除调试图像时也删除相应的对齐图像可能会有所帮助。
示例: DeepFaceLab 2.0 Data_dst 视图对齐调试
打开一个界面以手动设置与已删除调试图像相对应的视频帧上的 faceset 对齐标记。
· Which GPU indexes to choose? 要选择哪些 GPU 索引?:从列表中选择一个或多个 GPU 索引以运行提取。
选择多个 GPU 索引时建议使用相同的设备。
· Image size ( 256 – 2048 ) 图像大小(256 – 2048):选择提取的 Faceset 图像文件的大小(分辨率)。
[工具提示:输出图像大小。图像尺寸越大,面部增强器的效果就越差。仅当源图像足够清晰且无需增强人脸时才使用高于 512 的值。]
· Jpeg quality ( 1 – 100 ) Jpeg 质量 (1 – 100):选择提取的 faceset 图像文件的质量(压缩)。
[工具提示:Jpeg 质量。jpeg 质量越高,输出文件越大。]
步骤 5.1:查看目标 Faceset 结果
提取后,您可以查看目标人脸集。
Run: 5.1) data_dst view aligned results.bat
示例: DeepFaceLab 2.0 目标人脸集
按索引删除不需要的面孔
同样,请注意可能的重复和错位的面部提取。 由于您想保留尽可能多的目标面孔,因此您必须小心确定要保留哪些面孔以及要删除哪些面孔。 在下图中,您可以看到已提取了 2 个相似的人脸。 虽然人脸边界框(蓝色)找到了 2 个不同的人脸,但特征对齐(绿色)被遮挡,这导致图像边界框(红色)定位到错误的人脸。 使用调试图像来确定哪个是理想的脸。
示例: DeepFaceLab 2.0 重复人脸检测
可选: 5.1) data_dst view aligned_debug results.bat
在 XNView 中打开目标对齐调试图像。使用此图像查看器可查找对齐不佳的相应 faceset 图像。
Step 5.2: Destination Faceset Sorting, Cleanup & Re-Extraction
目的:整理目的人脸集输入数据。
运行: 5.2)data_dst sort.bat
对于目标 faceset,您希望保留尽可能多的人脸图像,因为任何被删除的人脸都不会出现在最终的 deepfake 中。
Data_dst 实用程序
有一些实用程序可以帮助您进行目标图像处理。
[td]
4.2) data_dst util faceset pack.bat
将目标 faceset 打包为 data_dst/aligned/faceset.pak 文件。
删除原始文件? ( y / n ) : 选择打包后删除原始文件。
4.2) data_dst util faceset resize.bat
调整和更改目标 Faceset 图像的面部类型。调整大小的图像将在 data_dst/aligned_resized 中创建。
新图像尺寸 (128-2048):选择新的 faceset 图像尺寸(分辨率)。
更改面型( h / mf / f / wf / head / same):选择以更改面型。[注:半脸/中脸/全脸/全脸/头部/无变化]
Merge data_src/aligned_resized to data_src/aligned ?:选择用调整大小的图像替换(覆盖)原始面部图像。
4.2) data_dst util faceset unpack.bat
解压目标 data_dst/aligned/faceset.pak 文件。Faceset.pak 将被删除。
4.2) data_dst util 恢复原始文件名.bat
排序后用原始文件名重命名目标 Faceset 文件。Faceset 文件名取自原始视频帧图像文件名。
DeepFaceLab 2.0 目标实用程序
步骤 5.3:XSeg 蒙版标记和 XSeg 模型训练(此处省略)
第 6 步:Deepfake 模型训练
现在是时候开始训练 deepfake 模型了。这显然是 deepfake 过程中最重要的部分,您必须在开始之前做出几个关键决定。决定您的模型设置的主要因素是:可用的硬件、所需的质量和真实性,以及您可以投入训练的时间量。您可能需要尝试许多不同的设置,直到您生成可以在您的系统上以合理速度运行的模型。
训练开始后,某些设置将无法更改。您需要预先选择模型类型和训练器、模型架构和变体以及编码器 /解码器维度。由于有多个培训阶段和步骤,因此可以而且应该在整个过程中更改某些选项。此外,某些 DeepFaceLab 进程可能会覆盖某些选项,例如在模型预训练期间。
模特和教练
有 3 种不同的模型/训练器可供选择:Quick96、SAEHD 和 AMP。
预定义模型;对测试有用。 DF-UD,全脸,Resolution 分辨率:96,Batch size:4
Sparse Auto Encoder HD。大多数 deepfakes 的标准模型和培训。
Amplifier 放大器。目的地面部表情被放大到源。
DeepFaceLab 2.0 模型训练器
架构和变体
有 2 种架构和 4 种变体可供选择。使用 SAEHD,您可以选择任一架构和 0-4 变体的任意组合。Quick96 明确使用 DF-UD 架构。AMP 明确使用自己的架构。每种模型类型、架构和选项都会对系统性能产生独特的影响,从而影响训练速度和结果质量。
[td]
没有变形的严格面部解释。最准确和真实的源数据。
当源和目标具有相似形状的面和颜色时效果最佳。
面部特征(眼睛、嘴巴、鼻子等)的位置在源和目的地之间可能不同。
正面镜头效果更好;配置文件上的结果可能更糟。
源 faceset 必须充分覆盖目标俯仰、偏航和颜色范围。
带有一些变形的宽大面部解释。更适应目标面。
将适应不同形状和颜色的面孔。
面部特征的放置可能会略微变形以适合目标面部。
在极端角度和缺失数据上可能会得到更好的结果。
目标颜色和照明条件的更多复制。
DeepFaceLab 2.0 模型架构
[td]
通过使用相同的计算成本有效地将分辨率提高一倍来提高性能。
需要更长时间的训练,建议使用预训练模型。
分辨率必须更改为 32 的倍数(其他变体:16)。
(实验性)将激活函数设置为 Leaky ReLu(默认值:ReLu)。
DeepFaceLab 2.0 模型架构变体
您将通过键入体系结构名称、后跟连字符和变体选项(例如 df、liae、df-ud、liae-udt)来输入模型体系结构。
自动编码器和 Dimensions (Dims)
自动编码器是一种神经网络架构,能够发现 [未标记] 数据中的结构,以便开发输入的压缩表示。自动编码器是一种无监督学习技术,我们利用神经网络来完成表示学习的任务。
自动编码器、解码器和编码器值控制模型的神经网络维度,直接影响模型学习人脸的能力。
[td]
Auto encoder dimensions。影响模型学习人脸的整体能力。
Inter Dims (AMP)。影响模型学习人脸的整体能力。设置为等于或高于Auto Encoder dims。
Encoder dimensions。影响编码器(输入)提取人脸的能力。
Decoder dimensions。影响解码器(输出)重新创建人脸的能力。
Decoder mask dimensions。影响学习蒙版的质量;可能会影响训练。
DeepFaceLab 2.0 自动编码器/编码器/解码器尺寸说明
所有编码器和解码器的尺寸都应该改变,这意味着如果你提高或降低 AE Dims,你也应该提高或降低 E 和 D Dims。解码器蒙版Dims决定了学习蒙版的质量,如果您愿意,可以独立更改。Inter Dims 仅用于 AMP 模型。一般来说,更高分辨率的模型需要更高的维度。
批量大小
批量大小是 DeepFaceLab 中最重要的选项之一,因为它决定了一次(每次迭代)可以处理的图像数量。更高的批大小将导致更好的模型泛化和更快的训练(更少的迭代)。非常小的批大小 (<=4) 会慢得多,并且模型可能无法概括面部特征、颜色等。非常大的批大小最终可能会导致性能回报减少,并且创建者之间存在关于“最佳批量大小”。建议您达到至少 4 的批量大小,最好在 8-16 范围内。
批量大小可以随时更改,并且有多种模型选项会使用或多或少的系统资源,从而迫使您更改批量大小。此外,如果您选择使用预训练模型,您可能需要更改批量大小以在您的硬件上工作。您可以下载在功能更强大的系统上生成的预训练模型,降低批量大小,并使用您自己的图像进行训练。
模型训练设置
所有模型训练设置和选项 (SAEHD)[td]
Autobackup every N hour 每 N 小时自动备份一次 ( 0 – 24 )
设置自动备份间隔。 [工具提示:自动备份模型文件,每 N 小时预览一次。最新备份位于 model/<>_autobackups/01]
Write preview history 写入预览历史记录 ( y / n )
选择写入预览图像历史记录(每 30 次迭代)。[工具提示:预览历史记录将被写入 _history 文件夹。]
Choose image for the preview history 为预览历史选择图像( y / n )
(条件:写入预览历史)当训练开始时,系统会提示您选择预览图像以生成历史。
将目标迭代设置为结束并保存训练。设置为 0 表示不间断训练。
Flip SRC faces randomly 随机翻转 SRC 面 ( y / n )
[工具提示:随机水平翻转 SRC faceset。涵盖更多角度,但脸部可能看起来不那么自然。]
Flip DST faces randomly 随机翻转 DST 面 ( y / n )
[工具提示:随机水平翻转 DST 人脸集。如果未启用 src 随机翻转,则使 src->dst 的泛化更好。]
[工具提示:较大的batch size对NN的泛化效果更好,但会导致Out of Memory错误。手动为您的视频卡调整此值。]
Resolution 分辨率 (64 – 640)
(已修复) [工具提示:更高的分辨率需要更多的 VRAM 和时间来训练。-d archi 的值将调整为 16 和 32 的倍数。]
Face type 脸型(h / mf / f / wf / head)
(已修复) [工具提示:半脸/中脸/全脸/全脸/头部。半脸具有更好的分辨率,但覆盖的脸颊区域较少。中脸比半脸宽 30%。“全脸”覆盖整个面部区域,包括前额。'head' 覆盖全头,但需要 XSeg 用于 src 和 dst faceset。]
(已修复) [工具提示:“df”保留更多身份保留的面孔。'liae' 可以修复过度不同的脸型。'-u' 增加了脸部的相似度。'-d'(实验性)使用相同的计算成本将分辨率加倍。示例:df、liae、df-d、df-ud、liae-ud、……]
AutoEncoder dimensions 自动编码器尺寸 (32 – 1024)
(已修复) [工具提示:所有面部信息都将打包到 AE dims中。如果 AE dims的量不够,则例如闭眼将无法识别。更多的dims更好,但需要更多的 VRAM。您可以微调模型大小以适合您的 GPU。]
Encoder dimensions 编码器尺寸 (16 – 256)
(已修复) [工具提示:更多的暗淡有助于识别更多的面部特征并获得更清晰的结果,但需要更多的 VRAM。您可以微调模型大小以适合您的 GPU。]
Decoder dimensions 解码器尺寸 (16 – 256)
(已修复) [工具提示:更多的暗淡有助于识别更多的面部特征并获得更清晰的结果,但需要更多的 VRAM。您可以微调模型大小以适合您的 GPU。]
Decoder mask dimensions 解码器蒙版尺寸(16 - 256)
(已修复) [ 工具提示:典型蒙版尺寸 = 解码器尺寸 / 3。如果您手动从 dst 蒙版中切出障碍物,则可以增加此参数以获得更好的质量。]
Masked training 蒙版训练 ( y / n )
(条件:面部类型 wf 或 head)[工具提示:此选项仅适用于“whole_face”或“head”类型。蒙版训练将训练区域剪辑为 full_face 蒙版或 XSeg 蒙版,因此网络将正确训练人脸。]
Eyes and mouth priority 眼睛和嘴巴优先(y / n)
[工具提示:帮助解决训练过程中的眼部问题,例如“外星人的眼睛”和错误的眼睛方向。也使牙齿的细节更高。]
Uniform yaw distribution of samples 样本的均匀偏航分布 ( y / n )
[工具提示:有助于修复由于人脸集中的少量侧面而导致的模糊侧面。]
Blur out mask 模糊遮罩 ( y / n )
[工具提示:模糊训练样本应用面罩之外的附近区域。结果是脸部附近的背景变得平滑,并且在交换的脸部上不太明显。src 和 dst faceset 中的确切 xseg 蒙版是必需的。]
Place models and optimizer on GPU 在 GPU 上放置模型和优化器 ( y / n )
[工具提示:当您在一个 GPU 上进行训练时,默认情况下,模型和优化器的权重会放在 GPU 上以加速该过程。您可以将它们放在 CPU 上以释放额外的 VRAM,从而设置更大的尺寸。]
Use AdaBelief optimizer 使用 AdaBelief 优化器?(是/否)
[工具提示:使用 AdaBelief 优化器。它需要更多的 VRAM,但模型的准确性和泛化性更高。]
Use learning rate dropout 使用学习率 dropout ( n / y / cpu )
[工具提示:当面部训练足够时,您可以启用此选项以获得额外的清晰度并减少亚像素抖动以减少迭代次数。在禁用随机扭曲之前和 GAN 之前启用它。n——禁用。y – 启用.cpu – 在 CPU 上启用。这允许不使用额外的 VRAM,牺牲 20% 的迭代时间。]
Enable random warp of samples 启用样本的随机扭曲( y / n )
[工具提示:需要随机扭曲来概括两张脸的面部表情。当面部经过足够训练时,您可以禁用它以获得额外的清晰度并减少亚像素抖动以减少迭代次数。]
Random hue/saturation/light intensity 随机色调/饱和度/光强度(0.0 - 0.3)
[工具提示:随机色调/饱和度/光强度仅在神经网络的输入处应用于 src 人脸集。在面部交换期间稳定颜色扰动。通过选择 src faceset 中最近的一个来降低颜色传输的质量。因此,src faceset 必须足够多样化。典型精细值为 0.05]
GAN power GAN 强度 (0.0 – 5.0)
[工具提示:强制神经网络学习面部的小细节。仅当使用 lr_dropout(on) 和 random_warp(off) 对面部进行足够训练时才启用它,并且不要禁用它。值越高,出现伪影的机会就越高。典型的精细值为 0.1]
GAN patch size GAN 补丁大小 (3 – 640)
(条件: GAN power)[ 工具提示:patch size 越大,质量越高,需要的 VRAM 越多。即使在最低设置下,您也可以获得更清晰的边缘。典型的精细值是分辨率/8。]
GAN dimensions GAN 尺寸 (4 – 512)
(条件: GAN 强度)[工具提示:GAN 网络的维度。尺寸越高,需要的 VRAM 就越多。即使在最低设置下,您也可以获得更清晰的边缘。典型的罚款值为 16。]
‘True face’ power。( 0.0000 – 1.0 )
(条件: DF 架构)[工具提示:实验选项。判别结果面更像 src 面。更高的价值——更强的辨别力。典型值为 0.01。比较 -
Face style power(0.0 - 100.0)
[工具提示:学习预测人脸的颜色与 mask 内的 dst 相同。如果您想将此选项与“whole_face”一起使用,您必须使用 XSeg 训练的蒙版。警告:仅在 10k 次迭代后启用它,当预测的面部足够清晰以开始学习风格时。从 0.001 值开始并检查历史更改。启用此选项会增加模型崩溃的机会。]
Background style power(0.0 - 100.0)
【工具提示:学习预测人脸 mask外的区域与dst相同。如果您想将此选项与“whole_face”一起使用,您必须使用 XSeg 训练的蒙版。对于 Whole_face,您必须使用 XSeg 训练的蒙版。这可以让 face 更像 dst。启用此选项会增加模型崩溃的机会。典型值为 2.0]
Color transfer for src faceset( none / rct / lct / mkl / idt / sot )
[工具提示:将 src 样本的颜色分布更改为接近 dst 样本。尝试所有模式以找到最佳模式。]
Enable gradient clipping 启用渐变裁剪 ( y / n )
[工具提示:梯度裁剪减少了模型崩溃的机会,牺牲了训练速度。]
Enable pretraining mode 启用预训练模式 ( y / n )
[工具提示:预训练具有大量各种面孔的模型。之后,模型可以用于更快地训练。强制 random_warp=N,random_flips=Y,gan_power=0.0,lr_dropout=N,styles=0.0,uniform_yaw=Y]
DeepFaceLab 2.0 模型训练设置 (SAEHD)
预训练和使用预训练模型
您可以预训练模型以从各种面孔中学习面部特征和颜色。然后,可以使用此预训练模型启动任何具有相同核心模型设置的 deepfake。DeepFaceLab 包括
Flickr Faces HQ (FFHQ) 预训练人脸集,其中通用预训练全脸蒙版已应用于对齐图像。旧版本的 DFL 使用
CelebA 数据集 . 您可以在标记为 _internal/pretrain_faces 的文件夹中找到当前图像作为 faceset.pak 文件。通过将文件复制到 data_src/aligned 并运行文件来查看 faceset 4.2) data_src util faceset unpack.bat。您可以通过运行文件 4.2) data_src util faceset pack.bat 并将结果 faceset.pak 文件移动到 _internal/pretrain_faces 文件夹中,从 data_src/aligned 文件夹中的图像创建自己的预训练 faceset。
DeepFaceLab 2.0 预训练 Faceset (FFHQ)
当您将预训练模型下载或导入到工作空间 /模型文件夹时,您将无法更改核心模型设置,例如面类型、架构和尺寸。如果模型无法在您的系统上运行,那么您应该降低批量大小并考虑增加页面文件大小。如果模型成功加载,那么您可以考虑提高批量大小。此时,您可以继续预训练或禁用预训练模式以开始对您的 faceset 进行正常训练。
启用预训练时, DeepFaceLab 将覆盖一些模型设置。
[td]
DeepFaceLab 2.0 预训练覆盖值
训练 Deepfake 模型
本节正在审查中
运行: 6) train (AMP/Quick96/SAEHD)
该软件将加载所有人脸集并尝试运行第一次训练迭代。如果成功,则会打开训练预览窗口。如果训练器无法运行,则需要调整模型设置或 优化系统 。 命令窗口将显示当前模型设置和硬件的列表。下面是当前时间、当前迭代(周期)计数、处理当前迭代的时间、源损失值和目标损失值。这些损失值代表了训练的准确性,并且随着时间的推移将接近零,因此值越低,结果越好。随着培训的进行,这些数字将不断更新。如果数字停止更新,则意味着培训师已冻结并且可能会崩溃。
花点时间查看预览窗口。顶部是一些键盘命令。下面是损失值随时间变化的图表,以及训练图像的预览。
按 P 键更新预览窗口并注意图形和图像的变化。这些线代表损失值(准确性),因此线越低,结果越好。图像预览有几列显示正在处理的源图像和目标图像以及蒙版,以及预测的 deepfake 人脸。您将使用此预览窗口来决定何时结束培训。按 Enter 保存模型并退出。
模型训练工作流程 (SAEHD)
·
第 1 阶段:预训练(可选)
·
· 第 1 步 – 预训练模型或导入预训练模型。
· 输入所有模型设置。
· 启用预训练模式。
·
第 2 阶段:泛化/扭曲训练
·
· 第 2 步 - 随机扭曲
· 启用样本的随机扭曲
· 启用蒙版训练(仅限 WF/Head)
· 禁用预训练模式。
· (可选)启用随机翻转 SRC 面、随机翻转 DST 面、src faceset 的颜色传输
· (可选)在变形阶段添加或删除面部图像并更改蒙版
· (可选)根据需要启用渐变剪裁
· 第 3 步 - 眼睛和嘴巴优先(可选)
· 启用眼睛和嘴巴优先
· 第 4 步 - 均匀偏航(可选)
· 禁用眼睛和嘴巴优先
· 启用样本的均匀偏航分布
· 第 5 步 - 学习率丢失(可选)
· 启用使用学习率辍学
· (可选)禁用样本的均匀偏航分布
·
第 3 阶段:标准化/定期培训
·
·
第 6 步 – 定期培训
·
· 禁用随机扭曲
· 禁用统一偏航
· 禁用眼睛和嘴巴优先
· 禁用使用学习率丢失
·
第 7 步 - 样式和颜色(可选)
·
· 启用模糊遮罩、 “真脸”功能(仅限 DF)、面部样式功能、背景样式功能、(随机色调/饱和度/光强度?)
·
第 8 步 – 眼睛和嘴巴优先(可选)
·
· 启用眼睛和嘴巴优先
·
第 9 步:均匀偏航(可选)
·
· 禁用眼睛和嘴巴优先
· 启用样本的均匀偏航分布
·
第 10 步 – LRD(可选)
·
· 启用使用学习率辍学
· 禁用眼睛和嘴巴优先
· (可选)禁用样本的均匀偏航分布
·
第 4 阶段:增强/GAN 训练(可选)
·
· 第 11 步 - GAN
· 禁用眼睛和嘴巴优先
· 禁用样本的均匀偏航分布
· 设置 GAN 强度
· 设置 GAN 补丁大小
· 设置 GAN 维度
步骤 6.1:导出为 DeepFaceLive 的 DFM
如果您不使用 DeepFaceLive,请跳过此步骤。
运行: 6) export AMP as dfm.bat 或 6) export SAEHD as dfm.bat
将 AMP 或 SAEHD 模型导出为 .dfm 格式以在 DeepFaceLive 中工作。
· 选择一个已保存的模型,或输入名称以创建新模型。
[ r ] : 重命名
[ d ] : 删除
[注意:选择模型索引导出为 dfm。]
· xport quantized 输出量化?( y / n ):量化会降低精度,但会导致模型尺寸更小,计算速度更快。阅读更多关于
TensorFlow 优化 的信息。
[工具提示:使导出的模型更快。如果您有问题,请禁用此选项。]
第 7 步:合并 Deepfake 模型以构建图像
现在训练已经完成,您可以合并人脸并创建最终的 deepfake 帧图像。
运行: 7)merge (AMP/Quick96/SAEHD)
· Choose one of saved models, or enter a name to create a new model.选择一个已保存的模型,或输入名称以创建新模型。
[ r ] :重命名
[ d ] :删除
[注意:按索引选择模型进行合并。]
· Choose one or several GPU idxs (separated by comma).选择一个或多个 GPU idx(以逗号分隔)。
从列表中选择一个或多个 GPU 索引以运行提取。
选择多个 GPU 索引时建议使用相同的设备。
模型将初始化,命令窗口将显示当前模型摘要。
· Use interactive merger 使用交互式合并?( y / n ):选择是否要使用交互式(视觉预览)合并。
非交互模式没有预览窗口。
· Number of workers 线程数?(1-16):指定进程数。
[工具提示:指定要处理的线程数。较低的值可能会影响性能。较高的值可能会导致内存错误。该值不得大于 CPU 内核数。]
将收集图像对齐并计算运动矢量。
· Use saved session 使用保存的会话?( y / n ) :如果您已经使用了合并,您可以使用保存的设置继续。
交互模式显示键盘输入图、合并图像的视觉预览,并显示当前帧号和设置。您将能够更改每个单独帧的设置。您可以保存会话并稍后继续。
在非交互模式下,系统会提示您按顺序输入所有值。之后,系统将提示您输入工人数量。所有的帧都将被处理;您无法更改每帧的设置。您将无法保存或加载会话。
Interactive Merger 互动合并
在交互模式下,合并窗口将打开并显示键盘输入图,而命令窗口将显示当前帧号和设置 (config/cfg)。选择键盘映射窗口后,按 Tab 键在键盘映射和图像预览之间切换。如果您看到黑色方形预览,或者您的第一帧没有人脸,只需使用 < and > 键滚动到第一帧或人脸。您会注意到命令窗口中显示的当前帧号和设置。
图: DeepFaceLab 2.0 合并键盘输入
当您更改模式和修饰符时,您将看到命令窗口中显示的值。
示例: DeepFaceLab 2.0 合并命令窗口
为了导航框架并更改设置,您需要打开图像预览窗口( Tab)。
示例: DeepFaceLab 2.0 合并预览窗口
帧导航和处理命令
最简单的合并将涉及 3 个步骤:
· 在第一帧更改模式和修改器
· 将设置 (config/cfg) 覆盖到最后一帧 [Shift + /]
· 处理剩余帧 [Shift + >]
中间级别的合并将更改模式和修改器,覆盖最后一帧,然后前进到下一个镜头或场景,更改和覆盖配置,并为视频中的每个不同镜头或场景重复该过程。
高级合并是通过在演员或摄像机移动或照明变化时更改设置来 “即时”修改配置。您可能还想专门在包含障碍物的框架上修改配置。请记住,DeepFaceLab 合并没有关键帧功能,这意味着帧之间没有补间或插值。
[td]
DeepFaceLab 2.0 合并导航
叠加模式
覆盖模式 [`,1-6] 确定预测的面部将如何覆盖(分层)到目标图像上。
[td]
使用直方图匹配叠加。启用 “历史匹配阈值”[Q/A]。切换蒙版/未蒙版模式 [Z]
使用 OpenCV Poisson 无缝克隆来融合人脸
[4] Seamless Hist-Match 无缝直方图匹配
无缝和历史匹配的组合。启用 “历史匹配阈值”[Q/A]。
仅导出预测的(学习的)人脸。像 faceset 一样的方形图像。
DeepFaceLab 2.0 合并叠加模式
蒙版模式
蒙版模式 (X) 可让您选择要使用的蒙版形状。您可以使用 Show Alpha Mask (V) 切换遮罩覆盖视图。
[td]
基于目的地的 XSeg 蒙版(需要 XSeg 模型)
使用最小面积的组合 XSeg 蒙版(需要 XSeg 模型)
learned-prd*learned-dstXSeg-prd XSeg-dst
DeepFaceLab 2.0 合并蒙版模式
颜色转移模式
颜色传输模式 [C] 会将颜色从目标面传输到预测面。
[td]
DeepFaceLab 2.0 合并颜色传输模式
所有合并模式和修改器 [td]
[Z] Masked Hist-Match 蒙面历史匹配
[Q,A] His-Match Threshold
[W,S] Erode Mask Modifier 侵蚀蒙版修改器
[E,D] Blur Mask Modifier 模糊蒙版修改器
[R,F] Motion Blur Power 运动模糊能力
[U,J] Output Face Scale 输出人脸比例
[C] Color Transfer Mode 色彩转移模式
[Y,H] Blur/Sharpen Amount 模糊/锐化量
[T,G] Super Resolution Power 超强解析力
[I,K] Image Denoise Power 图像去噪
[O,L] Bicubic Degrade Power
[P,;] Color Degrade Power 颜色退化
DeepFaceLab 2.0 合并模式和修改器
非交互式合并
在非交互模式下,系统会提示您按顺序输入所有值。之后,系统将提示您输入工人数量。所有的帧都将被处理;您无法更改每帧的设置。您将无法保存或加载会话。
·
选择模式:
·
· (0) original 原创
· (1) overlay 叠加
· (2) hist-match 直方图匹配
· (3) seamless无缝
· (4) seamless-hist-match 无缝匹配
· (5) raw-rgb
· (6) raw-predict
·
(有条件的)蒙版的直方图匹配?(是 /否):
·
·
(有条件的)直方图匹配阈值( 0..255):
·
·
选择蒙版模式:
·
· (0) full
· (1) dst
· (2)learned-prd
· (3)learned-dst
· (4) learned-prd*learned-dst
· (5) learned-prd+learned-dst
· (6) XSeg-prd
· (7) XSeg-dst
· (8) XSeg-prd*XSeg-dst
· (9)learned-prd*learned-dst*XSeg-prd*XSeg-dst
·
选择侵蚀蒙版修改器( -400..400):
·
·
选择模糊蒙版修改器( 0..400):
·
·
选择运动模糊强度( 0..100):
·
·
Use two pass mode 使用双通模式?(是/否?:帮助):
·
·
选择 pre_sharpen 强度(0..100 ?:help):
·
·
选择输出面部比例修改器( -50..50):
·
·
颜色转移到预测面( rct/lct/mkl/mkl-m/idt/idt-m/sot-m/mix-m):
·
·
选择锐化模式:
·
· (0) None
· (1) box
· (2) gaussian 高斯
·
选择超分辨率( 0..100 ?:help):
·
·
通过降噪强度选择图像降级( 0..500):
·
·
通过双三次重新缩放强度( 0..100)选择图像降级:
·
·
降低最终图像的色彩强度( 0..100):
·
导出以进行后处理
您可以在后处理软件中使用合并的图像和蒙版序列作为 DeepFaceLab 合并的替代或补充。
您可能需要这些元素:
· 原始目的视频
· 提取的目标帧
· 合并帧图像序列
· 合并蒙版图像序列
将这些图像序列导入您的编辑或后处理软件。您的软件可能会提供导入图像序列的特定方法,否则请查找文档或教程。然后,您可以使用合并的蒙版图像为合并的帧图像创建遮罩。之后,您应该可以自由修改遮罩、颜色校正和在障碍物上绘制。一些创作者使用多个蒙版、具有不同设置的合并图像序列,甚至多个模型和面部类型来创建高级构图。
第 8 步:将帧图像合并到视频
整个过程的最后一部分是将新的 deepfake 帧图像合并到带有原始目标音频的视频文件中。
运行: 8) merged to *.bat
将最终图像序列合并到目标视频。在工作区文件夹中生成 result.* 和 result_mask.*。
· Bitrate of output file in MB/s 以 MB/s 为单位的输出文件比特率:选择视频比特率。
合并完成后关闭窗口。
[td]
将最终图像序列以 AVI 格式合并到目标视频。以 MB/s 为单位的输出文件比特率:选择视频比特率。在工作区文件夹中生成 result.avi 和 result_mask.avi。
8) merged to mov lossless.bat
将最终图像序列作为无损 MOV 合并到目标视频。在工作区文件夹中生成 result.mov 和 result_mask.mov。
8) merged to mp4 lossless.bat
将最终图像序列以无损 MP4 格式合并到目标视频。在工作区文件夹中生成 result.mp4 和 result_mask.mov。
将最终图像序列作为压缩 MP4 合并到目标视频。 以 MB/s 为单位的输出文件比特率:选择视频比特率。在工作区文件夹中生成 result.mp4 和 result_mask.mp4。