AIBL论坛

 找回密码
 立即注册
本论坛所有软件旨在帮助用户创建逼真且有趣的内容,帮助做自媒体的人制作原创有趣的视频或广告,如果使用别人的肖像,使用之前需获得同意和许可(建议使用AI生成的人脸),严禁使用软件制作任何不正规视频,如发现用于不正规用途,一律删号处理
查看: 2890|回复: 13

DeepFaceLab 2.0 指南

[复制链接]
发表于 2023-9-9 09:58:43 | 显示全部楼层 |阅读模式
步骤 0 - 简介:

1. 要求。

Deep Face Lab 2.0 的使用需要具有现代 GPU 的高性能 PC、充足的 RAM、存储和快速 CPU。通常建议大多数用户使用 Windows 10,但更高级的用户可能希望使用 Linux 以获得更好的性能。Windows 11 也可以工作。

制作非常基本和低质量/分辨率的深度伪造的最低要求:

- 支持AVX和SSE指令
的现代4核CPU - 16GB内存 - 现代英伟达或AMD GPU,具有8GB VRAM
的内存
- 充足的存储空间和大页面文件

确保启用硬件加速 GPU 调度[/url]在 Windows 10/11 下,并确保您的 GPU 驱动程序是最新的。

2. 为您的 GPU 下载正确的 DFL 版本(内部版本命名方案可能会更改):

- 对于 Nvidia GTX 900-1000 和 RTX 2000 系列以及使用与这些系列相同架构的其他 GPU,请使用“DeepFaceLab_NVIDIA_up_to_RTX2080Ti”版本。
- 对于 Nvidia RTX 3000-4000 系列卡和其他使用相同架构的 GPU,请使用“DeepFaceLab_NVIDIA_RTX3000_series”构建。
- 对于现代 AMD 显卡,请使用“DeepFaceLab_DirectX12”构建(在某些较旧的 AMD GPU 上可能不起作用)。


第 1 步 - DFL 基础知识:

DeepFaceLab 2.0 由多个.bat组成,这些脚本用于运行创建深度伪造所需的各种进程,在主文件夹中您将看到它们和 2 个文件夹:

_internal - 内部文件,使DFL工作的东西
工作区 - 这是您的模型、视频、帧、数据集和最终视频输出所在的位置。
基本术语:

SRC - 始终是指我们试图将其面部交换为目标视频或照片的人的内容(帧、面部)。

SRC 集/SRC 数据集/源数据集/SRC 人脸 - 提取的人脸(源人脸的平方比例图像文件,其中包含其他数据,如地标、蒙版、xseg 标签、原始帧上的位置/大小/旋转)我们试图交换到视频中的人。

DST - 始终指我们交换人脸的目标视频(或 DST/DST 视频)中的内容(帧、人脸)。

DST 集/DST 数据集/目标数据集/DST 人脸 - 目标人脸的提取人脸集合,我们将用 SRC 的相似性替换其人脸,格式相同,包含与 SRC 人脸相同类型的数据。

帧 - 从源视频或目标视频中提取的帧,提取帧后,它们分别放置在“data_src”或“data_dst”文件夹中。

人脸 - 从所用视频或照片的原始帧中提取的人脸的 SRC/DST 图像。

模型 - 构成用户可以创建/训练的 SAEHD、AMP 和 XSeg 模型的文件集合,全部放置在“工作区”文件夹内的“模型”文件夹中,基本描述模型如下(稍后在指南中详细介绍):

1. SAEHD - 最流行和最常用的模型,基于各种架构有几种不同的变体, 每个都有自己的优点和缺点,但一般来说,当SRC和DST都有一些相似之处时,它意味着交换面部,特别是一般的面部/头部形状。可以自由重用,预训练,通常可以提供质量不错的快速结果,但某些架构可能会受到低相似度或照明和颜色匹配不佳的影响。

2. AMP - 新的实验模型,可以更好地适应源数据并保留其形状,这意味着您可以使用它来交换看起来完全不一样的面孔,但这需要手动合成,因为 DFL 没有更高级的遮罩技术,例如背景修复。与SAEHD不同,SAEHD没有不同的架构可供选择,并且在重用方面不太通用,训练时间更长,也没有预训练选项,但可以提供更高的质量,结果看起来更像SRC。

3. 快速 96 - 测试模型,使用 SAEHD DF-UD 96 分辨率参数和全面脸类型,用于快速测试。

4. XSeg - 用户可训练的掩码模型,用于为 SRC 和 DST 人脸生成更精确的掩码,可以排除各种障碍物(取决于 SRC 和 DST 人脸上的用户标签),DFL 附带通用训练的全脸遮罩模型,如果您不想立即创建自己的标签,可以使用。

XSeg 标签 - 用户在 XSeg 编辑器中创建的用于定义人脸形状的标签,还可能包括 SRC 和 DST 人脸上的排除(或首先不包括)障碍物,用于训练 XSeg 模型生成掩码。

掩码 - 由 XSeg 模型生成,需要掩码来定义应该训练的面部区域(无论是 SRC 还是 DST 面部),以及定义合并 (DST) 期间最终遮罩所需的形状和障碍物。基本面具的一种形式也是 embe默认情况下,提取的人脸源自面部特征点,它是一个基本的面具,可用于使用全脸脸型或更低型号进行基本交换(指南后面有关人脸类型和面具的更多信息)

现在您已经了解了一些基本术语,是时候弄清楚您到底想做什么了。

根据您尝试面对交换的视频的复杂程度,您要么只需要几次采访,要么可能需要收集更多的源内容来创建您的 SRC 数据集,其中可能包括高分辨率照片、电影、电视节目等,这个想法是建立一个涵盖尽可能多的角度的集合, 目标视频中尽可能存在的表情和照明条件,因为您可能怀疑这是制作良好深度伪造的最重要部分,并不总是可以找到所有必需的镜头,因此为什么您永远无法实现 100% 的成功与你制作的所有视频,即使你学会了所有的技巧和技术,除非你只专注于非常简单的视频。请记住,这不是关于面孔的数量,而是关于表情、角度和照明条件的多样性,同时保持所有面孔的良好质量,而且你最终使用的不同来源越少,与源的相似性就越好,因为模型将更容易学习来自同一来源的人脸,而不是必须学习来自更多不同来源的相同数量的人脸。来源。

一个好的 deepfake 还要求你的源人和目标人都有相似形状的头部,同时可以交换看起来完全不一样的人,新的 AMP 模型有望解决不同脸型的问题 头部的宽度和长度以及下颌线的形状仍然很重要, 下巴和脸部的一般比例相似,以获得最佳效果。如果两个人也做出相似的表情,那就更好了。

假设您知道将使用什么视频作为目标,您收集了大量源数据来创建源集,或者至少确保有足够的源数据并且质量良好,您的源人和目标人都有相似形状的头部,现在我们可以继续实际创建视频的过程, 请按照以下步骤操作:


步骤 2 - 工作区清理/删除:


1)清除工作区 - 从“工作区”文件夹中删除所有数据,当您下载DFL的新版本时,“工作区”文件夹中有一些deafult的演示文件,您可以使用它们来练习您的第一个伪造,您可以手动删除它们或使用此.bat来破坏您的“工作区”文件夹,但由于您很少在完成项目后删除模型和数据集,因此.bat基本上是无用和危险的由于您可能会意外删除所有作品,因此我建议您删除此.bat。


步骤 3 - 源内容收集和提取:


要创建高质量的源数据集,您需要找到主题的源材料,可以是照片或视频,视频是首选,因为需要各种表情和角度来覆盖所有可能的面部外观,以便模型可以正确学习它,另一方面,照片通常提供出色的细节,非常适合简单的正面场景,并将提供更清晰的结果。您还可以组合视频和照片。以下是您需要确保的一些事项,以便源数据集尽可能好。

1. 视频/照片应涵盖所有或至少大部分可能的面部/头部角度 - 向上、向下、向左、向右、直视相机以及介于两者之间的所有内容,实现它的最佳方法是使用多个采访和许多电影,而不是依赖单个视频(主要具有一个角度和一些小的变化和一种照明类型)。

提示:如果您的 DST 视频不包含某些角度(如侧脸轮廓)或照明条件,则无需包含具有此类照明和角度的源,您可以创建一个仅适用于特定类型角度和照明的源集,或者创建一个更大、更通用的源集,该集应该适用于多个不同的目标视频。这取决于您将使用多少个不同的视频,但请记住,使用太多不同的来源实际上会降低结果的相似性,如果您可以用较少的来源覆盖所有角度和很少的照明条件,那么实际使用更少的内容总是更好的,从而使SRC集更小。

2. 视频/照片应涵盖所有不同的面部表情 - 包括张/闭嘴、睁开/闭上眼睛、微笑、皱眉、眼睛看向不同方向 - 表情越多,效果就越好。

3. 源内容应保持一致 - 您不希望清晰、锐利和高质量的面孔旁边出现模糊、低分辨率和严重压缩的面孔,因此您应该只使用你能找到的最高质量的视频和照片,但是如果您不能或某些角度/表情仅存在于较低质量/模糊的视频/照片中,那么您应该保留这些并尝试放大它们。

可以使用 Topaz 等软件直接在帧或视频上完成放大,也可以在 DFDNet、DFL Enhance、Remini、GPEN 等人脸上(提取后)完成放大(新的升级调用方法一直在创建,机器学习也在不断发展)。

提示:在以下情况下,良好的一致性尤其重要:

有胡须的脸 - 尽量只使用同一天拍摄的单部电影或照片和采访,除非你要交换的脸很小,你无法区分单个头发,在这种情况下,允许混合在不同日期拍摄的源照片,但前提是胡须仍然具有相似的外观。

换头短发 - 由于头上头发的随机性更强,你只能使用在同一件照片上拍摄的内容(采访、照片),不要将其与其他内容混合,或者如果你使用的是电影,那么坚持看一部电影。

超越如果头发和胡须总是以相同的方式风格化,或者是假的,因此不会改变,在这种情况下,您可以根据需要混合尽可能多的来源。

化妆的脸 - 避免包括化妆与给定人通常具有的类型明显不同的来源,如果您必须使用与其他人不符的特定妆容的视频或照片尝试对帧进行颜色校正(在具有批量图像处理的帧上提取后或在视频编辑期间之前),这也可以在提取后完成,但需要先保存元数据并在编辑面部后恢复它, 更多关于它的信息在下一步)。

4. 其中大部分应该是高质量的 - 如上所述,您可以保留使用一些模糊的照片/视频,但前提是您无法在其他照片/视频中找到某些表情/面部角度,但请确保将它们放大到可接受的质量,太多放大的 conteent 可能会对质量产生负面影响,因此最好仅在数据集的一小部分上使用它(如果可能, 在某些情况下,可能需要以某种方式增强接近 100% 的集合)。

5. 照明应保持一致 - 一些小阴影是可以的,但您不应该包含具有刺眼定向照明的内容,如果可能的话,请尝试仅使用阴影柔和且光线漫射的阴影。对于 LIAE 架构来说,它可能没有那么重要,因为它可以更好地处理照明,但对于 DF 架构,每个角度有几个照明条件很重要,最好至少 3 个(正面漫射,左右有柔和的阴影,不要太暗,细节必须在阴影区域中仍然可见或没有阴影, 只是漫射照明,在脸部的左侧或右侧创建更明亮的区域)。源人脸集/数据集可以包含不同亮度的人脸,但不应包含过暗的人脸,除非 DST 也较暗。

