菜单

命令行界面

相关源文件

本 Wiki 页面介绍了 Faceswap 的命令行界面 (CLI),它允许用户通过终端命令运行核心操作(提取、训练、转换)和各种实用程序。有关图形用户界面的信息,请参阅图形用户界面

概述

命令行界面提供了一种结构化的方式,通过终端命令访问所有 Faceswap 功能。它负责处理所有 Faceswap 操作的参数解析、验证和脚本执行。

来源: lib/cli/args.py86-127 scripts/convert.py65-266 scripts/extract.py30-180

CLI 架构

CLI系统构建于 Python 的 argparse 库之上,并带有自定义扩展,以提供更好的帮助格式化、验证和执行。

来源: lib/cli/args.py26-31 lib/cli/args.py33-84 lib/cli/args.py87-294

关键组件

  1. FullHelpArgumentParser - 扩展 argparse.ArgumentParser,可在发生错误时显示完整的帮助文本
  2. SmartFormatter - 扩展 argparse.HelpFormatter,允许在帮助文本中进行自定义格式化
  3. FaceSwapArgs - 定义所有 Faceswap 命令的命令行参数的基类
  4. ScriptExecutor - 根据给定命令执行相应的脚本

命令结构

所有 Faceswap 命令都遵循此通用结构

python faceswap.py [command] [options]

其中 [command] 是以下之一

  • extract - 从图像/视频中提取人脸
  • train - 在提取的人脸上训练模型
  • convert - 将训练好的模型应用于人脸交换
  • 各种实用命令(例如 effmpegsort 等)

全局参数

这些参数适用于所有 Faceswap 命令

参数描述
-h, --help显示帮助信息并退出
-X, --exclude-gpus排除特定 GPU 使用
-C, --configfile使用自定义配置文件覆盖保存的配置
-L, --loglevel设置日志级别(INFO、VERBOSE、DEBUG、TRACE)
-F, --logfile日志文件存储路径

来源: lib/cli/args.py170-237

命令执行流程

当您运行 Faceswap 命令时,幕后会发生以下情况

来源: lib/cli/args.py106-121

主要命令

提取命令

提取命令可以检测图像或视频中的人脸,对它们进行对齐,并将它们保存以供训练。

关键选项

选项描述
-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 可以从文件加载配置,而无需在命令行上指定所有选项。

来源: lib/cli/args.py196-202

后端选择

Faceswap 支持多种后端(CPU、NVIDIA、DirectML、ROCm、Apple Silicon),CLI 负责选择和配置适当的后端。

来源: lib/utils.py34-122 lib/cli/args.py181-194 lib/cli/args.py277-293

常见问题和提示

  1. 缺少参数:确保为命令包含所有必需的位置参数。

  2. 路径问题:在指定目录时,使用绝对路径或正确转义相对路径。

  3. GPU 问题:如果遇到与 GPU 相关的错误,请使用 -X 来排除有问题的 GPU。

  4. 日志级别:

    • INFO:默认级别,显示常规进度信息
    • VERBOSE:更详细的信息
    • DEBUG:用于故障排除的开发者级信息
    • TRACE:极其详细的日志记录(会生成非常大的日志文件)
  5. 获取帮助:使用任何命令的 -h--help 查看详细帮助信息