本文档详细介绍了 Faceswap 中使用的配置系统。该配置系统提供了一个灵活、可扩展的机制,用于定义、存储、验证和检索应用程序所有组件的配置选项。该系统通过统一的接口管理全局设置和插件特定的配置。
有关各种工具中可用配置选项的详细信息,请参阅 命令行界面 和 图形用户界面。
Faceswap 配置系统围绕 FaceswapConfig 类构建,该类作为基类处理
配置系统由几个关键组件组成,它们协同工作以管理应用程序设置
来源:lib/config.py79-634 plugins/extract/_config.py17-141 plugins/convert/_config.py12-18
配置文件以 INI 格式存储,每个文件对应系统的一个主要组件。这些文件通常位于 Faceswap 安装目录的 config 目录中。
来源:lib/config.py265-290 lib/config.py527-532 lib/config.py620-633
配置文件分为多个部分,每个部分包含相关的配置选项。注释提供了关于每个选项的有用信息,包括描述、可能的值和默认值。
配置文件示例部分
来源:lib/config.py489-520 lib/config.py420-430 plugins/extract/_config.py33-49
FaceswapConfig 类是配置系统的基础。它提供了定义、加载、验证和访问配置选项的方法。
关键方法
这些数据类存储有关配置项和部分元数据
配置系统遵循特定的加载和验证过程
来源:lib/config.py620-633 lib/config.py406-417 lib/config.py522-532 lib/config.py202-235
配置系统通过标准化机制支持插件特定的配置
插件使用标准化格式定义其配置
来源:lib/config.py139-183 plugins/train/trainer/original_defaults.py44-140
配置系统支持多种数据类型并进行验证
| 数据类型 | 描述 | 验证功能 |
|---|---|---|
bool | 布尔值(True/False) | 从字符串自动转换 |
int | 整数值 | GUI 的最小/最大范围、步长 |
浮点数 | 浮点数值 | GUI 的最小/最大范围、小数精度 |
str | 字符串值 | 下拉菜单的固定选项 |
list | 值列表 | 配置文件中用空格或逗号分隔 |
每种数据类型都在 get() 方法中包含特定的验证逻辑
来源:lib/config.py202-235 lib/config.py237-263 lib/config.py534-596
在代码中使用配置系统
来源: plugins/extract/_config.py17-141 plugins/convert/_config.py12-18 plugins/convert/color/_base.py26-36 plugins/convert/scaling/_base.py26-38
Faceswap 支持多种后端(NVIDIA/CUDA、DirectML、ROCm、Apple Silicon、CPU),具有特定后端要求。
来源: requirements/_requirements_base.txt1-14 requirements/requirements_nvidia.txt1-6 requirements/requirements_directml.txt1-5 requirements/requirements_rocm.txt1-3 requirements/requirements_apple_silicon.txt1-8 requirements/requirements_cpu.txt1-3
配置系统提供配置选项和帮助文本的本地化支持。
来源: plugins/extract/_config.py10-12 plugins/extract/_config.py32 locales/plugins.extract._config.pot1-118
Faceswap 的配置系统提供了一个强大而灵活的框架来管理应用程序和插件的设置。通过集中式配置管理,它确保了应用程序之间的一致性,简化了验证,并可以根据需要轻松地用新的配置选项扩展系统。