批处理文件和文件夹
打开您提取 DeepFaceLab 的文件夹。这些是制作 DeepFake 所需的所有文件和文件夹,包括 DeepFaceLab 代码、附加包和软件、工作区文件夹以及一些示例视频数据。
主文件夹中的批处理文件允许您与软件交互。它们按照您应遵循的一般顺序进行编号,并具有描述其用途的名称。您可以将它们视为在整个 Deepfake 过程中使用的单独工具。这些文件本身并没有太多作用。相反,它们调用其他 DFL 脚本并向它们传递参数,从而初始化实际的 Deepfake 进程。
_internal 文件夹包含 DeepFaceLab 代码以及其他软件和所需的库,例如 CUDA、Python 和 FFMpeg。您可以在此处修改代码或安装 DFL 存储库的分支。
DeepFaceLab Wiki 包含有关所有批处理文件的快速参考和注释。
工作区概述
工作区文件夹是保存所有深度伪造数据和文件的位置。工作区文件夹内还有另外 3 个文件夹,用于保存图像和模型文件。这2个视频文件包括data_src(源视频)和data_dst(目标视频)。
Data_src 是您想要深度伪造到视频中的源面孔集。 Data_dst 是您想要将 Deepfake 脸部放入其中的目标视频(原始剪辑)。您可以使用文件名 data_src.* 和 data_dst.* 将这些文件替换为许多常见的视频文件类型。
上面提到的 DeepFaceLab 批处理脚本将期望在这些目录中找到您的文件。不存在的目录通常会由程序根据需要创建。一般来说,您不应尝试移动或重命名文件夹。例如,您可以将“/aligned”文件夹创建为“/aligned-copy”的备份。您可以自由移动或重命名“/aligned-copy”文件夹;它会被软件忽略。但是,如果您移动或重命名“/aligned”文件夹,那么 DeepFaceLab 将无法找到它,并且您的 Deepfake 将失败。此外,您还应该避免使用 DeepFaceLab 可能“保留”的文件夹名称,除非它们包含预期的文件。
文件夹 | 描述 |
---|---|
/workspace | data_dst.* 和 data_src.* 视频文件的容器。 |
-/data_dst | 目标数据的容器。将目标图像序列放入此文件夹中。 |
–/aligned | 目标面集图像的容器。将对齐的面孔图像放入此文件夹中。 |
–/aligned_debug | 生成的目标调试映像的容器。 |
-/data_src | 源数据的容器。将源图像序列放入此文件夹中。 |
–/aligned | 源faceset图像的容器。将对齐的面孔图像放入此文件夹中。 |
–/aligned_debug | 生成的源调试映像的容器。 |
-/model | 模型数据的容器。将模型文件放置在此文件夹中,包括 XSeg 模型文件。 |
–/*_autobackups | 生成的模型文件自动备份的容器。 |
第 1 步:清理工作区和导入数据
目的:定义项目工作空间。
Optional: 1) clear workspace.bat
删除工作区子目录中的所有数据并重建文件夹结构。保留 data_src.* 和 data_dst.* 视频文件。谨慎使用。
导入数据
使用文件名 data_src.* 和 data_dst.* 将源视频和目标视频放入工作区文件夹中
基本的深度伪造从 2 个视频开始。您可以将自己下载的数据或文件导入到下面指定的目录中。
Data | 地点 |
---|---|
Video | 将源视频和目标视频放入工作区文件夹使用文件名 data_src.* 和 data_dst.* |
Photos Image Sequence | 将源图像放入 /data_src 将目标图像放入 /data_dst 跳到步骤 4 或步骤 5 |
Faceset | 将源对齐的面集放置在 /data_src/aligned 内 将目标对齐的面集放置在 /data_dst/aligned 内 跳至步骤 4.2 或步骤 5.2 |
Model XSeg Model | 将模型文件放入 /model 中 |
Pretrain Faceset | 将faceset.pak放入_internal/pretrain_faces中 |
Generic XSeg Model | 将通用预训练 XSeg 模型文件放入 _internal/model_generic_xseg 中 |
步骤 2:从视频中提取源帧图像
目的:为 DeepFaceLab 提供用于人脸集提取的源图像数据。
视频文件必须首先转换为图像序列。这些图像将成为源面集提取的目标,一旦源面集完成,就可以在步骤 4.2 后将其删除。如果您导入了自己的源照片或图像,则可以跳到步骤 3。
Run: 2) extract images from video data_src.bat
输入 FPS:设置提取的帧速率(频率)。
限制从长剪辑和低多样性剪辑中提取的帧数。如果您的剪辑具有多种或独特的帧,那么您可以输入“0”来提取所有帧。
示例:从 30 fps = 15/30 = 1/2 的视频中提取 15 fps已提取帧数。
[工具提示:视频每秒将提取多少帧。 0 – 全帧率。]
输出图像格式 ( png / jpg ):选择压缩的 JPEG 或未压缩的 PNG。
选择 png 以获得最佳图像质量。
[工具提示: png 是无损的,但提取速度比 jpg 慢 10 倍,需要比 jpg 多 10 倍的磁盘空间。]
将处理视频文件并为每个帧创建一个 .png 或 .jpg 文件。文件将从“00001.*”开始枚举(例如 00001.png)。按任意键或直接关闭窗口。
步骤 3:从视频中提取目标帧图像
目的:为 DeepFaceLab 提供用于人脸集提取的目标图像数据。
这些图像将成为目标人脸集提取的目标。由于目标视频需要所有帧,因此没有用于提取的 fps 输入;所有帧都将被提取。目标图像将用于合并最终帧图像和视频,因此应在项目期间保留它们。如果您已导入自己的目标照片或图像序列,则可以跳至步骤 4。
Run: 3) extract images from video data_dst FULL FPS.bat
输出图像格式 ( png / jpg ):选择压缩的 JPEG 或未压缩的 PNG。
选择 png 以获得最佳图像质量。
[工具提示: png 是无损的,但提取速度比 jpg 慢 10 倍,需要比 jpg 多 10 倍的磁盘空间。]
将处理视频文件并为每个帧创建一个 .png 或 .jpg 文件。文件将从“00001”开始枚举。按任意键或直接关闭窗口。
Optional: 3) cut video (drop video on me).bat
在提取之前,您可以修剪视频剪辑。将视频文件直接拖放到该批处理文件上以打开选项对话框。
起始时间:编辑起点的时间码。
到时间:编辑出点的时间码。
指定音轨 ID:选择要使用的音轨。
检查文件以查看可用的音轨。
输出文件的比特率(MB/s):设置输出文件比特率。
新的视频文件将出现在与原始文件相同的目录中,文件名后附加“_cut”。建议剪切前将视频文件放入工作区,以免文件丢失。
Optional: 3.optional) denoise data_dst images.bat
提取后对目标图像进行去噪。
降噪因子 ( 1 – 20 ):设置降噪算法的值(强度)。
步骤 4:提取源 Faceset
目的:为 DeepFaceLab 提供源对齐的人脸集图像和元数据。
现在您将处理图像并提取要在深度伪造中使用的面部。 DeepFaceLab 将检测图像中的人脸,确定人脸标志,生成默认蒙版,对齐人脸,并为每个检测到的人脸输出一个文件,包括嵌入的元数据。下图显示了面部标志的布局。
文件将根据原始(父)图像文件名命名。由于每张图像可能有多个脸部,因此每个脸部都会收到一个索引号(从 0 开始),由每个文件名上的后缀指示(例如 12345_0.jpg)。在下图中,您可以看到人脸标志(绿色)、默认蒙版(灰色)、人脸检测边界框(蓝色)、图像对齐边界框(红色)、向上方向指示器(红色三角形)以及结果示例文件名。正如您所看到的,提取的面集被裁剪并与红色边界框对齐。
如果您导入了自己的源faceset,那么您可以跳到步骤5。
提取源人脸集有两种方式:自动或手动模式。自动提取器将不间断地处理所有文件,而手动提取器允许您使用键盘和鼠标输入设置每个帧的面部对齐。对于大多数深度假货来说,手动模式并不是必需的,但它可以用于对齐特别棘手的面孔,例如极端角度、具有沉重视觉效果的图像、动画角色,甚至动物。
脸型
面部类型是在 Deepfake 过程中必须做出的第一个关键决定,因为它决定了可以训练的面部最大区域。覆盖更多面部和头部的较大面部类型将产生更好的深度伪造效果,但它需要更多的系统资源、更长的训练时间、额外的遮蔽和后处理。由于面部类型必须适应各种角度,因此某些提取的图像可能会被裁剪得更紧,而其他图像可能会在面部周围留下更多空间。此外,较大的面部类型可用于训练较小面部类型的模型集。许多 Deepfake 创作者选择 Whole Face (wf) 类型来平衡速度和相似度。
脸型 | 描述 |
---|---|
head | 头。覆盖整个头部和头发到颈部。使用 3D 地标。 |
wf | 全脸。覆盖头顶至下巴下方。 |
f | 整个脸。覆盖额头至下巴。 |
mf | 中脸(传统)。覆盖眉毛到下巴。 |
hf | 半脸(传统)。遮住眼睛到嘴巴。 |
在上图中,您可以看到 3 种最常见的人脸类型和原始帧图像。请注意,虽然“头部”类型覆盖了大部分区域,但脸部在左侧对齐的图像中显得最小。您将需要定制面部设置图像尺寸(分辨率)以适应面部类型和原始素材的分辨率。您还可以测量或近似帧中脸部的尺寸,以确定适当的图像尺寸。在 XSeg 掩蔽过程中,最重要的是,在 Deepfake 模型训练过程中,还需要输入人脸类型。脸型会对训练的速度和结果的质量产生很大的影响。
Run: 4) data_src faceset extract.bat (Automatic)
Which GPU Index to choice?:从列表中选择一个或多个 GPU 索引来运行提取。
建议在选择多个 GPU 索引时使用相同的设备。
面部类型 ( f / wf / head ):选择提取的面部类型。
[工具提示:全脸/全脸/头部。“全脸”覆盖脸部的整个区域,包括前额。“head”覆盖整个头部,但需要 XSeg 来表示 src 和 dst 面集。]
图像中的最大面部数量:选择要从每帧中提取的最大面部数量。
[工具提示:如果提取的 src 面集包含包含大量人脸的帧,建议将 max faces 设置为 3 以加快提取速度。0 – 无限]
图像大小 ( 256 – 2048 ):选择提取的面孔集图像文件的大小(分辨率)。
[工具提示:输出图像大小。图像尺寸越大,面部增强器的效果越差。仅当源图像足够清晰并且面部不需要增强时才使用高于 512 的值。]
Jpeg 质量 ( 1 – 100 ):选择提取的面集图像文件的质量(压缩)。
[工具提示:Jpeg 质量。jpeg 质量越高,输出文件大小越大。]
将调试图像写入aligned_debug?( y/n ):选择是否写入调试映像。
几分钟后,提取将完成,并为您提供有关找到的图像数量和检测到的人脸数量的报告。源面集图像文件将在 data_src/aligned 文件夹中创建。
Optional: 4) data_src faceset extract MANUAL.bat
手动源 Faceset 提取器采用与4) data_src Faceset extract.bat相同的选项。打开一个界面以在图像上手动设置面集对齐标志。手动模式每帧仅允许选择一个脸部。
Input | 描述 |
---|---|
L Mouse click | 锁定/解锁选择 |
R Mouse click | 手动面部矩形 |
Mouse wheel | 改变矩形大小 |
Enter | 确认选择 |
Space | 跳帧 |
, (comma)) | 前一帧 |
. (period) | 下一帧 |
Q | 跳过剩余帧 |
A | 精度开/关(更多 fps) |
H | 隐藏此帮助 |
- 点赞
- 收藏
- 关注作者
评论(0)