介紹
Google Colab 版本(瀏覽器內免費雲端運算)
本地安裝
支援
最佳實踐
簡單的設定和執行 - 本地和透過 colab。
無需手動下載和安裝先決條件
Google Colab 只有 2 個單元需要執行
Windows 使用者只需一個檔案即可安裝、更新和運行。
下面有詳細記錄的選項。
不再想知道什麼有什麼作用!
對於我透過 Colab T4 進行的 9 秒 720p 60fps 測試剪輯:
原創 Wav2Lip | Easy-Wav2Lip |
---|---|
執行時間:6m 53s | 執行時間:56s |
這不是一個錯字!我的剪輯從近 7 分鐘縮短到不到 1 分鐘!
追蹤資料在同一影片的各代之間保存,從而節省更多時間:
Easy-Wav2Lip 再次出現在同一個影片上 |
---|
執行時間:25s |
Easy-Wav2Lip 修復了嘴唇上的視覺錯誤:
3 個品質選項:
快速:Wav2Lip
改進:Wav2Lip 在嘴部周圍帶有羽毛遮罩,以恢復臉部其餘部分的原始分辨率
增強:Wav2Lip + mask + GFPGAN 在臉部進行升級
https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb
需求:支援 cuda 12.2 的 Nvidia 卡或透過 Apple Silicon 或 AMD GPU 支援 mps 的 MacOS 設備
下載 Easy-Wav2Lip.bat
將其放在電腦上的資料夾中(例如:在文件中)
運行它並按照說明進行操作。它將在您運行它的任何資料夾中建立一個名為 Easy-Wav2Lip 的資料夾。
每當您想使用 Easy-Wav2Lip 時執行此文件
這應該處理所有必需組件的安裝。
確保以下內容已安裝並且可透過您的終端存取:
Python 3.10(我只測試了3.10.11 - 其他版本可能無法運作!)
git
Windows 和 Linux:Cuda(只要有最新的 Nvidia 驅動程式就可以做到這一點,我只測試了 12.2)
導航至要安裝 Easy-Wav2Lip 的資料夾後,請在終端機中執行以下命令:
設定 venv,在其中安裝 ffmpeg,然後安裝 Easy-Wav2Lip:
開啟 cmd 並使用 cd EG 導航到要安裝 EasyWav2Lip 的資料夾: cd Documents
將以下程式碼複製並貼上到您的 cmd 視窗中: 注意:此位置將建立 2 個資料夾:Easy-Wav2Lip 和 Easy-Wav2Lip-venv(獨立的 Python 安裝)
py -3.10 -m venv Easy-Wav2Lip-venv Easy-Wav2Lip-venvScriptsactivate python -m pip install --upgrade pip python -m pip install requests set url=https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip python -c "import requests; r = requests.get('%url%', stream=True); open('ffmpeg.zip', 'wb').write(r.content)" powershell -Command "Expand-Archive -Path .\ffmpeg.zip -DestinationPath .\" xcopy /e /i /y "ffmpeg-master-latest-win64-gplbin*" .Easy-Wav2Lip-venvScripts del ffmpeg.zip rmdir /s /q ffmpeg-master-latest-win64-gpl git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
現在運行 Easy-Wav2Lip:
3. 關閉並重新開啟 cmd,然後 cd 到與步驟 1 相同的目錄。
4.貼上以下程式碼:
Easy-Wav2Lip-venvScriptsactivate cd Easy-Wav2Lip call run_loop.bat
請參閱用法以取得更多說明。
設定 venv,在其中安裝 ffmpeg,然後安裝 Easy-Wav2Lip:
開啟終端並使用 cd EG 導航到要安裝 Easy0Wav2Kip 的資料夾: cd ~/Documents
將以下程式碼複製並貼上到終端視窗中: 注意:此位置將建立 2 個資料夾:Easy-Wav2Lip 和 Easy-Wav2Lip-venv(獨立的 Python 安裝)
python3.10 -m venv Easy-Wav2Lip-venv source EW2Lvenv/bin/activate python -m pip install --upgrade pip python -m pip install requests for file in ffmpeg ffprobe ffplay; do curl -O "https://evermeet.cx/ffmpeg/${file}-6.1.1.zip" unzip "${file}-6.1.1.zip" done mv -f ffmpeg ffprobe ffplay /Easy-Wav2Lip-venv/bin/ rm -f ffmpeg-6.1.1.zip ffprobe-6.1.1.zip ffplay-6.1.1.zip source EW2Lvenv/bin/activate git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
現在運行 Easy-Wav2Lip:
3. 關閉並重新開啟終端,然後 cd 到與步驟 1 相同的目錄。
4.貼上以下程式碼:
source Easy-Wav2Lip-venv/bin/activate cd Easy-Wav2Lip ./run_loop.sh
安裝完所有內容後,應該會彈出一個名為 config.ini 的檔案。
在此處新增視訊和音訊檔案的路徑並根據您的喜好配置設定。
專業提示:
在 Windows 上,右鍵單擊要使用的檔案時按住 Shift 鍵,然後按“a”或按一下“複製為路徑”,即可取得可貼上為 video_file 或vocal_file 的路徑。
MacOS:右鍵點選文件,按住 Option (Alt) 鍵,然後從上下文選單中選擇「將 [檔案名稱] 複製為路徑名稱」。
儲存 config.ini 並關閉它,這將啟動 Wav2Lip 進程,並且您的檔案將保存在與 video_path 檔案相同的目錄中。
config.ini 將再次打開,您可以變更輸入和設定。
有關如何開始的提示,請參閱下面的最佳實踐。
請參閱下面的進階調整,以了解 config.ini 中尚未解釋的設定的說明
當然是原始的 Wav2Lip。
速度的巨大提升和基礎品質的改善來自於 cog-Wav2Lip。
使用 GFPGAN 進行升級的程式碼主要來自 wav2lip-hq-updated-ESRGAN。
如果沒有人工智慧的幫助,我不可能做到這一點;在做這個之前,我的Python經驗非常少!選擇的法學碩士: Bing Chat (現在稱為“Copilot”)。
感謝 JustinJohn 製作了 Wav2Lip_simplified colabs,啟發了我製作自己的、甚至更簡單的版本。
如果您在執行此程式時遇到問題,請查看問題選項卡,看看是否有人寫過相關文章。如果沒有,請建立一個新線程,但請確保包含以下內容:
如果合作:
Easy-Wav2Lip colab 版本號
有關所使用文件的資訊。
如果本地安裝:
EasyWav2Lip.bat 或手動安裝
作業系統(Windows 11、Linux等)
GPU型號
GPU驅動程式版本
Python版本
有關使用的文件以及其他文件是否有效的信息
如果沒有這些訊息,我無論如何都會要求它,因此有關問題本身的回應將需要更長的時間。
很可能,如果其中任何一個與要求不同,那麼這就是它不起作用的原因,你可能只需要使用 colab 版本(如果還沒有的話)。
對於關於此問題和任何其他口型同步談話的一般閒聊,我將陷入這種不和諧之中:
邀請連結:https://discord.gg/FNZR9ETwKY
Wav2Lip頻道:https://discord.com/channels/667279414681272320/1076077584330280991
最好的結果來自於在透過 wav2lip 發送語音之前將語音與說話者的動作和表情對齊!
影片檔:
所有幀中必須有一張臉,否則 Wav2Lip 將失敗
裁切或遮蓋您不想口型同步的臉孔,否則它會隨機選擇。
使用 h264 .mp4 - 可能支援其他檔案類型,但這就是它的輸出
圖像目前未經測試。
以各種方式使用小檔案(嘗試 <720p、<30 秒、30fps 等 - 較大的檔案可能有效,但通常是失敗的原因)
對於您的第一次嘗試,請使用一個非常小的剪輯來習慣這個過程,只有當您熟悉後才應該嘗試更大的文件以查看它們是否有效。
音訊檔案:
儲存為 .wav,長度與輸入影片相同。
注意:我注意到處理後的視訊/音訊被削減了大約 80 毫秒,我不知道如何解決這個問題,所以請確保您有比實際需要的多一點的時間!
您可以將其編碼到視訊檔案中並將vocal_path留空,但這會增加處理時間幾秒鐘,因為它將音訊從視訊中分離出來
或者
單獨選擇您的音訊文件
我不確定支援哪些文件類型,至少 .wav 和 .mp3 可以。
選項 | 優點 | 缺點 |
---|---|---|
聲音2唇 | + 更準確的口型同步 + 沒有聲音時嘗試閉上嘴 | - 有時會產生缺牙(罕見) |
Wav2Lip_GAN | + 看起來更好 + 更保留說話者原有的表情 | - 不太擅長掩蓋原始的嘴唇動作,尤其是在沒有聲音的情況下 |
我建議先嘗試 Wav2Lip,如果您遇到揚聲器牙齒上有很大縫隙的效果,請切換到 GAN 版本。
啟用後,wav2lip 將獨立裁剪每個畫面上的臉部。
適合影片中的快速移動或剪切。
如果臉部處於奇怪的角度,可能會導致抽搐。
停用時,wav2lip 將在 5 幀之間混合偵測到的臉部位置。
適合緩慢運動,特別是對於角度不尋常的臉部。
當臉部在畫面內快速移動時,嘴巴可能會偏移,在剪輯之間看起來很糟糕。
此選項控制在每個方向上從臉部裁剪中新增或刪除的像素數量。
價值 | 例子 | 影響 |
---|---|---|
U | U = -5 | 從臉部頂部移除 5 個像素 |
D | d = 10 | 在臉部底部加入 10 個像素 |
L | L = 0 | 左邊臉沒有變化 |
右 | R = 15 | 在臉部右側新增 15 個像素 |
填充物可以幫助消除下巴或臉部其他邊緣處的硬紋,但填充物過多或過少都會改變嘴巴的大小或位置。通常的做法是在底部添加 10 個像素,但您應該嘗試不同的值來找到剪輯的最佳平衡。
此選項控制處理後的面與原始面的混合方式。這對“快速”品質選項沒有影響。
size將增加遮罩覆蓋區域的大小。
羽化決定蒙版中心和邊緣之間的混合量。
mouth_tracking會將蒙版的位置更新為每個畫面上嘴部的位置(較慢)
注意:由於框架被裁剪到臉部,嘴的位置已經很接近,僅當您發現蒙版似乎不跟隨嘴的視頻時才啟用此功能。
debug_mask將使背景灰度化,蒙版變為彩色,以便您可以輕鬆地看到蒙版在幀中的位置。
此選項可讓您自動處理多個視訊和/或音訊檔案。
以末尾的數字命名您的文件,例如。 Video1.mp4、Video2.mp4等並將它們全部放在同一個資料夾中。
文件將從您選擇的文件開始按數字順序進行處理。例如,如果您選擇Video3.mp4,它將處理Video3.mp4、Video4.mp4等。
如果您選擇編號的視訊檔案和非編號的音訊文件,它將使用相同的音訊檔案處理每個視訊。對於使不同的圖像/視頻說出相同的台詞很有用。
同樣,如果您選擇非編號視訊檔案和編號音訊文件,則每個音訊檔案都會使用相同的視訊。對於使相同的圖像/視訊表達不同的內容很有用。
這會為您的輸出檔案添加後綴,以便它們不會覆蓋您的原始檔案。
添加使用的設置 - 適合比較不同的設置,因為您將知道每個渲染使用的設置。將會新增:Qualty_resolution_nosmooth_pads-UDLR EG:_Enhanced_720_nosmooth1_pads-U15D10L-15R30 如果將其設為 0,則不會包含 pads_UDLR。
在處理之前顯示輸入視頻/音頻,以便您可以檢查以確保選擇了正確的文件。它可能只適用於 .mp4,我只知道它不適用於我嘗試過的 .avi。停用此功能將為每個影片節省幾秒鐘的處理時間。
這將僅渲染影片的 1 幀並以全尺寸顯示,這樣您就可以調整設置,而不必每次都渲染整個影片。 frame_to_preview 用於選擇您想要查看的特定幀 - 可能不完全準確於實際幀。