Faceswap GUI 提供了一个用户友好的界面来与 Faceswap 应用程序进行交互。它将 Faceswap 的命令行功能封装在一个直观的界面中,允许用户配置、执行和监控 Faceswap 的三个主要进程:提取 (Extract)、训练 (Train) 和转换 (Convert)。本页面将介绍 GUI 的架构和组件、它们的交互方式以及 GUI 如何管理进程执行。
有关 CLI 命令的信息,请参阅 命令行界面。
Faceswap GUI 使用 Python 的标准 GUI 工具包 Tkinter 构建。它遵循一种布局模式,包含几个关键区域。
来源
GUI 由几个关键组件组成,它们协同工作。
Command Notebook 是配置和执行 Faceswap 操作的主要接口。它被实现为一个 ttk.Notebook,带有 Faceswap 主要命令的选项卡。
来源
每个命令选项卡都包含一个控件面板,用于显示该命令的配置选项。这些选项是从 CLI 模块中定义的命令行参数生成的。
ControlPanel 是一个灵活的控件,可以显示各种类型的选项:
来源
每个命令选项卡都有一个操作框架,其中包含用于执行以下操作的按钮:
当命令运行时,执行按钮会变为停止按钮,允许用户终止进程。
来源
Display Notebook 显示输出、预览和分析。它始终包含“分析”选项卡,并根据当前运行的进程动态添加其他选项卡。
来源
Analysis 选项卡提供训练会话的统计信息和分析。它显示以下信息:
用户可以查看所有训练会话的详细信息并分析模型性能。
来源
显示提取的人脸或转换后的图像的缩略图,并在进程运行时进行更新。
显示训练预览图像,展示模型当前的输出,包括可选的蒙版叠加。
来源
实时显示训练损失值的图表,并提供以下选项:
来源
GUI 使用包装器系统将 Faceswap 命令作为单独的进程执行,并捕获其输出。
来源
ProcessWrapper 类负责:
它创建并管理直接处理进程通信的 FaceswapControl 对象。
来源
FaceswapControl 处理:
来源
进程输出从 stdout 和 stderr 捕获,并:
正则表达式用于解析特定的输出格式,例如:
来源
GUI 拥有一个全面的配置系统,用于管理设置、项目和任务。
来源
GUI 有一个设置对话框,允许用户配置全局设置,可从“设置”菜单访问。设置类别包括:
设置存储在 .faceswap 配置文件中。
来源
项目和任务可以保存和加载
这使用户能够保存他们的配置以供将来使用或共享。
来源
GUI 提供了一个包含三个主要菜单的综合菜单系统
来源
文件菜单提供了选项用于
来源
设置菜单提供对配置对话框的访问。
来源
帮助菜单提供
来源
GUI 使用标准 Tkinter 控件和专门为 Faceswap 设计的自定义控件的组合。
来源
control_helper 模块提供了几个用于构建和管理 GUI 控件的类
来源
GUI 使用 Tkinter 的事件系统和变量跟踪来处理用户交互和更新界面。关键流程包括:
来源
GUI 大量使用 Tkinter 的变量跟踪机制,以便在变量更改时触发操作。
action_command 用于执行命令generate_command 用于生成命令行refresh_graph 用于更新图表running_task 用于在任务开始或停止时更新 UI 状态来源
可能需要很长时间的 GUI 操作使用 `LongRunningTask` 类在单独的线程中执行,以防止 UI 冻结。
来源
GUI 通过以下方式与核心 Faceswap 组件(提取、训练、转换)集成:
来源
GUI 包含全面的日志记录和错误处理机制
来源
Faceswap GUI 为 Faceswap 应用程序提供了一个全面的界面,使其能够被那些偏爱图形界面而非命令行操作的用户所使用。其模块化设计允许灵活性和可扩展性,同时保持跨不同 Faceswap 操作的一致用户体验。
GUI 有效地弥合了用户与底层 Faceswap 功能之间的差距,提供了直观的配置控件、处理过程中的实时反馈以及对结果的详细分析。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(7d80bd)