6.如果您仅使用图片或它们是数据集的大多数 - 请确保它们填写上述所有检查,20张左右的图片是不够的。甚至不要费心尝试用这么少的图片制作任何东西。

7. 将源数据集中的人脸总数保持在 3.000 - 8.000 左右 - 在某些情况下,可能需要更大的集合,但我建议将通用集合保持在 12k 以下,如果真的需要,则保持在 15k 以下,更大的集合然后产生更模糊的结果,它们也需要更长的时间来训练,但如果你的目标视频几乎覆盖了所有可以想象的角度,那么将需要大的 SRC 集来覆盖所有那些角度。

现在您已经整理了源内容,是时候从视频中提取帧了(照片不需要更多工作,但您可以查看它们并删除任何模糊/低分辨率图片、黑白图片等)。

提示:重新。Gardles 提取帧的方法 您将使用 提前为所有不同的源准备文件夹。

您可以将它们放置在我喜欢将它们放置在data_src、data_dst和模型文件夹旁边的工作区文件夹中的任何位置,根据所使用的来源(电影标题、采访标题、事件或照片日期)命名这些文件夹,然后将相应的帧放置在提取完成后的EM,然后重命名每组帧,以便清楚地了解给定面的来源。

这些名称在人脸提取(步骤 4)后嵌入到人脸中,因此即使您随后重命名它们(人脸)或对它们进行排序,它们也会保留原始文件名,您可以使用您将在步骤 4 中了解的.bat恢复该文件名。

您可以通过几种不同的方式提取帧:

a) 通过将每个视频重命名为 data_src 来单独提取每个视频(视频应为 mp4 格式,但 DFL 使用 FFMPEG,因此它可能应处理任何格式和编解码器) 2) 从视频中提取图像 data_src 从视频文件中提取帧,然后将它们输出到“data_src”文件夹中(它是自动创建的), 可用选项:

- FPS - 跳过视频默认帧速率,输入其他帧速率的数值(例如,输入 5 只会将视频渲染为每秒 5 帧,这意味着提取的帧更少),具体取决于长度 我建议 5-10FPS 进行 SRC 帧提取,无论您如何提取帧(方法 b 和 c)

- JPG / PNG - 选择提取帧的格式,JPG较小且质量略低,PNG较大但提取的帧质量更好,与原始视频相比,PNG应该不会降低质量。

b)您将所有视频导入您选择的视频编辑软件,确保您不会一起编辑不同分辨率的视频,而是单独处理720p,1080p,4K视频,此时您还可以剪切视频以保留具有最佳质量面部的最佳镜头,因此脸部距离较远/很小的镜头, 模糊(失焦,严重的运动模糊),非常暗或用单色照明,或者只是照明不是很自然,或者同时有非常明亮的部分和暗影,以及大部分脸部被遮挡的照片,除非这是一个非常独特的表情,不经常出现,或者它的角度也很少被发现(例如人们在看直接向上/向下),或者如果您的目标视频实际上具有这种风格化的照明,有时您只需要在其他任何地方找不到给定的角度,只需将这些较低质量的面部渲染,然后将视频直接渲染到 JPG 或 PNG 帧中到您的 data_src 文件夹中(如果您之前删除了它,请手动创建它)并以给定的分辨率渲染整批视频或单独渲染每个剪辑。

c) 使用 MVE,它的场景检测会为您剪切,然后使用它以特定的帧速率和文件格式将您选择的场景输出到文件夹中,然后重命名它们,以便您的所有 ace 都具有与原始视频标题相对应的唯一名称,在后期阶段非常有帮助, 您可以在本指南中阅读有关 MVE 的更多信息:

https://mrdeepfakes.com/forums/thread-mve-machine-video-editor-guide

3。视频剪切(可选):3)剪切视频(将视频放在我身上) - 允许通过将任何视频拖放到该.bat文件上来快速剪切到所需的长度。如果您没有视频编辑软件并且想要快速剪切视频,这很有用,但是由于存在 MVE(免费),它的用处是 que因为它只能简单地将视频的一部分从A点剪切到B点,手动剪切视频或使用MVE。


步骤4 - 从目标视频中提取帧(DATA_DST.MP4):


您还需要从目标视频中提取帧,在按照您想要的方式对其进行编辑后,将其渲染为data_dst.mp4并使用 3) 从视频中提取图像 data_dst FULL FPS,帧将被放入“data_dst”文件夹中,可用选项是 JPG 或 PNG 格式输出 - 如果您想要更小的尺寸,请选择 JPG, PNG 获得最佳质量。没有帧速率选项,因为您想以原始帧速率提取视频。


步骤 5 - DATA_SRC人脸/数据集提取:


准备 SRC 数据集的第二阶段是从位于“data_src”文件夹内的提取帧中提取人脸。假设您确实重命名了其文件夹中的所有帧集,将它们移回主“data_src”文件夹并运行以下内容 4) data_src人脸集提取 - 使用 S3FD 算法的自动提取器,这将处理您集中的大多数人脸,但并不完美,它将无法检测到某些人脸并产生许多误报并检测其他人,您将不得不或多或少手动删除。

还有 4) data_src faceset 提取手册 - 手动提取器,有关用法,请参见 5.1。您可以使用它手动对齐某些面孔,特别是如果您有一些图片或电影中的小来源,这些图片或小来源具有一些罕见的角度,这些角度对于自动提取器来说往往很难(例如直接向上或向下看)。

S3FD和手动提取器的可用选项是:

- 使用哪个GPU(或CPU)进行提取 - 使用GPU,它几乎总是更快。

- 面部类型:

a) 全脸/FF - 适用于 FF 型号或下脸类型(半脸/Hf 和中半脸/MF,现在很少使用)。

b) 全脸/WF - 适用于 WF 或更低型号,推荐作为通用/面向未来的解决方案,适用于 FF 和 WF 型号。

c) 头部 - 对于 HEAD 模型,可以与 WF 或 FF 等其他模型配合使用,但需要非常高的提取分辨率才能使面部具有与低覆盖面类型相同的细节水平(清晰度),使用 3D 地标而不是 FF 和 WF 中的 2D 地标,但仍与使用这些人脸类型的模型兼容。

请记住,您始终可以使用 4.2) data_src/dst util faceset 调整大小或 MVE(它也可以将较低的分辨率/面部类型设置为较高的面板类型集,但需要您保留原始帧和照片)。因此,如果您主要使用 FF 和 WF 型号进行面部交换,我建议使用 WF,而 HEAD 用于主要用于 HEAD 交换的短发套装,但也建议您在某些时候用于 FF/WF 面部交换。

- 图像中的最大人脸数 - 提取器应从帧中提取多少张人脸,0 是建议值,因为它提取尽可能多的人脸。选择 1 或 2 将仅从每帧中提取 1 或 2 个面。

- 数据集的分辨率:这个值很大程度上取决于源帧的分辨率,以下是我个人的建议,取决于源剪辑的分辨率,你当然可以使用不同的值,你甚至可以测量给定源中最大的脸有多大,并将其用作值(记住以 16 为增量使用值)。

以后也可以通过使用 4.2) data_src/dst util faceset 调整大小或 MVE 来更改分辨率,您甚至可以使用 MVE 提取具有估计面部大小选项的面部,该选项将使用从提取的面部、原始帧中获取地标数据,并以帧上每个人脸的实际大小再次重新提取整个集。您可以在这两个 MVE 指南中阅读有关更改人脸类型、数据集分辨率等的更多信息。广告:

https://mrdeepfakes.com/forums/thread-how-to-fix-face-landmarks-with-mve

https://mrdeepfakes.com/forums/thread-mve-machine-video-editor-guide

我建议 WF 使用以下值:

720p 或更低分辨率的源 - 512-768 1080p 源 - 768-1024
4K 源 -
1024-2048

对于 HEAD 提取,请添加额外的 256-512,以确保您不会丢失提取人脸的任何细节,或者在最靠近相机的帧上测量头部的实际尺寸。如有疑问,请使用 MVE 提取启用了估计人脸大小选项的人脸。

- Jpeg 质量 - 使用 100 获得最佳质量。DFL 只能提取 JPG 格式的人脸。没有理由低于100,尺寸差异不会很大,但质量会急剧下降,导致质量变差。

- 选择是否生成“aligned_debug”图像 - 可以在之后生成,它们用于检查地标是否正确,但这也可以使用 MVE 完成,您实际上可以使用 MVE 手动修复地标,因此在大多数情况下,这对于 SRC 数据集不是很有用。


步骤 6 - DATA_SRC排序和清理:

SRC 数据集提取完成后,下一步是清理 SRC 数据集中的误报和错误对齐的人脸。为了帮助您对面部进行排序,如果它是一个小集合并且只有几个视频,使用提供的排序方法应该绰绰有余,如果您使用的是更大的集合,请使用 MVE 进行排序(查看指南了解更多信息)。

要执行排序,请使用 4.2) data_src排序 - 它允许您使用各种排序算法对数据进行排序,这些是可用的排序类型:

[0] 模糊 - 按图像模糊度排序(由对比度决定),相当慢的排序方法,不幸的是在检测和正确排序模糊的面部方面并不完美。
[1] 运动模糊 - 通过检查运动模糊对图像进行排序,有利于去除具有大量运动模糊的面部,比 [0] 模糊更快,可以用作替代方案,但类似于 [0] 不完美。
[2] 面偏航方向 - 按偏航排序(从面向左到向右)。
[3] 面间距方向 - 按音高排序(从面向上看到向下看)。
[4] 源图像中的人脸矩形大小 - 按原始帧上的人脸大小排序(从最大到最小)。比模糊快得多。
[5] 直方图相似性 - 按直方图相似性排序,末尾的不相同面孔,可用于删除外观截然不同的面孔,也将它们组合在一起。
[6] 直方图差异 - 如上所述,但不同的面孔位于开头。
[7] 亮度 - 按整体图像/面部亮度排序。
[8] 色调 - 按色调排序。
[9] 黑色像素的数量 - 按完全黑色像素的数量排序(例如,当面部与帧分离并且仅部分可见时)。
[10] 原始文件名 - 按原始文件名(从中提取面的帧)排序。没有 _0/_1 后缀(假设每帧只有 1 个面)。
[11] 图像中的一张人脸 - 按照原始帧中有多少张面孔的顺序对人脸进行排序。
[12] 绝对像素差异 - 按图像工作方式的绝对差异排序,有助于删除外观截然不同的面孔。
[13] 最佳面孔 - 按几个因素排序,包括模糊和删除重复/相似的面孔,具有我们想要多少张面孔的目标 排序后,丢弃的面孔被移动到文件夹“aligned_trash”。
[14] 最佳人脸更快 - 与最佳人脸类似,但在源图像中使用人脸矩形大小而不是模糊来确定人脸质量,比最佳人脸快得多。

