Deep-Live-Cam 处理流程是负责面部检测、映射、交换和增强操作的核心工作流。本页面记录了输入(图像、视频和网络摄像头馈送)如何通过系统处理以生成面部交换输出的技术细节。
有关特定面部处理算法的信息,请参阅面部处理。有关视频捕获机制的详细信息,请参阅视频捕获和处理。
处理流程包含几个顺序阶段,这些阶段将包含面部的输入媒体转换为具有交换面部的输出媒体。该系统支持各种输入类型、配置选项以及可以启用或禁用的处理模块。
来源:modules/core.py178-238 modules/processors/frame/core.py79-84
流程首先接受以下三种输入类型之一
在开始处理之前,系统会执行验证以确保输入有效且兼容
来源:modules/core.py164-170 modules/core.py178-200 modules/processors/frame/face_swapper.py30-55
对于视频输入,系统会将单个帧提取到临时目录中
输入准备好后,每一帧都将经历一个帧处理器流程。系统使用插件架构,可以启用或禁用不同的处理器。
帧处理器是实现标准接口的模块化组件
来源:modules/processors/frame/core.py11-18 modules/processors/frame/face_swapper.py20-22
对于视频处理,系统利用并行处理来提高性能
来源:modules/processors/frame/core.py69-84
流程的核心包含多个面部处理阶段
第一阶段在输入帧中检测和分析面部
来源:modules/processors/frame/face_swapper.py101-119
当涉及多个面部时,系统可以进行源面部到目标面部的映射
系统支持两种映射模式
来源:modules/processors/frame/face_swapper.py123-210
面部交换过程包括
来源:modules/processors/frame/face_swapper.py70-98 modules/processors/frame/face_swapper.py267-532
如果启用,可以使用面部增强处理器来提高交换后的面部质量
处理完所有帧后,系统将生成最终输出
对于图像输入,将处理后的图像简单地保存到指定的输出路径。
对于视频输入,系统会
流程行为可以通过各种配置选项进行自定义
| 选项 | 描述 | 默认 |
|---|---|---|
keep_fps | 保持原始视频帧率 | 否 |
keep_audio | 在输出视频中保留原始音频 | True |
many_faces | 处理帧中的所有检测到的面部 | 否 |
map_faces | 启用手动面部映射 | 否 |
mouth_mask | 保留原始嘴部区域 | 否 |
color_correction | 匹配面部之间的颜色色调 | 否 |
execution_providers | 硬件加速选项 | ['cpu'] |
execution_threads | 并行处理线程数 | 8 |
该系统支持多种执行提供商以实现硬件加速
执行提供商的选择基于
来源:modules/core.py112-136 requirements.txt17-18
该流程包含用于管理系统资源的机制
来源:modules/core.py139-162 modules/core.py241-244
Deep-Live-Cam 处理流程为图像和视频中的面部交换提供了一个灵活高效的框架。其模块化设计允许通过帧处理器进行自定义,同时支持各种硬件加速选项,以在不同平台上实现最佳性能。
该流程处理从输入准备到面部检测、映射、交换、增强,最后到输出生成的整个工作流,并提供大量配置选项来控制该过程。