本 Wiki 页面介绍了 Faceswap 的命令行界面 (CLI),它允许用户通过终端命令运行核心操作(提取、训练、转换)和各种实用程序。有关图形用户界面的信息,请参阅图形用户界面。
命令行界面提供了一种结构化的方式,通过终端命令访问所有 Faceswap 功能。它负责处理所有 Faceswap 操作的参数解析、验证和脚本执行。
来源: lib/cli/args.py86-127 scripts/convert.py65-266 scripts/extract.py30-180
CLI系统构建于 Python 的 argparse 库之上,并带有自定义扩展,以提供更好的帮助格式化、验证和执行。
来源: lib/cli/args.py26-31 lib/cli/args.py33-84 lib/cli/args.py87-294
argparse.ArgumentParser,可在发生错误时显示完整的帮助文本argparse.HelpFormatter,允许在帮助文本中进行自定义格式化所有 Faceswap 命令都遵循此通用结构
python faceswap.py [command] [options]
其中 [command] 是以下之一
extract - 从图像/视频中提取人脸train - 在提取的人脸上训练模型convert - 将训练好的模型应用于人脸交换effmpeg、sort 等)这些参数适用于所有 Faceswap 命令
| 参数 | 描述 |
|---|---|
-h, --help | 显示帮助信息并退出 |
-X, --exclude-gpus | 排除特定 GPU 使用 |
-C, --configfile | 使用自定义配置文件覆盖保存的配置 |
-L, --loglevel | 设置日志级别(INFO、VERBOSE、DEBUG、TRACE) |
-F, --logfile | 日志文件存储路径 |
当您运行 Faceswap 命令时,幕后会发生以下情况
提取命令可以检测图像或视频中的人脸,对它们进行对齐,并将它们保存以供训练。
| 选项 | 描述 |
|---|---|
-i, --input-dir | 图像或视频的输入目录 |
-o, --output-dir | 提取人脸的输出目录 |
-D, --detector | 要使用的检测器(opencv, mtcnn, s3fd 等) |
-A, --aligner | 要使用的对齐器(fan, cv2-dnn) |
-nm, --normalization | 图像归一化(None, clahe, hist, mean) |
-r, --rotate-images | 旋转图像以查找更多人脸 |
-min, --min-size | 提取人脸的最小尺寸 |
-sk, --skip-existing | 跳过已提取的帧 |
-sf, --skip-faces | 跳过未检测到人脸的帧 |
示例
来源: scripts/extract.py30-62 scripts/extract.py135-179
训练命令在提取的人脸上训练模型。
| 选项 | 描述 |
|---|---|
-A, --input-A | 人脸集 A 的输入目录 |
-B, --input-B | 人脸集 B 的输入目录 |
-m, --model-dir | 保存模型的目录 |
-t, --trainer | 要使用的训练器(original, dfaker 等) |
-bs, --batch-size | 训练批次大小 |
-it, --iterations | 训练迭代次数 |
-s, --save-interval | 模型快照的保存间隔 |
-ss, --snapshot | 样本创建的快照间隔 |
示例
转换命令将训练好的模型应用于图像或视频中的人脸交换。
| 选项 | 描述 |
|---|---|
-i, --input-dir | 图像或视频的输入目录 |
-o, --output-dir | 转换后的图像/视频的输出目录 |
-m, --model-dir | 包含训练模型的目录 |
-a, --alignments | 对齐文件的路径 |
-w, --writer | 要使用的写入器插件(opencv, ffmpeg 等) |
-c, --color-adjustment | 颜色调整方法 |
-M, --mask-type | 要使用的遮罩器(none, extended 等) |
-ref, --reference-video | 帧率/分辨率的参考视频 |
示例
来源: scripts/convert.py65-107 scripts/convert.py148-199
来源: lib/cli/args.py268-276 lib/cli/args.py277-293
CLI通过 gettext 翻译系统支持多种语言。目前支持以下语言
来源: lib/cli/args.py21-23 locales/ru/LC_MESSAGES/lib.cli.args.po locales/es/LC_MESSAGES/lib.cli.args.po locales/kr/LC_MESSAGES/lib.cli.args.po
CLI 可以从文件加载配置,而无需在命令行上指定所有选项。
Faceswap 支持多种后端(CPU、NVIDIA、DirectML、ROCm、Apple Silicon),CLI 负责选择和配置适当的后端。
来源: lib/utils.py34-122 lib/cli/args.py181-194 lib/cli/args.py277-293
缺少参数:确保为命令包含所有必需的位置参数。
路径问题:在指定目录时,使用绝对路径或正确转义相对路径。
GPU 问题:如果遇到与 GPU 相关的错误,请使用 -X 来排除有问题的 GPU。
日志级别:
INFO:默认级别,显示常规进度信息VERBOSE:更详细的信息DEBUG:用于故障排除的开发者级信息TRACE:极其详细的日志记录(会生成非常大的日志文件)获取帮助:使用任何命令的 -h 或 --help 查看详细帮助信息