我建议从简单的直方图排序 [5] 开始,这会将看起来相似的人脸分组在一起,这包括我们想要删除的所有坏人脸,因此它使手动选择过程变得更加容易。

初始排序完成后,打开对齐的文件夹,您可以使用Windows资源管理器浏览它,也可以使用DFL附带的外部应用程序,该应用程序可以更快地加载图像,使用4.1)data_src查看对齐结果来打开它。

之后,您可以按偏航和俯仰进行额外的排序,以删除任何看起来正确但实际上具有不良地标的面。
接下来,您可以按色调和亮度排序,以删除任何严重着色或非常暗的面孔,如求和您在直方图排序后还没有这样做。
然后,您可以使用按模糊,运动模糊和面部矩形大小排序来删除任何模糊的面部,具有大量运动模糊的面部和小面部。之后,您应该拥有相对干净的数据集。
最后,您可以使用所需的任何其他方法对它们进行排序,SRC 面孔的顺序和文件名对任何事情都无关紧要,但是我总是建议恢复原始文件名,但不要使用排序选项 10,而是使用 - 4.2.other) data_src util 恢复原始文件名。

但是,如果您有包含数十个采访、数千张高分辨率图片和许多电影和电视节目剧集的大型数据集,您应该考虑采用不同的方法来清理和分类您的布景。

大多数认真制作深度伪造并正在处理大型复杂源集的人很少使用 DFL 进行排序,而是使用称为机器视频编辑器或简称 MVE 的外部免费软件。MVE带有自己的排序方法,几乎可用于制作deepfake视频的所有步骤。这还包括自动场景剪切和帧导出(方法 c),用于观察源内容中的帧,如步骤 2 - SRC 数据收集中所述)、数据集增强、标记/遮罩、编辑地标等等。

要关注她的是 Nvidia 相似排序选项,它的工作原理类似于直方图排序,但是一种机器学习方法,可以更好地对面孔进行分组,这样您就可以按顺序获得列表中您想要的人的 99% 的面孔,并且删除其他面孔要快得多,它通常还会对不正确的面孔进行分组, 戴眼镜的面孔,黑白面孔或色调浓重的面孔更精确地结合在一起,您将获得面部组预览,您可以在其中选择或删除特定的面部组,甚至可以在删除它们之前查看该组中的面部,但您也可以像在Windows资源管理器或XnView中一样浏览它们。

MVE也有一个不和谐的服务器(SFW,那里不允许成人deeepfake谈话),你可以在github页面上找到它的链接。该服务器上还有其他指南,请在提问之前先观看它们。

无论您使用 MVE 还是 DFL 对集合进行排序,最后都可以执行一些最后的步骤 - 重复删除:

您可以在所有剩余的人脸上做的第一件事是使用 visipics 或 dupeguru 等软件(或任何其他可以检测相似人脸和重复面孔的软件)来检测整组人脸中非常相似和重复的人脸, 我提到的两个具有可调节的“功率”设置,因此您只能删除基本完全相同的面孔或增加设置并删除更多非常相似的面孔,但请注意不要删除太多相似的面孔,也不要实际删除它们,例如在 visipics 中您可以选择移动它们,这就是我的建议, 为差异创建几个文件夹租金相似性级别(滑块按步骤工作,因此您可以删除在步骤 0 中检测到的所有内容,并将人脸从步骤 1-3 移动到不同的文件夹)。这将略微减少面孔数量,这将加快训练速度,并使集合中不那么充满不必要的相似面孔和重复项。您可以删除 lvl 0(完全相同的人脸)和可能为 lvl 1 的人脸,具体取决于有多少重复项,然后在电源上执行 lvl 2 和 lvl 3,并将两者移动到两个相应地命名的单独文件夹中。然后,您始终可以为具有不同眼睛方向或细微表情变化的其他面孔检索它们。

接下来(假设您在提取之前重命名了帧),最好根据面孔的来源将面孔移动到不同的文件夹中: 创建一个适合您的文件夹结构,我建议以下结构:


- 电影,电视节目,采访和照片的主要文件夹(随意根据素材类型添加其他类别)
- 在每个单独的来源中,每个单独的来源都有更多文件夹(对于照片,您可以根据照片类型或年份进行分类,或者将其全部放在一个文件夹中) - 在给定来源的每个单独文件夹中,一个用于最清晰,最佳面孔的文件夹,剩下的应该松散地放置在基本文件夹中
- 您计划增强/放大的所有模糊面孔的文件夹(在下面的高级中详细介绍)

- 所有放大人脸的文件夹 - 所有重复面的文件夹
- 最后是主文件夹,您可以简单地命名对齐或主数据集,您可以在其中组合来自所有来源和放大人脸
的最佳面孔。

请记住,所有数据都在图像本身中,您可以自由地将它们移动到不同的文件夹,制作副本/备份,将它们存档在不同的驱动器,计算机上,通常您可以自由地将它们移动到DFL之外。RAID 不是备份 - 2-3 个副本、冷存储、不同位置不同介质上的附加副本。至少每周或两周备份一次新数据,具体取决于您最终创建的数据量,最坏的情况是只备份几个便携式硬盘驱动器(基于SSD显然更好)。

完成此操作后,您的“data_src”文件夹中应该有一堆文件夹,并且您的“对齐”文件夹现在应该是空的,因为您已将所有面孔移动到不同的面孔,请将其删除。


高级 - SRC 数据集增强。


提取后,您可能希望或需要提高某些面部的质量和清晰度/细节水平。有些人放大整个数据集,而有些人只移动他们想要放大的模糊面孔,以这种方式分隔文件夹和放大数据集的一部分,这可以在制作最终集之前完成(放大所有模糊的面孔,无论你是否在训练期间使用它们)或之后制作最终集(只放大那些你训练实际需要的面)。但是,您应该只放大您真正需要的内容,例如,如果您已经很少进行高质量的采访,并且想要升级另一个具有相似语气、表情和角度的采访,然后跳过它,最好使用已经清晰和高质量的内容,而不是为了它而放大所有内容。高档的稀有面孔,罕见的表情,你没有任何尖锐面孔的角度。

首先收集所有要放大的模糊面孔并将它们放入名为“blurry”的文件夹中(例如,随心所欲地命名),接下来根据放大方法,您可能不必也可能不必保存元数据,一些放大方法会重新训练此信息,但大多数方法不会因此您需要这样做。我还建议您备份模糊的文件夹,以防您使用的某些放大方法会替换文件夹中的原始图像(大多数输出到不同的文件夹)。将“模糊”重命名为“对齐”并运行:

4.2) data_src利用面部集元数据保存 - 将 SRC 数据集的嵌入元数据保存在对齐的文件夹中作为元.dat文件,如果您要放大人脸或对它们进行任何类型的编辑,例如颜色校正(不允许旋转或水平/垂直翻转),这是必需的。

完成对面孔的放大/放大/编辑后,您需要恢复元数据(在某些情况下),为此,请将“放大”文件夹重命名为“对齐”(或者如果您使用 Colab 或一般没有在本地放大人脸,则只需将它们复制到新的“对齐”文件夹),将您的元.dat文件从原始“模糊”文件夹复制到“对齐”文件夹并运行: 4.2) data_src利用人脸集元数据恢复 - 这将恢复元数据,现在这些人脸已准备好使用。

如果您忘记保存元数据,只要您有原始模糊文件夹,您可以稍后这样做,但是如果您丢失了原始文件夹,现在只有放大的结果而没有元数据,您唯一能做的就是从这些人脸中提取人脸。


步骤 7 - DATA_DST人脸/数据集提取:


此处的步骤与源数据集几乎相同,只有少数例外。首先使用以下方法从 DST 帧中提取人脸: 5) data_dst人脸提取 - 利用 S3FD 人脸检测算法的自动人脸提取器。

除此之外,您还会注意到其他提取方法,现在不要使用它们,但您需要熟悉它们:

5) data_dst面部提取 手动重新提取已删除的ALIGNED_DEBUG - 这也很重要,它用于在从提取后沿着“对齐”文件夹创建的文件夹“aligned_debug”中删除相应的调试图像后手动重新提取丢失的面孔, 这使得交换所有面成为可能,更多关于它在步骤5.1中的使用。
5) data_dst面部提取手册 - 手动提取器,有关用法,请参见 5.1。
5) data_dst面部集提取 + 手动修复 - S3FD + 手动传递 对于模型未检测到任何人脸的帧,您可以使用它代替 5) data_dst人脸集提取 - 初始提取完成后,将打开一个窗口(与手动提取或重新提取相同),您可以在其中从提取器无法检测到任何人脸的帧中提取人脸, 甚至不是误报,但这意味着在您重新提取所有人脸之前,提取不会完成,因此不建议这样做。

现在只需使用第一种方法。

所有提取器模式的可用选项与 SRC 相同,除了缺乏我们要提取的人脸数量的选择 - 它总是尝试提取所有面孔,我们是否想要文件夹也没有选择aligned_debug选择,它总是生成的,因为它需要手动重新提取。


第 8 步 - DATA_DST分类、清理和面部重新提取:


对齐data_dst面后,我们必须清理该组。

运行 5.2) data_dst排序 - 与 src 排序相同,使用 [5] 直方图相似性排序选项,下次运行 5.1) data_dst查看对齐的结果 - 这将允许您使用外部应用程序查看“对齐”文件夹的内容,该应用程序提供比默认 Windows 资源管理器更快的缩略图生成,在这里您可以简单地浏览所有面孔并删除所有坏面孔(由于坏面孔,与旁边的其他面孔相比非常小或大由不正确的地标以及误报和其他人脸引起的旋转/缩放),完成后运行 5.2) data_dst util 恢复原始文件名 - 其工作原理与源文件名相同,它将恢复原始文件名和所有面的顺序。

接下来,我们必须删除调试帧,以便我们可以使用手动重新提取器从提取器无法正确提取人脸的帧中提取人脸,为此运行 5.1) data_dst查看aligned_debug结果 - 这将允许您快速浏览“aligned_debug”的内容,在这里您检查所有调试帧以查找目标人脸上的地标放置不正确的帧(不对齐面部,眼睛,鼻子,嘴巴,眉毛的边缘)或缺失,必须删除这些帧,这将告诉手动重新提取器要向您显示哪些帧,以便您可以手动重新提取它们。您可以手动选择要删除的所有调试帧,但是这意味着手动浏览几乎所有调试帧,这样很容易错过一些帧,更好的方法是利用对齐的文件夹(清理后)现在应该只包含好面孔, 利用它来发挥自己的优势(您可以复制调试文件夹,使用对齐文件夹中的面从中删除所有好的帧,然后浏览剩下的内容并使用它来从原始调试文件夹中删除那些坏帧)。删除完所有缺少/坏人脸的调试帧后,运行 5) data_dst人脸提取 手动重新提取已删除的人脸ALIGNED_DEBUG从相应的帧中手动重新提取人脸。

手动提取器用法:启动手动提取器后,将打开一个窗口,您可以在其中手动找到要提取的人脸和显示进度的命令行窗口:



