批处理文件和文件夹

举报
Yuchuan 发表于 2023/11/08 15:14:01 2023/11/08
【摘要】 deepfacelab

打开您提取 DeepFaceLab 的文件夹。这些是制作 DeepFake 所需的所有文件和文件夹,包括 DeepFaceLab 代码、附加包和软件、工作区文件夹以及一些示例视频数据。

主文件夹中的批处理文件允许您与软件交互。它们按照您应遵循的一般顺序进行编号,并具有描述其用途的名称。您可以将它们视为在整个 Deepfake 过程中使用的单独工具。这些文件本身并没有太多作用。相反,它们调用其他 DFL 脚本并向它们传递参数,从而初始化实际的 Deepfake 进程。

_internal 文件夹包含 DeepFaceLab 代码以及其他软件和所需的库,例如 CUDA、Python 和 FFMpeg。您可以在此处修改代码或安装 DFL 存储库的分支。

image.png

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)。按任意键或直接关闭窗口。
image.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 ):设置降噪算法的值(强度)。

image.png

步骤 4:提取源 Faceset

目的:为 DeepFaceLab 提供源对齐的人脸集图像和元数据。

现在您将处理图像并提取要在深度伪造中使用的面部。 DeepFaceLab 将检测图像中的人脸,确定人脸标志,生成默认蒙版,对齐人脸,并为每个检测到的人脸输出一个文件,包括嵌入的元数据。下图显示了面部标志的布局。

image.png

文件将根据原始(父)图像文件名命名。由于每张图像可能有多个脸部,因此每个脸部都会收到一个索引号(从 0 开始),由每个文件名上的后缀指示(例如 12345_0.jpg)。在下图中,您可以看到人脸标志(绿色)、默认蒙版(灰色)、人脸检测边界框(蓝色)、图像对齐边界框(红色)、向上方向指示器(红色三角形)以及结果示例文件名。正如您所看到的,提取的面集被裁剪并与红色边界框对齐。

image.png

如果您导入了自己的源faceset,那么您可以跳到步骤5。

提取源人脸集有两种方式:自动或手动模式。自动提取器将不间断地处理所有文件,而手动提取器允许您使用键盘和鼠标输入设置每个帧的面部对齐。对于大多数深度假货来说,手动模式并不是必需的,但它可以用于对齐特别棘手的面孔,例如极端角度、具有沉重视觉效果的图像、动画角色,甚至动物。

脸型

面部类型是在 Deepfake 过程中必须做出的第一个关键决定,因为它决定了可以训练的面部最大区域。覆盖更多面部和头部的较大面部类型将产生更好的深度伪造效果,但它需要更多的系统资源、更长的训练时间、额外的遮蔽和后处理。由于面部类型必须适应各种角度,因此某些提取的图像可能会被裁剪得更紧,而其他图像可能会在面部周围留下更多空间。此外,较大的面部类型可用于训练较小面部类型的模型集。许多 Deepfake 创作者选择 Whole Face (wf) 类型来平衡速度和相似度。

脸型 描述
head 头。覆盖整个头部和头发到颈部。使用 3D 地标。
wf 全脸。覆盖头顶至下巴下方。
f 整个脸。覆盖额头至下巴。
mf 中脸(传统)。覆盖眉毛到下巴。
hf 半脸(传统)。遮住眼睛到嘴巴。

image.png

在上图中,您可以看到 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相同的选项。打开一个界面以在图像上手动设置面集对齐标志。手动模式每帧仅允许选择一个脸部。

image.png

Input 描述
L Mouse click 锁定/解锁选择
R Mouse click 手动面部矩形
Mouse wheel 改变矩形大小
Enter 确认选择
Space 跳帧
, (comma)) 前一帧
. (period) 下一帧
Q 跳过剩余帧
A 精度开/关(更多 fps)
H 隐藏此帮助
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。