AI换脸:FaceFusion 3.5.0更新,解决老版本无法使用问题!
好久不见!
闲话不多说,今天主要是通知一下FaceFusion两个版本的更新。更新内容如下:V3.5.0
-
帧着色器:使用来自 ddcolor 和 deoldify 的先进模型,为黑白或低色彩素材添加色彩。这些模型利用深度学习技术生成逼真且美观的着色效果。
-
改善唇同步效果:从音频中更清晰、更准确地提取语音。增强的语音提取可让您的AI换脸视频中的唇形同步更加自然逼真。
-
实验性 5 到 68 个关键点识别: 尝试用于识别 5 到 68 个面部关键点的模型。这些关键点可精准定位关键面部特征,从而实现更准确、细致的深度伪造效果。
-
使用尖端模型进行面部增强: 结合强大的 gpen_bfr_1024 和 gpen_bfr_2048 模型,在保持自然外观的前提下,微妙地改善面部特征,提升深度伪造视频的质量。
-
帧增强选项:利用 real_esrgan_x2 和 real_hatgan_x4 等先进视频增强模型,可以将低分辨率视频进行上采样或增强细节,打造更精美的视觉效果。
-
简化模型管理:使用新的 --force-download 参数可以轻松一次下载所有必需的模型。这消除了每次运行应用程序时等待单个模型下载的麻烦。
-
简化环境管理:将文档和安装程序从虚拟环境 (venv) 迁移到 conda 环境。Conda 提供了更健壮的依赖项管理,简化了设置和维护流程。
-
增强 CUDA 12 兼容性: 得益于对 inswapper_128_fp16 模型的修复,该项目实现了与 NVIDIA CUDA 12 工具包的无缝兼容。即使您使用最新版本的 CUDA,也能确保程序顺畅运行。
-
解决视频合并过程中帧率波动的问题,提供更一致的用户体验。
-
修复了使用 --skip-download 参数且部分模型缺失时程序崩溃的问题,可以优雅地处理缺失模型的情况。
-
修正了 h264_nvenc 和 hevc_nvenc 预设的映射,确保准确的编码。
V3.4.1
-
下载人脸分析模型
-
防止远程下载循环
-
动态的concurrency_count以获得理想的Gradio性能
-
为Gradio打补丁以加速预览和流渲染
-
修复音频到图片的预览问题
-
同时运行多个人脸检测器
-
在低置信度下防止68至5标记点的转换
-
添加高性能的scrfd人脸检测模型
-
优雅地开始和停止处理
-
迁移到ONNX支持的帧增强器
-
引入--face-landmarker-score参数
-
在使用多个UI布局时渲染标签页
-
引入--output-image-resolution参数
-
添加更多人脸调试项并优化其颜色主题
-
当启用--log-level debug时打印内部统计信息
-
一旦启用唇部同步器,保持视频全程的唇部覆盖
-
添加对h264_amf和hevc_amf视频编码器的支持
-
限制临时资源的分辨率提升和fps增强
-
更改--output-path行为和规范化
-
移除--temp-frame-quality参数
-
修复使用非均匀像素目标时出现的绿线问题
-
修复使用--trim-frame-start时唇部同步器预览的问题
-
修复Geforce GTX 16系列的空白输出问题
另外,我在源版基础上做了如下修改:
-
破除了NSFW限制
-
修复模型加载时的一些问题
-
添加自动打开浏览器功能
-
模型全部做了本地化处理
-
修改了主题色
-
界面和提示信息全面汉化
-
实时换脸
又在原来的修改基础上做了如下更新:
-
修复模型加载的问题
-
优化启动速度
-
重新制作了运行环境
-
彻底离线运行
下面就几个重点修改,做一下记录。
模型加载问题
由于在线模型更新了,老版本会自动下载最新模型,但是由于某些问题,下载后的模型会无法使用。
具体错误提示如下:
onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from I:\Run\tonyhub-facefusion-NV-CN-v3.2.2\tonyhub\code.assets\models\inswapper_128_fp16.onnx failed:Protobuf parsing failed.
新版本已经不需要担心这个问题,已经放置最新可用模型!
优化启动速度&彻底离线运行
原先的逻辑是先去在线检测模型,如果有变化就更新,如果无变化就加载本地模型。但是如果本地无法访问模型所在网址,就会导致异常了。
之前其实已经考虑到这个问题,为了解决异常的问题,加了异常捕捉,延迟等待。
但是这种方案会导致启动过程等待时间较长(能访问github不会有这种现象)
为了彻底解决这个问题,我已经修改了代码逻辑。现在可以完全离线运行,快速启动了。
重新制作了运行环境
早期的版本更新只要更新源代码即可,但是最近两个版本更新之后,就会出现如下错误。
[E:onnxruntime:Default, provider_bridge_ort.cc:1548 onnxruntime::TryGetProviderInfo_CUDA] D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1209 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "D:\tonyhub-facefusion-NV-CN-v3.4.1\tonyhub\env\lib\site-packages\onnxruntime\capi\onnxruntime_providers_cuda.dll"
提示加载dll错误,如果去检查这个路径,可以发现这个文件存在且没有任何问题。
但是它就是报错。这个问题卡了我好几天。
还有一个奇怪的现象是,我常用电脑上不会报这个错误。但是拷贝到其他电脑都会出现这个错误。
在其他电脑上,老版本不会报错。但是更新代码就会出现错误。
尝试了,更新驱动,更新ONNX版本都无解。
但是看了半天,也看不出什么代码导致了这个问题。
后来只能全部推倒,按官方提供的安装程序和安装提示重新制作了运行环境。
最后终于成功解决了这个问题。
最后总结一下,这个问题是由于CUDA相关的依赖文件的路径发生了变化而产生的。
两个版本的软件已经全部上传到网盘。第一次接触这个软件的人,可以参考公众号上相关的历史文章,快速上手。
获取方式:
给公众号发送facefu获取软件
知识星球用户,直接在星球获取。