- 使用哟。您的鼠标定位人脸
- 使用鼠标滚轮更改搜索区域的大小(矩形大小,您在排序中看到此选项,您可以根据提取过程中矩形的大小对人脸进行排序)
- 确保所有或至少大多数地标(在某些情况下,根据角度、照明或当前障碍物,可能无法精确对齐所有地标,因此请尝试找到覆盖的位置所有可见的部分最多,不会太错位)落在眼睛、嘴巴、鼻子、眉毛等重要部位并正确跟踪脸型,向上箭头显示脸部
的“向上”或“顶部”在哪里 - 使用键 A 更改精度模式,现在地标不会“粘”到检测到的人脸上,您可以更正确地定位地标, 它也会运行得很快er
- 使用 < 和 > 键(或 、 和 .)来回移动,以确认检测 单击鼠标左键并移动到下一个或按 Enter 键,既确认选择又移动到下一个面 - 鼠标右键对齐无法检测的前脸或
非人脸(需要应用 XSEG 才能正确遮罩)
- q 要跳过剩余的面孔,保存您所做的面孔并退出提取器(当您到达最后一张面孔并确认它时,它也将关闭并保存)

现在您应该提取所有人脸,但在某些情况下,您必须运行几次(我上面提到的情况,反射,分场景, 过渡)。在这种情况下,将您的“对齐”文件夹重命名为其他文件夹,然后重复重命名对齐面的步骤,将它们复制到“aligned_debug”的副本,替换,删除所选内容,删除需要从中提取的剩余部分,将其复制到原始“aligned_debug”文件夹,替换,删除荧光笔,再次运行手动重新提取器,然后合并两个对齐的文件夹, 确保不要意外更换某些面孔。

完成后,您可以选择与几乎完成的 dst 数据集相同的其他 .bat:5.2) data_dst util faceset pack 和 5.2) data_dst util faceset unpack - 与源相同,让您快速将整个数据集

打包到一个文件中。

5.2) data_dst util faceset 调整大小 - 与 SRC 数据集相同。

但在开始训练之前,您还必须屏蔽数据集,两者都是。


第 9 步 - XSEG 模型训练、数据集标记和屏蔽:


XSeg 有什么用?某些人脸类型需要应用与提取后使用数据集获得的默认面具不同的掩码,这些默认面具派生自类似于全脸类型的地标和覆盖区域,因此为什么对于全脸或低覆盖面孔类型 XSeg 不是必需的,但对于整个面部和头部是必需的。XSeg 掩码还需要在训练 SAEHD/AMP 模型期间使用面部和背景样式功率(FSP、BGSP),无论面部类型如何。

XSeg 允许您定义您希望如何遮罩您的面部,面部的哪些部分将被训练,哪些部分不会被训练。

还需要排除面部障碍物的训练,并且在合并视频后,例如在面部前面的手被正确排除,这意味着交换的面部被屏蔽,以使手可见而不是覆盖它。

XSeg 可用于排除几乎所有障碍物:您可以完全控制模型认为是人脸和不是人脸的内容。

请先熟悉一些术语,了解 XSeg 模型、数据集、标签和掩码之间的区别很重要:

XSeg 模型 - 用户可训练模型,用于在合并过程中将掩码应用于 SRC 和 DST 数据集以及遮罩人脸。
XSeg 标签 - 用户在人脸上绘制的多边形,用于定义人脸区域以及 XSeg 模型用于训练的内容。
XSeg 掩码 - 由经过训练的 XSeg 模型生成并应用于 SRC 或 DST 数据集的掩码。
XSeg 数据集 - 标记人脸的集合(仅一种特定类型或SRC和DST数据集,以类似的方式标记),这些通常由用户在论坛上共享,并且是开始制作自己的集合的好方法,因为您可以下载一个并选择所需的特定面孔或添加自己的标记面孔,这些人脸以类似的方式标记。

既然您知道这 4 件事中的每一件事意味着什么,那么您就明白了标记和屏蔽 SRC 人脸和 DST 人脸之间的主要区别。

掩码定义了面部样本上的哪个区域是面部本身,什么是背景或障碍物,对于 SRC 来说,这意味着您包含的任何内容都将由具有更高优先级的模型训练,而其他所有内容都将以较低的优先级(或精度)进行训练。对于 DST,它是相同的,但您还需要排除障碍物,以便模型不会将它们视为面部的一部分,并且稍后在合并这些障碍物时是可见的,并且不会被最终预测的面部覆盖(不要与预测的 SRC 和预测的 DST 面部混淆)。

要使用 XSeg,您可以使用以下 .bat:

5.XSeg) data_dst掩码 - 编辑 - XSeg 标签/多边形编辑器,这定义了您希望 XSeg 模型如何为 DST 人脸训练掩码。
5.XSeg) data_dst掩码 - 获取 - 将标记的 DST 人脸复制到“data_dst”内的文件夹“aligned_xseg”。
5.XSeg) data_dst掩码 - 删除 - 从您的 DST 面部删除标签。这不会删除您在训练后应用于集合的经过训练的掩码,而是移动您手动创建的标签,我建议重命名此选项,使其位于列表底部或删除它以避免意外删除标签。

5.XSeg) data_src掩码 - 编辑 - XSeg 标签/多边形编辑器,这定义了您希望 XSeg 模型如何为 SRC 面训练蒙版。
5.XSeg) data_src掩码 - 获取 - 将标记的 SRC 面复制到“data_src”内的文件夹“aligned_xseg”。
5.XSeg) data_src遮罩 - 去除 - 去除 SRC 面上的标签。这不会删除您在训练后应用于集合的经过训练的掩码,它会删除您手动创建的标签,我建议重命名此选项,使其位于列表底部或删除它以避免意外删除标签。

XSeg) 训练.bat - 开始训练 XSeg 模型。

5.XSeg.optional) 训练的掩码data_dst - 应用 - 生成 XSeg 掩码并将其应用于您的 DST 面部。
5.XSeg.optional) 训练掩码data_dst - 删除 - 删除 XSeg 掩码并恢复默认 FF 如地标派生的 DST 掩码。

5.XSeg.optional) 训练的蒙版data_src - 应用 - 生成 XSeg 蒙版并将其应用于您的 SRC 面部。
5.XSeg.optional) 训练掩码data_src - 删除 - 删除 XSeg 掩码并恢复默认 FF 如地标派生的 SRC 掩码。

如果没有时间标记人脸和训练模型,可以使用 DFL 附带的通用 XSeg 模型使用以下方法快速应用基本 WF 掩码(可能无法排除所有障碍物):

5.XSeg 通用) data_dst whole_face掩码 - 应用 - 将 WF 掩码应用于 DST 数据集。
5.XSeg 泛型)data_src whole_face掩码 - 应用 - 将 WF 掩码应用于 SRC 数据集。

XSeg 工作流:

步骤 1。标记数据集。

首先使用 5.XSeg) 标记 SRC 和 DST 人脸 data_src掩码 - 编辑和 5.XSeg) data_dst掩码 - 编辑

每个工具都有一个书面描述,当您用鼠标浏览它时会显示该描述(支持 en/ru/zn 语言)。

为 SRC 和 DST 标记 50 到 200 张不同的面孔,您不需要标记所有面孔,而只需标记那些看起来明显不同的人脸,例如:

- 当面部表情发生变化时(张开嘴 - 闭嘴,灿烂的笑容 - 皱眉)
- 当脸的方向/角度发生变化
时- 或者当照明条件/方向发生变化时(通常与面部角度一起,但在某些情况下,当面部仍然朝同一方向看时,照明可能会改变)

您标记的各种面孔越多,Xseg 模型将为您生成的质量越好。一般来说,数据集越小,需要标记的人脸就越少,各种角度也是如此,如果你有许多不同的角度和表达式,它将需要你标记更多的面孔。

当标签面对你时可能还希望排除障碍物,以便它们在最终视频中可见,为此,您可以:

- 不要在主标签中包含障碍物,该标签定义您希望通过围绕它绘制来交换的面部区域。
- 或使用排除多边形模式在障碍物或要排除的部分周围绘制附加标签(未训练,合并后可见)。

要排除的内容:

任何你不想在训练期间成为脸部的一部分,并且你想在合并后可见(不被交换的脸覆盖)。

