一. 简介
FaceFusion是一款强大的AI换脸软件,它支持图片、视频以及直播换脸,官方将其称为“下一代脸部交换器和增强器”。FaceFusion的最新版本为2.6.1,这个版本在原有基础上增加了更多的模型和高清算法,显著提升了图片和视频的换脸效果。此外,FaceFusion还新增了三种遮罩功能,有效解决了脸部有物体遮挡时的融合效果差和跳闪问题。该软件拥有大量的模型,包括基础换脸模型、帧着色器模型、帧增强器模型、人脸增强模型以及人脸调试模型,所有模型总数达到44个,模型文件总计超过10GB。
FaceFusion的使用条件包括支持Windows 10或Windows 11操作系统,并且需要NVIDIA GPU(即[CUDA)版本至少为11.8。对于没有NVIDIA显卡的用户,软件也提供了CPU处理模式。安装过程相对简单,只需解压整合包并运行启动程序,然后按照提示操作即可。
FaceFusion的功能特点包括但不限于:
换脸功能:用户可以选择不同的换脸模型,实现高质量的面部替换。
遮罩功能:解决了脸部有物体遮挡时的融合问题,提高了换脸的自然度。
高清修复:提供人脸替换、人脸高清修复和背景高清修复等多种策略,每种策略下包含多个模型可自由切换。
自定义选项:用户可以根据自己的需求调整执行线程、执行队列、最大内存和输出路径等参数。
预览功能:在换脸前可以预览效果,支持自由选择换脸对象和多人换脸。
口型同步:通过Lip Sync技术,实现换脸后的视频中口型的自然同步。
此外,FaceFusion还提供了保姆级教程和免费学习工具,旨在让用户能够轻松上手,实现“换脸自由”,无论是自媒体从业者还是普通用户,都能通过这款软件探索无限创意,创造独一无二的面孔融合艺术作品12。
本项目的目的是在FaceFusion的基础上,使用其口型同步的功能,进一步改造封装,使其能够更高效调用执行,以及部署。
二. 源码分析
- 从程序入口 ./run.py 出发进入 ./facefusion/core.py
- 不难得知,首先会加载配置文档 ./facefusion.ini 的相关参数
- 由于此项目只需使用其口型同步功能,所以需要提前设定 ./facefusion.ini 的相关参数
target_path 需要替换嘴型的视频素材路径execution_providers 若有CUDA环境设置为cuda,否则cpuexecution_thread_count 推理线程数量,值越大占用显存越多,1080ti推荐4face_selector_mode 若视频素材中包含多个人脸,设置为one,表示只对识别到的第一个人脸对口型temp_frame_format 视频切片的帧格式,推荐jpg,pngoutput_video_encoder 视频编码器,推荐h264_nvenc,可提高数据处理速度output_video_preset 若想要提高合成速度,且能忽略微小瑕疵,推荐ultrafastoutput_video_fps 输出视频数据的帧数,推荐25frame_processors 帧处理模型,口型同步必选lip_syncer
- 当程序完成参数的加载后,进入到 run函数 ,首先检查参数是否配置正确,随即将参数提交到全局变量 facefusion.globals 中方便后续调用,然后进行检查并下载所需模型数据文件,当然,如果已经手动下载添加,可将配置文档skip_download 的值设置为true,从而跳过模型下载,或者使用代理进行下载,否则很慢。最后通过判断headless的值,判断是否为无头模式,否则启动为webui模式,到此初始化工作已完成
三. API改造
- 近期较忙,如有需求请参考GIT: https://gitee.com/xiaofang113/facefusion
四. API部署
版权归原作者 xiaofang113 所有, 如有侵权,请联系我们删除。