本文档提供了 Deep-Live-Cam 项目目录结构、文件组织和代码架构的全面概述。旨在帮助开发人员了解不同组件的位置及其相互关系,从而方便导航和贡献代码库。
有关特定组件及其交互的信息,请参阅 关键组件。有关高级系统架构,请参阅 系统架构。
Deep-Live-Cam 项目遵循模块化组织,具有几个关键目录,分别用于容纳系统的不同方面。
源文件:.gitignore
根目录包含应用程序的主要入口点和配置文件。
run.py:应用程序的主要 Python 入口点。run-cuda.bat:用于使用 CUDA 加速启动的脚本。run-directml.bat:用于使用 DirectML 加速启动的脚本。run-laptop-gpu.bat:为笔记本电脑 GPU 优化的启动脚本。switch_states.json:存储用户配置设置和 UI 状态,跨会话保持。源文件:.gitignore
modules/ 目录包含应用程序的核心功能,并组织成子模块。
| 子模块 | 目的 |
|---|---|
core/ | 协调其他模块的核心处理引擎。 |
face_analyser/ | 处理面部检测、提取和嵌入分析。 |
processors/ | 包含帧处理组件,如面部交换器和增强器。 |
utilities/ | 用于文件操作、视频处理等的辅助函数。 |
ui/ | 用户界面组件和交互。 |
globals/ | 应用程序中使用的全局配置设置。 |
video_capture/ | 视频捕获和处理实用程序。 |
predictor/ | NSFW 内容检测和过滤。 |
gettext/ | 国际化支持 |
cluster_analysis/ | 用于面部聚类和映射的算法。 |
源文件:.gitignore、modules/__init__.py
modules/processors/ 目录进一步细分为:
| 子模块 | 目的 |
|---|---|
frame/core/ | 帧处理器的基类和接口。 |
frame/face_swapper/ | 面部交换功能实现。 |
frame/face_enhancer/ | 面部增强功能实现。 |
源文件:.gitignore
models/ 目录存储应用程序使用的神经网络模型。
| 模型文件 | 目的 |
|---|---|
inswapper_128.onnx | 用于面部交换的 ONNX 模型。 |
GFPGANv1.4.pth | 用于使用 GFPGAN 进行面部增强的 PyTorch 模型。 |
DMDNet.pth | 额外的增强模型。 |
源文件:.gitignore
locales/ 目录包含用于国际化的 JSON 文件。
| 文件 | 目的 |
|---|---|
*.json | 不同语言的翻译字符串。 |
下图说明了 Deep-Live-Cam 系统中各个模块之间的关系和依赖关系。
下图将系统架构中讨论的自然语言概念映射到其对应的代码实体。
此图说明了执行如何从入口点流经系统到各种处理组件。
.gitignore 文件指出了几个不包含在版本控制中的开发工件和临时文件。
| 类别 | 被忽略的文件 |
|---|---|
| Python 工件 | __pycache__/、*.py[cod]、*$py.class、*.pyc |
| IDE 文件 | .idea、.vscode/ |
| 环境 | .venv/、venv/、env/、tf_env/ |
| 临时文件 | .tmp/、temp/、*.log、*.backup |
| 媒体文件 | *.png、*.mp4、*.mkv |
| 模型 | models/inswapper_128.onnx、models/GFPGANv1.4.pth、*.onnx |
| 配置 | switch_states.json |
这表明模型文件需要在设置过程中单独下载,并且项目支持多种开发环境。
源文件:.gitignore
项目结构支持以下开发工作流程:
modules/processors/frame/。modules/ui/ 中扩展。models/ 目录。modules/globals/ 暴露配置选项。这种模块化结构允许系统的不同方面独立开发和测试,从而促进协作和维护。
该项目依赖于几个集成到代码库中的外部依赖项。
这些依赖项通过相应的模块集成,而不是直接暴露在顶层项目结构中。
源文件:.gitignore