标记障碍物时,您需要确保根据与标记没有障碍物的面相同的规则在多个面上标记它们,标记障碍物(即使当面部/头部时它不会改变外观/形状/位置:

- 改变角度
- 面部表情变化
- 照明条件改变

如果障碍物另外改变形状和/或在脸上移动,您需要标记几次,但并非每个脸上的所有障碍物都需要标记,但在各种条件下发生的不同障碍物种类越多 - 您必须标记的面越多。

以类似的方式标记所有面部,例如:

- 相同的近似下颌线 如果边缘不清晰可见,请查看面部的阴影方式以找出如何正确绘制线条,这同样适用于正在抬头的面部,下巴
下方的部分- 相同的发际线(这意味着始终以相同的方式排除头发,如果您正在做全面罩并且不去发际线,请确保您在眉毛上方绘制的线始终与眉毛上方的高度相同)

完成标记/标记后,滚动到列表末尾并按 Esc 保存它们并关闭编辑器, 然后,您可以继续训练 XSEG 模型。

提示:您可以使用 MVE 通过其更高级的 XSeg 编辑器来标记您的面部,该编辑器甚至带有它自己的训练分割(掩码)模型,该模型可以有选择地包含/排除面部的许多部分,甚至可以将应用的掩码(例如从您下载的共享 XSeg 模型或用于将掩码应用于数据集的通用 WF XSeg 模型)切换回标签, 改进它们,然后保存到您的脸上。

第 2 步。训练您的 XSeg 模型。

首次开始训练时,你将看到一个选项,用于选择 XSeg 模型的人脸类型,请使用与数据集相同的人脸类型。
您还可以选择要训练的设备以及批量大小,这通常会高得多,因为 XSeg 模型不像面部交换模型的训练那样苛刻(您也可以从较低的值开始,稍后再提高)。
您可以使用空格切换预览模式(有 3 种模式,DST 训练、SRC 训练和 SRC+DST(失真)。
要更新预览进度,请按 P.
Esc 保存并停止训练。

训练期间检查预览 经常,如果某些人脸在大约 50k 次迭代后有坏的掩码(形状不好、洞、模糊),保存并停止训练,将掩码应用于数据集,运行编辑器,通过在编辑器中启用 XSeg 掩码覆盖来查找蒙版坏的人脸,标记它们并按 esc 保存并退出,然后恢复 XSeg 模型训练,当启动已经训练好的模型时,如果要重新开始训练,您将收到提示, 选择“否”,因为选择“是”将从 0 重新启动模型训练,而不是继续。但是,如果您的面具尽管标记了更多的面孔并且远高于 100k-150k 迭代,但仍然没有改善,则可能需要标记更多的面孔。继续训练,直到你的大部分脸上都有锋利的边缘,并且所有障碍物都被正确排除。

第 3 步。将 XSeg 掩码应用于数据集。

完成训练或已经应用 XSeg 一次,然后修复了具有坏掩码的人脸之后,是时候将 XSeg 掩码最终应用于您的数据集了。

额外提示:

1.不要费心制作 1000 点标签,标记所有面部会花费太多时间,并且不会影响面部与如果您仅使用 30-40 点来描述脸型但也不尝试用 10 点标记它,否则面膜不会光滑,这里的例外是标记头发以进行 HEAD 面部类型训练,显然需要一些细节来正确解决单个发丝。
2. 不要标记阴影,除非它们是漆黑的。
3.如果舌头或口腔内部几乎没有张开,请不要标记它。
4. 如果障碍物或面部模糊,尽可能多地标记应该或不应该看到的所有内容,不要使偏移太大
5.请记住,当您使用模糊时,边缘会模糊进出,如果您在边缘上标记出手指,它在低模糊时看起来不会很糟糕,但在较高的模糊中,它会开始消失并替换为模型学习的模糊版本,口腔也是如此, 在低模糊下,它只会显示结果面部牙齿,但如果您应用高模糊,那么 DST 牙齿将开始显示并且看起来很糟糕(双牙)。

这意味着:

- 当排除手指等障碍物时 - 将其标记在边缘或将标签移开几个像素(但不要太多)。SRC和DST

- 在排除口腔时 - 请记住将标签远离牙齿,除非是背部的牙齿模糊和黑暗,可以排除这些。DST,SRC 是可选的,如果您排除 SRC 面上的后牙 XSeg 模型将训练为不包括它们,因此它们不会像包含的门牙那样精确地训练,但由于后牙通常非常模糊和黑暗或根本不可见,它应该不会对您的结果产生太大影响, 特别是如果您决定在 DST 上排除它们,在这种情况下,您无论如何都只能看到 DST 的后牙,排除舌头时适用类似的规则,在边缘标记它们,如果舌头在口腔内或接触上牙或下牙,则保持与牙齿的偏移。SRC 和 DST,如果你想训练 SRC 的舌头,不要在 SRC 脸上排除它,但如果你在 DST 上排除它,那么你根本不会看到 SRC 舌头,我建议排除g 舌头仅在嘴巴张开时,仅在 DST 上,从不出现在 SRC 脸上。

面具应用不良的面部示例:





通过正确标记面部来解决问题(之后您训练 XSeg 模型,只是标记它不会使模型更好):





如何使用共享标记人脸来训练您自己的 XSeg 模型:

下载、提取人脸并将其放入“data_src/对齐”或“data_dst/对齐”中。确保重命名它们以免覆盖您自己的脸(我建议使用XSEGSRC和XSEGDST,以便之后轻松删除)。
您可以将共享人脸与您自己的标签混合,为模型提供尽可能多的数据来学习蒙版,不要混合人脸类型,确保所有人脸大致遵循相同的遮罩逻辑。
然后只需开始训练您的 XSeg 模型(或共享模型)。

如何使用共享 XSeg 模型并将其应用于数据集:

只需将其放入“模型”文件夹,然后使用应用.bat文件将掩码应用于 SRC 或 DST。

应用蒙版后,打开 XSeg 编辑器并通过启用 XSeg 蒙版覆盖视图来检查蒙版的外观,如果某些人脸没有好看的蒙版,请标记它们,退出编辑器并再次开始 XSeg 模型的训练以修复它们。您还可以如上所述混合一些共享人脸(如何使用共享标记人脸)。您可以重用 XSeg 模型(如 SAEHD 模型)。

用户共享的SAEHD模型可以在模型共享论坛部分找到:
训练模型在这里分享您预先训练的深度伪造模型,以帮助其他人入门。通常,来自不同应用程序的模型不可互换。
mrdeepfakes.com




10. 培训 SAEHD/AMP:

如果您不想真正了解所有选项的作用,而只想关心在大多数情况下应该有效的简单工作流程,请向下滚动到第 6.1 节 - 常见训练工作流程。

警告:没有一种正确的方法来训练模型,了解所有选项的作用,如果您在训练期间发现问题(遮罩问题,由于质量差的SRC集或缺乏角度/表情而导致的模糊/扭曲的面部和伪影,由于SRC集中的照明条件变化少而导致的色彩匹配不良, 错误的 DST 对齐等)。

目前有 3 种模型可供选择进行训练:

SAEHD (6GB+):高清风格的自动编码器 - 适用于至少具有 6GB VRAM 的高端 GPU。可调。建议大多数用户使用。

AMP (6GB+):新的模型类型,使用不同的架构,变形形状(尝试保留 SRC 形状),具有可调节的变形因子(训练和合并) - 适用于具有至少 6GB VRAM 的高端 GPU。可调。AMP 模型仍在开发中,我建议您在使用 AMP 之前先学习使用 SAEHD 制作深度伪造。 对于 AMP 工作流程,请向下滚动到第 6.2 部分。

Quick96 (2-4GB):专用于具有2-4GB VRAM的低端GPU的简单模式。固定参数:96x96像素分辨率,全脸,批量大小4,DF-UD架构。主要用于快速测试。

模型设置电子表格,您可以在其中检查在各种硬件上运行的模型的设置和性能: https://mrdeepfakes.com/forums/threads/sharing-dfl-2-0-model-settings-and-performance.4056/

要启动训练过程,请运行以下选项之一:

6) 训练 SAEHD 6) 训练快速96

6) 训练 AMP SRC-SRC
6) 训练放大器

您可能已经注意到 AMP 有 2 个单独的训练可执行文件,暂时忽略它们,首先专注于学习 SAEHD 工作流程。

由于 Quick96 不可调,您将看到命令窗口弹出并只问 1 个问题 - CPU 或 GPU(如果您有更多,那么它会让您选择其中一个或使用两者进行训练)。
但是,SAEHD 将为您提供更多调整选项,因为两种型号都是完全可调的。
在这两种情况下,首先都会出现一个命令行窗口,您可以在其中输入模型设置。
在首次启动时,你将有权访问下面解释的所有设置,但如果使用的是现有的预训练或训练模型,则某些选项将无法调整。
如果您的“模型”文件夹中有多个模型,系统还会提示您通过选择相应的数字
来选择要使用的模型 您还将始终收到提示,提示您选择要在其上运行训练器的 GPU 或 CPU。
训练开始后,您还将看到训练预览。

以下是所有函数的详细说明,顺序(大部分)在开始训练新模型时呈现给用户。

请注意,其中一些被锁定并且无法更改 o由于这些模型的工作方式,您开始训练,以后无法更改的示例包括: - 模型分辨率(通常缩写为“res”) - 模型架构(“Archi”)
- 模型尺寸(“暗淡”)

- 脸型
- 形态因子(AMP训练) 此外,并非所有选项都可用于所有类型的型号:

对于 LIAE,没有真实面孔 (TF)


对于 AMP,没有架构选择或眼睛和嘴巴优先级 (EMP)
随着软件的开发,某些型号可能会有更多选项可用或不可用,如果您使用的是最新版本并注意到缺少某些选项,根据本指南仍然可用,或者注意到缺少此处解释的一些选项,请通过私人消息给我留言或在此线程中发布消息,我会尝试以尽快更新指南。

每 N 小时自动备份一次 ( 0..24 ?:help ) :不言自明 - 让我们每 N 小时启用一次模型的自动备份。将其保留为 0(默认值)将禁用自动备份。默认值为 0(禁用)。

[n] 写入预览历史记录 ( y/n ?:help ) :每隔几分钟在训练期间保存预览图像,如果选择是,您将收到另一个提示: [n] 为预览历史记录选择图像 ( y/n ) :如果选择 N,模型将随机选择用于预览的人脸,否则选择 Y 将在加载数据集后打开一个新窗口,您可以在其中手动选择它们。

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

[n] 随机翻转 SRC 人脸 ( y/n ?:help ) :随机水平翻转 SRC 面,有助于使用 SRC 面覆盖 DST 数据集中存在的所有角度,因为翻转它们有时会有所帮助(特别是如果我们的集合没有很多不同的照明条件但具有大多数角度),但是在许多情况下,它会使结果看起来不自然,因为面部永远不会完全对称, 它还会将面部特征从脸部的一侧复制到另一侧,然后它们可能会同时出现在两侧或两侧。建议仅在训练早期使用,或者如果我们的 SRC 集足够多样化,则根本不使用。默认值为 N.

[y] 随机翻转 DST 人脸 ( y/n ?:help):随机水平翻转 DST 人脸,可以在随机翻转 SRC 人脸时提高泛化。默认值为 Y。 Batch_size ( ?:help ) :批大小设置会影响每次迭代相互比较的面孔数。

最小值为 2,您可以达到 GPU 允许的最高值,这受 VRAM 影响。模型分辨率、尺寸越高,启用的功能越多,需要的VRAM就越多,因此可能需要更小的批量大小。建议不要使用低于 4 的值。更高的批量大小将以 sl 为代价提供更好的质量OWER 训练(更高的迭代时间)。对于初始阶段,可以将其设置为较低的值以加快初始训练速度,然后再提高。最佳值介于 6-12 之间。如何猜测要使用的批量大小?您可以使用反复试验,也可以通过查看DFL 2.0 模型设置和性能共享线程来查看其他人可以在他们的 GPU 上实现的目标来帮助自己。

分辨率 ( 64-640 ?:help ) :在这里您可以设置模型分辨率,请记住,此选项在训练期间无法更改。它会影响交换面的分辨率,模型分辨率越高 - 学习的人脸越详细,但训练也会更重、更长。分辨率可以从 64x64 增加到 640x640,增量为:

16(对于常规和 -U 架构变体) 32(对于 -D 和 -UD 体系结构变体)


更高的分辨率可能需要增加模型尺寸 (dims),但这不是强制性的,您可以使用默认 dim 获得良好的结果,而对于非常高的 dims 可以获得不好的结果, 最后,源数据集的质量对质量影响最大,因此,如果您无法使用 GPU 运行更高的 Dims,请不要感到压力,专注于创建一个好的源集,稍后担心 DIMS 和分辨率。

面部类型 ( h/mf/f/wf/head ?:help):此选项可让您设置要训练的面部区域,有 5 个选项 - 半脸、中半脸、全脸、整张脸和头部:

a) 半脸 (HF) - 只能从嘴巴训练到眉毛,但在某些情况下可以切断脸部的顶部或底部(眉毛, 下巴,嘴巴)。
b) 中半脸 (MHF) - 旨在通过覆盖比半脸大 30% 的面部部分来解决 HF 问题,这应该可以防止大多数不良切断发生,但它们仍然可能发生。
c) 全脸 (FF) - 覆盖大部分面部区域,不包括前额,有时可以切断一点下巴,但这种情况很少发生(仅当受试者张大嘴巴时) - 当 SRC 和/或 DST 有头发覆盖额头时,最推荐。
d) 全脸 (WF) - 进一步扩展该区域以覆盖几乎整个面部,包括前额和侧面的所有面部(直到耳朵,HF、MHF 和 FF 覆盖不了那么多)。
e) 头部 (HEAD) - 用于交换整个头部,不适合长发受试者,如果源面部集/数据集来自单一来源,并且 SRC 和 DST 都有短发或不会根据角度改变形状,则效果最佳。
使用所有人脸类型时的人脸、正面和侧视图示例: [图像缺失,正在进行中]

