AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!

托尼不是塔克發表於2024-04-16
好久不見!
閒話不多說,今天主要是通知一下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限制
  • 修復模型載入時的一些問題
  • 新增自動開啟瀏覽器功能
  • 模型全部做了本地化處理
  • 修改了主題色
  • 介面和提示資訊全面漢化
  • 實時換臉
又在原來的修改基礎上做了如下更新:
  • 修復模型載入的問題
  • 最佳化啟動速度
  • 重新制作了執行環境
  • 徹底離線執行
下面就幾個重點修改,做一下記錄。
模型載入問題
由於線上模型更新了,老版本會自動下載最新模型,但是由於某些問題,下載後的模型會無法使用。
具體錯誤提示如下:
AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!
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不會有這種現象)
為了徹底解決這個問題,我已經修改了程式碼邏輯。現在可以完全離線執行,快速啟動了。
重新制作了執行環境
早期的版本更新只要更新原始碼即可,但是最近兩個版本更新之後,就會出現如下錯誤。
AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!
[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相關的依賴檔案的路徑發生了變化而產生的。
AI換臉:FaceFusion 3.5.0更新,解決老版本無法使用問題!
兩個版本的軟體已經全部上傳到網盤。第一次接觸這個軟體的人,可以參考公眾號上相關的歷史文章,快速上手。
獲取方式:
給公眾號傳送facefu獲取軟體
知識星球使用者,直接在星球獲取。

相關文章