好久不见!
闲话不多说,今天主要是通知一下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相关的依赖文件的路径发生了变化而产生的。
出自:https://mp.weixin.qq.com/s/JlppHWnAlh3ZnMk_K1yeZw