体系结构 (df/liae/df-u/liae-u/df-d/liee-d/df-ud/liae-ud ?:help ) : 此选项可让您在 2 种主模型架构之间进行选择: DF 和 LIAE 及其变体:

DF:此模型体系结构以比 LIAE 更差的照明和颜色匹配为代价提供更好的 SRC 相似性,它还要求 SRC 集与 DST 的所有角度和照明相匹配,并且总体上比可能没问题的集更好对于 LIAE,它也不处理 SRC 和 DST 之间的一般脸型和比例不匹配,而 LIAE 更好,但同时可以处理面部特征实际外观的更大不匹配,并且在您的 GPU 上更轻(较低的 VRAM 使用率),在正面拍摄方面更好,如果 SRC 集没有覆盖所有需要的角度,则在困难的角度可能会更挣扎, DST 的表达式和照明条件。

LIAE:这个模型几乎与DF完全相反,如果DST的面部特征和一般外观与SRC相差太大,它不会产生与DF相比像SRC一样的面部,但同时处理不同的面部比例和形状比DF更好,它还比DF更好地创建与DST的照明和颜色相匹配的面部,并且在SRC设置方面更宽容。但这并不意味着如果您缺少 DST 中存在的 SRC 集的主要部分,它可以创建高质量的交换,您仍然需要覆盖所有角度。LIAE在GPU上更重(VRAM使用率更高),并且在更复杂的角度上做得更好。
另外,请务必阅读步骤 10.5 中的“训练的 LIAE/LIEE RTM 模型的额外训练和重用 - 删除inter_ab和inter_b文件说明:”,了解如何在重用 LIAE 模型时进行处理。

请记住,虽然这些是两种架构的一般特征,但这并不意味着它们总是那样,错误训练的DF模型可能比正确训练的LIAE模型与SRC更相似,并且您也可能完全无法创建任何看起来接近SRC的东西与LIEE模型,并与DF模型实现近乎完美的颜色和照明匹配。这一切都取决于您的 SRC 和 DST 的匹配程度以及您的 SRC 集的制作情况,即使您知道所有基础知识,仍然需要大量的试验和错误。

每个模型都可以使用启用模型架构变体的标志进行更改,也可以按如下所示的顺序组合它们(所有这些都会影响性能和 VRAM 使用):

-U:此变体旨在提高与源人脸的相似性/相似性,通常建议始终使用。
-D:此变体旨在通过将可能的分辨率大约翻倍来提高质量,而无需额外的计算成本,但是它需要更长的训练,必须首先对模型进行预训练以获得最佳结果,并且分辨率必须更改值 32,而不是其他变体中的 16。一般来说,它也应该始终使用,因为这种架构允许多少更高的 reslu 模型,但如果您可以使用极高的 vram 设置,则可能值得在没有它的情况下尝试训练模型,因为这可能会产生更高质量的结果,就像大多数具有平均 joe 设置的用户一样,建议始终使用它。
-T:此变体以与 -U 不同的方式更改模型架构,但目的相同 - 创建更多类似 SRC 的结果,但它会影响面部的清晰度,因为与仅使用 -D/-UD 变体相比,它往往会导致轻微的细节损失。
-C:实验变种,在 ReLu 和 Leaky ReLu 之间切换激活函数(使用风险自负)。

要合作DF/LIA之后的mbine架构变体写一个“-”符号,然后按照与上面相同的顺序写字母,例如:DF-UDTC,LIAE-DT,LIAE-UDT,DF-UD,DF-UT等

接下来的 4 个选项控制模型 影响模型学习能力的神经网络维度,修改这些维度会对性能和质量产生重大影响: 自动编码器调光 ( 32-2048 ?:帮助 ) :

自动编码器调暗设置,影响模型学习人脸的整体能力。
中间调光 ( 32-2048 ?:帮助 ) :间调光设置,影响模型学习人脸的整体能力,应等于或高于自动编码器调光,仅 AMP。
编码器调光 ( 16-256 ?:帮助 ) :编码器调光设置,影响编码器学习人脸的能力。
解码器调光 ( 16-256 ?:帮助 ) :解码器调暗设置,影响解码器重新创建人脸的能力。
解码器蒙版调暗 ( 16-256 ?:帮助 ) :掩码解码器调暗设置,影响学习掩码的质量。可能会影响也可能不会影响培训的其他一些方面。

更改每个设置时的性能变化可能会对性能产生不同的影响,如果没有广泛的测试,就不容易衡量每个设置对性能和质量的影响。

每个都设置为某个默认值,该值应提供最佳结果,并在训练速度和质量之间取得良好的折衷。

此外,当更改一个参数时,其他参数也应更改以保持它们之间的关系相似,这意味着提高AE暗淡,E和D暗淡也应该提高,D掩码调光可以提高,但它是可选的,可以保留默认值或降低到16以节省一些VRAM,但代价是学习的掩码质量较低(与XSeg掩码不同, 这些是模型在训练期间学习的掩码,它们有助于模型有效地训练面部区域,如果您应用了 XSeg,则这些学习的掩码基于 XSeg 掩码的形状,否则将学习默认的 FF 地标派生的掩码)。在训练更高的模型分辨率时,最好将它们全部提高,因为它使模型能够更多地了解面部,在更高的分辨率下,这意味着可能更具表现力和逼真的面部,从源数据集捕获更多细节,并更好地再现 DST 表达式和照明。

形态因子 ( 0.1 .. 0.5 ?:help ) :影响模型将变形您的预测面孔以使其外观和表达更像您的 SRC,典型和推荐值为 0.5。(我需要亲自测试,还没有使用 AMP,所以不知道值越高越低越好)。

掩蔽训练 ( y/n ?:help ) :优先训练被掩蔽的内容(默认遮罩或应用的 xseg 掩码),仅适用于 WF 和 HEAD 面类型,禁用它以与面本身相同的优先级训练整个样本区域(包括背景)。默认值为 y(启用)。

眼睛和嘴巴优先(y/n ?:help):尝试通过训练更高的优先级来修复眼睛和嘴巴(包括牙齿)的问题,也可以提高它们的清晰度/细节水平。

Uniform_yaw ( y/n ?:help ) :帮助训练轮廓面,强制模型根据其偏航在所有面上均匀训练,并确定轮廓面的优先级,可能导致正面面训练速度变慢,在预训练期间默认启用,可以在启用 RW 以改善轮廓/侧面的泛化时或在禁用 RW 以提高这些面的质量和锐度/细节时使用。当源数据集没有很多个人资料照片时很有用。可以帮助降低损失值。默认值为 n(禁用)。

模糊我们的蒙版 ( y/n ?:help ) :模糊遮罩区域之外的区域,使其更平滑。启用遮罩训练后,背景的训练优先级低于面部区域,因此更容易出现伪影和噪点,您可以将模糊蒙版与背景样式功能相结合,以获得更接近 DST 面部背景的背景,并且由于此选项提供的额外模糊,背景也更平滑。必须使用相同的 XSeg 模型将掩码应用于 SRC 和 DST 数据集。

将模型和优化器放在 GPU 上 ( y/n ?:help ) :启用 GPU 优化器会将所有负载放在 GPU 上,这大大提高了性能(迭代时间),但会导致更高的 VRAM 使用率,禁用此功能会将优化器的一些工作卸载到 CPU,从而减少 GPU 和 VRAM 使用的负载,从而让您实现更高的批量大小或以更长的迭代时间为代价运行要求更高的模型。如果您遇到 OOM(内存不足)错误,并且您不想减小批大小或禁用某些功能,则应禁用此功能,因此一些工作将卸载到 CPU 上,您将能够运行您的模型而不会出现 OOM 错误,但代价是速度较低。默认值为 y(启用)。

使用AdaBelieve优化器?( y/n ?:help ) : AdaFaith (AB) 是一个新的模型优化器,它提高了模型的准确性和训练面的质量,当启用此选项时,它将取代默认的 RMSProp 优化器。然而,这些改进是以更高的VRAM使用率为代价的。使用AdaBelieve时,LRD是可选的,但仍建议在运行GAN训练之前启用(LRD)。默认值为 Y。 个人注意:有人说你可以在现有模型上禁用 Adabelieve,它会很好地重新训练,我并不完全同意这一点,并认为模型永远不会完美恢复,并且在打开或关闭它时会忘记太多,所以我建议坚持启用或禁用它。

LRD也一样,有人说它是可选的,有人说还是必要的,有人说没有必要,我还是用AB,有的人可能不用,自己从DFL的内置描述中得出结论。

使用学习率辍学(y/n/cpu ?:help):LRD用于加速人脸训练并减少亚像素抖动(减少人脸抖动,在一定程度上也可以减少闪光)。
它主要用于 3 种情况:
- 在禁用 RW 之前,当损失值不再大幅改善时,这可以帮助模型更多地泛化人脸
- 在禁用 RW 并且您已经很好地训练了模型之后,使其在接近结束时训练将产生更详细、更稳定的面部,不易闪烁
此选项会影响 VRAM 的使用,因此如果您遇到 OOM 错误,您可以在 CPU 上运行它,但代价是迭代时间慢 20%,或者只是减小批量大小。
有关LRD的详细说明以及训练期间启用主要功能的顺序,请参阅常见问题解答问题

8启用样本的随机扭曲(y/n ?:help):随机扭曲用于泛化模型,以便它在初始训练阶段正确学习面部特征和表情,但只要启用它,模型就可能无法学习细节 - 因此建议只要您的面部仍在改善(通过查看减少的损失值和预览窗口中的面部改善),并且一旦所有看起来都正确(并且损失不再减少),您应该禁用它以开始学习详细信息,从那时起,除非您通过应用于某些设置的高值来破坏结果,否则您不会重新启用它(样式电源, 真实面目等),或者当您想要重用该模型以使用相同的源训练新目标视频时,或者当重复使用新的 SRC 和 DST 时,您始终在启用 RW 的情况下开始训练。默认值为 y(启用)。

启用 HSV 电源 ( 0.0 .. 0.3 ?:help ) :在训练期间仅对 SRC 数据集应用随机色调、饱和度和亮度变化以提高颜色稳定性(减少闪烁),并且还可能影响最终结果的颜色匹配,此选项具有稍微平均 SRC 集颜色的效果,因为 SRC 样本的 HSV 偏移仅基于 SRC 样本的颜色信息,并且可以组合使用颜色转移 (CT),如果您碰巧在没有 CT 的情况下获得更好的结果,但只需要使生成的面部的颜色更加稳定和一致,则此选项的功率(质量)降低或不使用它,这需要您的 SRC 数据集在照明条件(方向、强度和色调)方面有很多变化, 建议值为 0.05。

GAN功率(0.0..10.0?:help):GAN代表生成对抗网络,在DFL 2.0的情况下,它被作为另一种训练方式来实现,以获得更详细/更清晰的面孔。此选项可在 0.0 到 10.0 的范围内进行调整,并且只有在模型或多或少完全训练后(在禁用样本随机变形并启用 LRD 之后)才应启用此选项。建议使用较低的值,例如 0.01。确保在开始训练之前备份模型(以防您不喜欢结果,请获取伪装或模型崩溃)。启用后,将显示另外两个设置来调整GAN的内部参数:

