FaceFusion简介
录制了一个简短的说明
<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="OQavOwq0-1725323302474" src="https://player.bilibili.com/player.html?aid=113066893182004"></iframe>facefusion开源项目-视频换脸
FaceFusion是一个开源的AI换脸和增强工具,支持图像和视频处理。它采用最新的深度学习技术,提供了一系列强大的功能,包括人脸替换、人脸增强、唇形同步等。FaceFusion的目标是为用户提供一个易用、高效且功能丰富的AI换脸解决方案。
下面是一个给汉尼拔换脸的示例
主要特性
- 多模型支持:FaceFusion提供多种人脸交换和增强模型,如InSwapper_128、GFPGAN等,用户可根据需求选择最适合的模型。
- 高清处理:支持高分辨率图像和视频处理,确保输出结果的清晰度和质量。
- 遮挡处理:通过先进的遮挡检测和处理技术,有效解决部分遮挡情况下的换脸问题。
- 多平台兼容:支持NVIDIA和AMD等主流显卡平台,满足不同用户的硬件需求。
- 唇形同步:提供音频到视频的唇形同步功能,为视频换脸增添更多可能性。
- 开源免费:作为开源项目,FaceFusion允许用户自由使用和定制,为AI换脸技术的发展做出贡献。
安装指南
前置:
- 需要有python环境,建议使用conda提供的环境(anaconda)
- 需要ffmpeg,安装教程 https://blog.csdn.net/yuanmomoya/article/details/141992114
FaceFusion的安装需要一定的技术基础。对于熟悉命令行操作的用户,可以按照以下步骤进行安装:
-
克隆FaceFusion仓库:
git clone https://github.com/facefusion/facefusion.git
-
进入项目目录:
cd facefusion
-
安装依赖:
pip install -r requirements.txt
使用指南
基本操作
-
启动FaceFusion:
python run.py
-
选择源图像:上传包含要替换的人脸的图像。
-
选择目标图像或视频:上传需要被替换人脸的图像或视频。
-
调整参数:根据需要调整面部检测、交换模型、增强设置等参数。
-
开始处理:点击"开始"按钮,等待处理完成。
一般情况可以使用默认的参数来做操作就行,cpu场景下执行速度巨慢
<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="b5kXEISO-1725258001220" src="https://player.bilibili.com/player.html?aid=113066289267626"></iframe>海ni拔 1
页面的配置参数说明
FaceFusion
中一些配置参数及其作用的详细解释:
- FRAME PROCESSORS: 这些是处理每一帧的插件,可以用来实现不同的效果如面部交换、面部增强等。
- FACE SWAPPER MODEL: 选择用于面部交换的模型,不同的模型可能会有不同的性能表现和结果质量。
- EXECUTION PROVIDERS: 指定用于执行计算的硬件设备,如CPU、CUDA(GPU加速)等。
- EXECUTION THREAD COUNT: 设置执行线程的数量,这会影响到处理速度以及资源使用情况。
- EXECUTION QUEUE COUNT: 设定执行队列的数量,这对于并行处理多个任务有用。
- VIDEO MEMORY STRATEGY: 视频内存管理策略,可能包括如何分配和释放内存。
- SYSTEM MEMORY LIMIT: 设置系统内存使用的上限,以防止过度消耗内存导致系统不稳定。
- TEMP FRAME FORMAT: 临时帧存储的格式,这可能影响到临时文件的大小和读写速度。
- OUTPUT PATH: 输出文件的路径,指定生成的文件保存在哪里。
- OUTPUT VIDEO ENCODER: 选择视频编码器来决定输出视频的编码方式。
- OUTPUT VIDEO PRESET: 输出视频的质量预设,通常有快速模式(Fast)、普通模式(Normal)等。
- OUTPUT VIDEO QUALITY: 输出视频的整体质量设置,可能会影响文件大小和清晰度。
- OUTPUT VIDEO RESOLUTION: 输出视频的分辨率设置。
- OUTPUT VIDEO FPS: 输出视频的帧率设置。
- PREVIEW FRAME: 预览帧设置,可能是指在处理过程中显示的预览帧的数量或者频率。
- TRIM FRAME START/END: 剪辑开始和结束的帧号,用于裁剪视频的起始和结束部分。
- FACE SELECTOR MODE: 选择要处理的人脸的方式,例如基于位置、大小等标准。
- FACE MASK TYPES: 人脸遮罩的类型,用于定义面部区域的精确度。
- FACE MASK BLUR: 遮罩的模糊程度,这可以帮助平滑边缘。
- FACE MASK PADDING TOP/RIGHT/BOTTOM/LEFT: 面部遮罩周围的填充量,用于扩大或缩小处理区域。
- FACE ANALYSER ORDER: 分析脸部特征的顺序,可能涉及到年龄、性别等分析的优先级。
- FACE ANALYSER AGE/GENDER: 是否启用年龄或性别分析功能。
- FACE DETECTOR MODEL: 使用哪种模型进行面部检测。
- FACE DETECTOR SIZE: 面部检测器的工作尺寸,这可能影响检测速度和准确性。
- FACE DETECTOR SCORE: 面部检测得分阈值,用于过滤掉低质量的面部检测结果。
- FACE LANDMARKER SCORE: 面部标志点得分阈值,用于确保检测到的标志点足够准确。
高级功能
- 遮挡处理:
- 启用
face_debugger
选项。 - 选择适当的遮挡模式(box、occlusion、region)。
- 调整
Face Mask Blur
参数以优化遮挡效果。
- 启用
- 高清处理:
- 启用
face_enhancer
选项。 - 选择合适的增强模型,如GFPGAN1.4或codeformer。
- 调整
Face Detector Size
以提高细节处理能力。
- 启用
- 唇形同步:
- 启用
lip_syncer
选项。 - 上传音频文件。
- 选择合适的唇形同步模型。
- 启用
实用技巧
- 性能优化:
- 根据显卡类型选择合适的
Execution Provider
(NVIDIA用CUDA,AMD用DirectML)。 - 调整
Execution Thread Count
以平衡处理速度和内存使用。
- 根据显卡类型选择合适的
- 多人脸处理:
- 使用
Face Selector Mode
选择处理单个或多个人脸。 - 调整
Reference Face Distance
参数以提高多角度人脸的匹配精度。
- 使用
- 卡通人脸处理:
- 使用
simswap_256
模型进行卡通人脸替换。 - 启用
face_enhancer
并重点增强眼睛、鼻子和嘴巴区域。
- 使用