[RES的1/8] GAN补丁大小(3-640 ?:help):以提高GAN训练的质量,但代价是更高的VRAM使用率,默认值是分辨率的1/8。

[16] GAN的维度(4-64 ?:help):GAN网络的维度。尺寸越高,需要的VRAM就越多,但它也可以提高质量,即使在最低设置下也可以获得锋利的边缘,因此默认值为16建议使用,但如果需要,可以将其减少到 12-14 以节省一些性能。

在 40k 次迭代中,使用 GAN 以值 0.1 训练的人脸之前/之后的示例:

[img=650x400]

“真实人脸”功率。( 0.0000 .. 1.0 ?:help ) :使用可变功率设置进行真实面部训练 让您将模型鉴别器设置为更高或更低的值,这样做是它试图使最终的面部看起来更像 src,作为副作用,它可以使面部看起来更清晰,但也可以改变照明和颜色匹配,在极端情况下,甚至可以使面部看起来改变角度,因为模型将尝试生成人脸看起来更接近训练样本,与 GAN 一样,只有在禁用随机扭曲并且模型训练得相当好后,才应启用此功能。请考虑在启用此功能之前进行备份。切勿使用高值,典型值为 0.01,但您可以使用更低的值,如 0.001。它对性能的影响很小。默认值为 0.0(禁用)。
[img=500x200]

人脸样式功率 ( 0.0..100.0 ?:help ) 和背景样式功率 ( 0.0..100.0 ?:help ) :此设置控制图像的面部 (FSP) 或背景 (BSP) 部分的样式传输,它用于将颜色信息从目标/目标面部 (data_dst) 传输到最终预测的面部,从而改善照明和颜色匹配,但高值可能会导致预测的人脸看起来不太像您的源人脸,而更像您的目标人脸。从 0.001-0.1 等小值开始,然后根据需要增加或减少它们。此功能会影响内存使用情况,并可能导致 OOM 错误,迫使您减小批大小才能使用它。对于背景样式功率(BSP),可以使用更高的值,因为我们不太关心保留SRC背景,DFL对BSP的建议值为2.0,但您也可以尝试不同的背景值。请考虑在启用此功能之前进行备份,因为它还可能导致工件和模型崩溃。
默认值为 0.0(禁用)。

src faceset 的颜色转移 ( none/rct/lct/mkl/idt/sot ?:help ) :此功能用于将data_src的颜色与data_dst相匹配,以便最终结果具有与data_dst相似的肤色/色调,并且训练后的最终结果在面部移动时不会改变颜色,通常称为闪烁/闪烁/色偏/颜色变化(如果从中获取各种面部角度,则可能会发生这种情况)包含不同光照条件或颜色分级不同的各种光源)。有几个选项可供选择: - 无:

因为有时越少越好,在某些情况下,您可能会在训练期间没有任何颜色转移的情况下获得更好的结果。
- RCT(铳鑫哈德色彩转移):
- LCT(线性色彩转移):使用线性变换将目标图像的颜色分布与源图像的颜色分布相匹配。
- mkl (蒙日-坎托罗维奇线性):
- idt(迭代分布转移):
- SOT(切片最优转移):

大多数颜色转移对性能或VRAM的使用几乎没有影响,但SOT除外,SOT在训练期间具有性能影响,如果在合并过程中使用,可能会严重减慢合并过程,其他颜色转移(如IDT)也可能在合并过程中对性能产生影响。

使用颜色转移并不总是必需的,但通常会有所帮助,在某些情况下是绝对强制性的,您还应该记住,启用它们充当集合的增强,有效地为所有SRC样本创造新条件,从而增加训练数据的复杂性,这可能导致启用时更高的损失,自然意味着模型必须训练更长时间才能达到相同的状态与没有颜色转移的训练相比,面部永远不会改变颜色太多。此选项可以与随机HSV Power结合使用,后者仅根据SRC集的颜色提供SRC集的额外增强(与基于DST的SRC增强的CT不同),有效地略微平均其颜色,提供CT方法可能无法实现的额外颜色条件,并且还略微降低了CT的效果(在官方说明中称为iperov的CT质量降低)。

启用渐变裁剪 ( y/n ?:help ):实现此功能是为了防止在使用 DFL 2.0 的各种功能时可能发生的所谓模型崩溃/损坏。它对性能的影响很小,因此如果您真的不想使用它,则必须启用自动备份,因为折叠的模型无法恢复,必须抓取并且必须重新开始训练。默认值为 n(禁用),但由于性能影响如此之低,并且如果您将其保持启用状态,它可以防止模型折叠,从而为您节省大量时间。使用样式幂时最有可能发生模型折叠,因此如果您正在使用它们,强烈建议启用渐变裁剪或备份(您也可以手动执行)。

启用预训练模式 ( y/n ?:help ) :启用预训练过程,该过程使用随机人员数据集来初步预训练您的模型,在将其训练到 500.000 到 1.000.000 次迭代之后,可以在使用实际data_src开始训练时使用该模型,并且您想要训练data_dst,它可以节省时间,因为模型已经知道人脸应该是什么样子,因此需要更少的时间面部在训练时清晰显示(确保在实际data_src和data_dst训练时禁用预训练)。使用 -D 体系结构变体的模型必须进行预训练,强烈建议预训练所有模型。

1。什么是预训练模型?




10.1 RTM 培训工作流程:

随着DeepFaceLive(DFLive)的引入,一个新的训练工作流程已经建立起来,与一些用户认为这不是一种新的训练方法相反,与常规训练没有显着区别,并且这种训练方法已被某些人以某种方式使用,您可能会在不知不觉中偶然创建一个。

RTM 模型 (ReadyToMerge) 是通过训练我们要交换的人的 SRC 集来创建的,该集包含许多人的随机面孔,涵盖了所有可能的角度、表情和照明条件。SRC 集还必须具有多种面。RTM模型训练的目标是创建一个模型,可以将我们的SRC人脸应用于任何视频,主要用于DeepFaceLive,但也通过创建一个基本模型来加快DeepFaceLab 2.0中的训练过程,与从头开始训练模型相比,该模型可以在更短的时间内非常快速地适应新的目标视频。

推荐用于RTM Workklow的型号类型是SAEHD LIAE型号,LIAE-UD或LIAE-UDT,因为它们具有卓越的颜色和照明匹配能力,并且能够比DF架构更好地适应不同的脸型。
AMP 模型也可用于创建 RTM 模型,尽管它们的工作方式略有不同,并且由于我缺乏解释 AMP 工作流程的专业知识,但我将只关注指南这一部分中的 LIAE RTM 模型训练。

1.从准备SRC套装开始:确保覆盖所有可能的角度,每个角度都有尽可能多的不同照明条件和表情,不同可能面孔的覆盖越好,效果就越好。

2. 通过收集许多随机面孔来准备 DST 集:此数据集还必须具有尽可能多的多样性,此数据集可以是真正的随机,由各种肤色的男性和女性面孔组成,或者它可以特定于例如黑人男性面孔或女性亚洲面孔,如果这是您计划主要使用该模型的目标面孔类型, 集合中的种类越多,面孔越多,训练模型所需的时间就越长,但模型可能会更好,因为它将能够更正确地交换到更多种类的不同面孔。



3. 将 XSeg 掩码应用于两个数据集:这将确保模型正确训练,并且与任何其他训练一样,需要创建 WF 模型,虽然对于 FF 模型是可选的,但仍建议将正确类型的 XSeg 掩码应用于两个数据集,请确保对两个数据集使用相同的 XSeg 模型。

4. 使用和现有的 RTT 模型或创建一个新的模型:iperov 推荐的 RTT 模型是经过大量重新训练的模型,迭代次数超过 2-3kk,因此创建它们可能需要花费大量时间,作为替代方案。ou 可以为 600k-1kk 迭代预训练 LIAE 模型,更多关于在下一阶段制作 RTT 的信息。

5. 使用以下工作流程开始对您的 SRC 和随机 DST 进行训练,请注意,与 iperov 相比,其中一些略有修改,使用风险自负。

5.1 Iperov 的新工作流程:设置:启用 EMP、启用模糊遮罩、启用 UY、启用 LRD、BS:

8(如果您无法以足够高的 BS 运行模型,请降低它或在 CPU 上运行模型优化器和 LRD)。
其他选项应保留为默认值(通常表示禁用)。可选择在功率 0.1 下使用 HSV 和最适合您的 CT 模式,通常是 RCT。 在每个阶段之前进行备份或启用自动备份。


1. 在启用 RW 的情况下训练 +2.000.000 个迭代器,每 500k 个迭代器删除 inter_AB.npy(保存并停止模型训练,删除文件并恢复训练)
2.删除inter_AB启用RW的第4次火车额外+500k后。
3. 如果交换的人脸看起来更像 DST,请删除inter_AB并重复步骤 2。
4. 禁用 RW 并训练额外的 +500k 迭代。
5. 在 0.1 的功率下启用 GAN,GAN_Dims:32,补丁大小是 +800.000k 迭代的模型分辨率的 1/8。

5.2 伊佩罗夫的旧工作流程:

1.使用随机扭曲:Y、均匀偏航:Y、LRD:N、模糊蒙版:Y、颜色转移:LCT 进行 500k-1kk 迭代,其他设置保留默认值。
2. 接下来使用 LRD: Y 进行 500k 次迭代,保持步骤 1 中的其他设置。
3. 之后使用均匀偏航进行 500k 次迭代:N
4。现在使用随机扭曲:N ,均匀偏航:N ,lrd:Y *
5 进行 500-800k 迭代。最后用随机扭曲进行 200-300k 次迭代:N ,均匀偏航:N ,LRD:Y 和 GAN:0.1,GAN 补丁大小:(模型分辨率的 1/8),GAN DIMS:32


10.2 使用 RTM 模型:


完成模型训练后,可以在 DFL 中使用它们,也可以导出为 DFM 模型以在 DFLive 中使用。

要导出模型以用于DFLive使用6)将SAEHD导出为dfm或6)将AMP导出为dfm,您可以选择量化模型,这可以使其运行得更快,但某些模型,特别是具有高分辨率和高网络维度(dims)值的大型模型,如果在启用此选项的情况下导出它们,则可能无法正常工作,因此请确保在DFLive中对其进行测试, 该过程不会删除原始模型,只会在“模型”文件夹中创建其他DFM文件。如果您的模型不能很好地工作,请在禁用量化选项的情况下再次导出它。

如果要在 DFL 中使用 RTM 模型,可以开始提取新场景并将它们与此模型合并,而无需任何额外的训练,也可以进行一些额外的训练。

额外训练和重用经过训练的 LIAE/LIAE RTM 模型 - 删除inter_ab和inter_b文件说明:

什么是inter_ab和_b文件?这些是使用 LIAE 架构的 SAEHD 模型的一部分(无论其他 -U、-D、-T 和 -C 变体如何),与具有一个用于 SRC 和 DST 的通用内部文件的 DF 体系结构不同,LIAE 具有两个内部文件,inter_ab包含 SRC 和 DST 人脸的潜在代码(表示)和包含 DST 人脸潜在代码的其他inter_b。

1. 如果要在新 DST 上将 RTM 模型重用为常规 LIAE 模型,并从启用 RW 开始重新训练模型(作为常规模型训练),请从模型文件夹中删除inter_b该文件。
适用于重用经过训练的 LIAE 模型并更改 DST,但不适用于 SRC。

2.如果要为不同的名人创建新的RTM模型,请删除inter_ab文件,将SRC替换为新的SRC,添加随机DST集并继续与创建新RTM模型时相同的工作流程。
适用于重用经过训练的 LIAE 模型并更改 SRC,但不适用于 DST

3。如果要使用经过训练的 RTM 模型对目标 DST 执行其他训练,请不要删除inter_ab或inter_b。
不适用于常规训练的 LIAE 模型重用(可能会遇到最终预测人脸看起来与 DST 非常相似或与 SRC 非常相似的问题)

4.删除inter_ab和inter_b 当您在常规场景中重用经过训练的 LIAE 模型时,src/dst 都会发生变化,或者您遇到结果看起来像 DST 的问题,请注意,这与禁用预训练时发生的效果类似,只有编码器/解码器保持训练状态,所有其他数据都被删除,这意味着模型在某种程度上返回到一个状态,就好像它只是预训练一样(不完全是,但更接近比训练状态),这可能会导致训练需要更长的时间。

在这种情况下,只需将随机 DST 替换为特定的 taget DST,在禁用 RW 的情况下开始训练:

如果要使用旧的 iperov 工作流程进行训练,请从旧工作流程的第 4 步开始。
如果您想使用新的 iperov 工作流程进行训练,请从新工作流程的步骤 4 开始。




11. 合并:


完成模型训练后,是时候将学习的人脸合并到原始帧上以形成最终视频了。

为此,我们有 3 个转换器对应于 3 个可用模型:

7) 合并 SAEHD
7) 合并 AMP
7) 合并 Quick96

选择其中任何一个后,将出现一个命令行窗口,并显示几个提示。
第一个会问您是否要使用交互式转换器,默认值为 y(已启用),建议使用它而不是常规转换器,因为它具有所有功能以及交互式预览,您可以在其中看到更改各种选项和启用/禁用各种功能
时所做的所有更改的效果 使用交互式合并?( y/n ) : 第二个会询问您要使用的模型:


选择一个保存的模型,或输入名称以创建新模型。
[r] : 重命名
[d] : 删除
[0] : DF192 - 最新的

第 3 个会询问您要使用哪个 GPU/GPU 或 CPU 进行合并(转换)过程:
选择一个或多个 GPU idx(用逗号分隔)。
[CPU] : CPU
[0] : 您的 GPU [0] 选择哪个 GPU
索引? :

按回车键将使用默认值 (0)。

完成后,您将看到一个带有当前设置的命令行窗口以及预览窗口,其中显示了操作交互式转换器/合并所需的所有控件: [图像缺失,正在进行中]

以下是所有合并/转换器功能的列表:



请按 tab 键检查帮助屏幕,以查看哪些键对应于哪个选项,以防它们发生变化或您使用不同的布局键盘,它们也可能随着时间的推移而变化。

也不是说合并 AMP 可能不具有 SAEHD 合并的所有选项,但是一旦您了解了 SAEHD 合并,那么 AMP 就非常相似,大多数选项具有相同的名称和类似的工作方式。我不会使用 AMP 特定的合并信息扩展指南,因为它几乎都是一样的,缺少或添加很少,帮助屏幕(选项卡)的存在是有原因的。

1. 主要叠加模式: - 原始:显示原始帧而不交换面
- 叠加:

在帧上简单叠加学习面 - 这是推荐使用的叠加模式,因为它最稳定并保留了大部分原始训练的人脸外观。
- hist-match:根据直方图覆盖学习的面部和轮胎以匹配它,它有 2 种模式:正常和掩蔽,可以用 Z 切换 - 建议使用正常。
- 无缝:使用OpenCV 泊松无缝克隆功能,在原始帧
中将新的学习面孔混合到头上 - 无缝匹配:结合了hist匹配和无缝匹配。
- 原始 RGB:覆盖原始学习的面孔,没有任何遮罩

2.hist 匹配阈值:控制直方图 ma 的强度在历史匹配和无缝匹配叠加模式下进行 tching。
Q - 增加值 A - 减少值


3。蚀面罩:控制蒙版的大小。
W - 增加面膜侵蚀(较小的掩模) S - 减少面膜侵蚀(较大的掩模)


4.模糊蒙版:模糊/羽化蒙版边缘以实现更平滑的过渡
E - 增加模糊
D - 减少模糊

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

6.超分辨率:使用与数据集/面部增强器类似的算法data_src它可以为牙齿、眼睛等区域添加更多定义,并增强学习面部的细节/纹理。
T - 增加增强效果 G - 降低增强效果


7.模糊/锐化:使用框或高斯方法模糊或锐化学习的面部。
Y - 锐化面部 H - 模糊面部

N - 盒/高斯模式开关

8.面部尺度:学会人脸变大或变小的尺度。
U - 学习的音阶面朝下 J - 学习的音阶面朝上


9.遮罩模式:有 6 种遮罩模式: DST:
使用从人脸集/数据集提取期间生成的地标形状派生data_dst遮罩。
学习珠三角:使用在训练期间学到的面具。保持 SRC 面的形状。
学习 DST:使用在训练期间学习的掩码。保持 DST 面部的形状。
learned-prd*dst:将两个掩码组合在一起,两者的尺寸更小。
learned-prd+dst:将两个面具组合在一起,两者的尺寸更大。
XSeg-prd:使用 XSeg 模型使用来自源人脸的数据进行掩码。
XSeg-dst:使用 XSeg 模型使用来自目标人脸的数据进行遮罩 - 此模式是您最有可能使用的模式,因为它将根据 DST 的形状遮罩人脸并排除所有障碍物(假设您确实正确标记了 DST 人脸)。

XSeg-prd*dst:将两个掩码组合在一起,两者的尺寸更小。
learned-prd*dst*XSeg-dst*prd:结合了所有 4 种掩码模式,所有模式的尺寸更小。

10. 颜色 tRansfer模式:类似于训练期间的颜色转移,您可以使用此功能将学习的面部的肤色更好地匹配到原始帧,以实现更无缝和逼真的面部交换。有8种不同的模式:

RCT - 最常使用和推荐。
LCT - 第二最常用的选项,效果比RCT更强。 MKL MKL-M
- RCT的良好选择,在某些方面非常相似。

IDT
IDT-M SOT-M MIX-M



11.图像降级模式:您可以使用 3 种设置来影响原始帧的外观(不影响交换的面部):
去噪 - 降噪使图像略微模糊(I - 增加效果,K - 减少效果) 双立方 - 使用双立方方法模糊图像(O - 增加效果,L - 减少效果)

颜色- 降低颜色位深度(P - 增加效果,; - 减少效果)

AMP 特定选项: 变形因子:

较高的值将导致纯预测结果,降低它将在它和您的 DST 面部之间平滑变形,最后它只显示 DST 面部。

附加控件:
TAB 按钮 - 在主预览窗口和帮助屏幕之间切换。
有关键的完整列表(以及它们控制的内容,例如向前/向后移动,开始合并),请查看帮助屏幕。
请记住,这些只能在主预览窗口中工作,在帮助屏幕上按任何按钮都不会执行任何操作。


12. 将帧转换回视频:


合并/转换所有面后,您将在“data_dst”文件夹中有一个名为“merged”的文件夹,其中包含所有帧以及包含蒙版帧的“merged_masked”。
最后一步是将它们转换回视频并与文件中data_dst.mp4原始音轨相结合。

为此,您将使用提供的 4 个.bat文件之一,这些文件将使用 FFMPEG 将所有帧合并为以下格式之一的视频 - avi、mp4、无损 mp4 或无损 mov:

- 8)合并到AVI - 8)合并到MOV无损
- 8)合并到MP4无损

- 8)合并到MP4

或者,如果您想拥有更多控制权,请进一步细化视频某些部分的蒙版,调整面部颜色或执行其他操作,您可以通过从data_dst、原始帧、合并帧和蒙版帧中获取音频来手动合成视频,将其导入您知道的视频编辑软件并手动创建最终视频, 这使您可以执行我已经提到的事情,通过进一步模糊或锐化蒙版来调整蒙版(通常称为蒙版羽化),稍微放大或减小蒙版的大小(从而或多或少地显示其下方的DST面部,对脸部应用额外的色彩校正和颜色匹配(通过使用蒙版仅显示合并框架的面部部分), 添加锐化、胶片颗粒/噪点等。



就是这样!

如果您有更多此线程中未涵盖的问题,请使用搜索选项并查看其他线程和指南以获取有关该过程的更多信息(或使用谷歌),或者 PM 我以获取更多信息,我提供付费帮助,可以教您关于 DFL、MVE 和其他相关内容的所有内容,以便您可以立即开始制作完美的深度伪造。


AIBL论坛免责申明
本论坛刊载的所有内容,包括图片、软件、模型等均在网上搜集。
论坛提供的内容仅用于个人学习、研究或欣赏。我们不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,予以删除。

35

主题

60

回帖

6886

积分

版主

积分
6886
发表于 2023-9-22 10:16:19 | 显示全部楼层
学习到了
回复

使用道具 举报

35

主题

60

回帖

6886

积分

版主

积分
6886
发表于 2023-10-5 00:12:34 | 显示全部楼层
谢谢分享 经验,存零食
回复

使用道具 举报

0

主题

3

回帖

9

积分

初级丹童

积分
9
发表于 2023-10-20 13:20:33 | 显示全部楼层
专业啊,哥哥
回复

使用道具 举报

2

主题

88

回帖

127

积分

高级丹童

积分
127
发表于 2023-10-26 08:34:58 | 显示全部楼层
努力签到攒灵石
回复

使用道具 举报

2

主题

88

回帖

127

积分

高级丹童

积分
127
发表于 2023-10-26 08:52:48 | 显示全部楼层
努力签到攒灵石
回复

使用道具 举报

0

主题

7

回帖

12

积分

初级丹童

积分
12
发表于 2023-10-28 17:09:19 | 显示全部楼层
好像去年开始就用这个 不过炼丹时间还是太长了 我的2080真是垃圾 哎 希望明年能攒到钱还新显卡
回复

使用道具 举报

0

主题

2

回帖

10

积分

初级丹童

积分
10
发表于 2023-11-7 16:05:27 | 显示全部楼层
感谢楼主无私分享,🙏🏻🙏🏻🙏🏻🙏🏻
回复

使用道具 举报

0

主题

4

回帖

10

积分

初级丹童

积分
10
发表于 2023-11-20 01:07:32 | 显示全部楼层
谢谢分享 经验,存零食
回复

使用道具 举报

2

主题

6

回帖

21

积分

初级丹童

积分
21
发表于 2023-12-8 17:55:55 | 显示全部楼层
楼主辛苦,收藏学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AIBL论坛

GMT+8, 2024-9-17 03:23 , Processed in 0.103480 second(s), 23 queries , Gzip On.

Powered by AI技术论坛 X3.5

© 2001-2023 dfl论坛

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