導入
Google Colab バージョン (ブラウザ内で無料のクラウド コンピューティング)
ローカルインストール
サポート
ベストプラクティス
シンプルなセットアップと実行 - ローカルおよび colab 経由。
前提条件を手動でダウンロードしてインストールする必要はありません
Google Colab で実行できるセルは 2 つだけです
Windows ユーザーの場合、インストール、更新、実行に必要なファイルは 1 つだけです。
以下に十分に文書化されたオプションがあります。
もう何が起こるか疑問に思う必要はありません。
Colab T4 を使用した 9 秒の 720p 60fps テスト クリップの場合:
オリジナルWav2Lip | Easy-Wav2Lip |
---|---|
実行時間: 6分53秒 | 実行時間: 56秒 |
それはタイプミスではありません!私のクリップはほぼ 7 分から 1 分未満になりました。
追跡データは同じビデオの世代間で保存されるため、さらに時間が節約されます。
同じビデオにもう一度 Easy-Wav2Lip |
---|
実行時間: 25秒 |
Easy-Wav2Lip は唇の視覚的なバグを修正します。
品質のための 3 つのオプション:
高速: Wav2Lip
改善: 顔の残りの部分を元の解像度に戻すために、口の周りに羽のマスクを付けた Wav2Lip
強化: Wav2Lip + マスク + GFPGAN アップスケーリングを顔に実行
https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb
要件: cuda 12.2 をサポートする Nvidia カード、または Apple シリコンまたは AMD GPU 経由で mps をサポートする MacOS デバイス
Easy-Wav2Lip.batをダウンロード
PC 上のフォルダー (例: ドキュメント内) に置きます。
それを実行し、指示に従います。実行したフォルダー内に 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 を閉じて再度開き、ステップ 1 と同じディレクトリに cd します。
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. ターミナルを閉じて再度開き、手順 1 と同じディレクトリに移動します。
4. 次のコードを貼り付けます。
source Easy-Wav2Lip-venv/bin/activate cd Easy-Wav2Lip ./run_loop.sh
すべてがインストールされると、config.ini というファイルがポップアップ表示されます。
ここにビデオおよびオーディオ ファイルへのパスを追加し、好みに合わせて設定を構成します。
プロのヒント:
Windows では、Shift キーを押しながら使用するファイルを右クリックし、「a」を押すか、「パスとしてコピー」をクリックすると、video_file または voice_file として貼り付けることができるパスが取得されます。
MacOS: ファイルを右クリックし、Option (Alt) キーを押したまま、コンテキスト メニューから「[ファイル名] をパス名としてコピー」を選択します。
config.ini を保存して閉じると、Wav2Lip プロセスが開始され、ファイルが video_path ファイルと同じディレクトリに保存されます。
config.ini が再び開き、入力と設定を変更できます。
開始方法のヒントについては、以下のベスト プラクティスを参照してください。
config.ini でまだ説明されていない設定の説明については、以下の「高度な調整」を参照してください。
もちろんオリジナルのWav2Lipです。
cog-Wav2Lip により、速度が大幅に向上し、基本品質が向上しました。
GFPGAN でアップスケールするコードは主に wav2lip-hq-updated-ESRGAN から来ています。
AI の支援なしではこれを行うことはできませんでした。これを作成する前、私は Python の経験がほとんどありませんでした。 LLM の選択: Bing Chat (現在は「Copilot」と呼ばれています)。
Wav2Lip_simplified colabs を作成してくれた JustinJohn に感謝します。このコラボは、私が独自のさらに単純なバージョンを作成するきっかけになりました。
これの実行に問題がある場合は、[問題] タブを参照して、誰かがそれについて書いているかどうかを確認してください。そうでない場合は、新しいスレッドを作成しますが、次の内容を必ず含めてください。
コラボの場合:
Easy-Wav2Lip colab のバージョン番号
使用されるファイルに関する情報。
ローカルにインストールする場合:
EasyWav2Lip.bat または手動インストール
オペレーティング システム (Windows 11、Linux など)
GPUモデル
GPUドライバーのバージョン
Pythonのバージョン
使用されているファイルに関する情報、および他のファイルが機能するかどうか
この情報がなければ、とにかく情報を求めることになるため、問題自体についての回答にはさらに時間がかかります。
おそらく、これらのいずれかが要件と異なる場合、それが動作しない理由であるため、colab バージョンをまだ使用していない場合は、それを使用する必要があるかもしれません。
これに関する一般的な雑談やその他の口パクの話については、私はこの Discord に参加します。
招待リンク: https://discord.gg/FNZR9ETwKY
Wav2Lip チャンネル: https://discord.com/channels/667279414681272320/1076077584330280991
最良の結果は、wav2lip を通じて送信する前に、スピーチを話し手の動作や表情に合わせて調整することによって得られます。
ビデオ ファイル:
すべてのフレームに顔が含まれている必要があります。そうでない場合、Wav2Lip は失敗します。
口パクしたくない顔をトリミングまたはマスクアウトすると、ランダムに選択されます。
h264 .mp4 を使用します。他のファイル タイプもサポートされている可能性がありますが、出力されるのは次のとおりです。
画像は現在テストされていません。
あらゆる方法で小さなファイルを使用してください (720p 未満、30 秒未満、30fps などを試してください。より大きなファイルは機能する可能性がありますが、通常はそれが失敗の原因です)
最初の試行では、プロセスに慣れるためだけに非常に小さなクリップを使用します。慣れてきたら、より大きなファイルで動作するかどうかを試してください。
音声ファイル:
入力ビデオと同じ長さの .wav として保存します。
注: 処理されたビデオ/オーディオから約 80 ミリ秒がカットされていることに気付きましたが、これを修正する方法がわかりません。そのため、実際に必要な量よりも少し余裕があることを確認してください。
これをビデオ ファイルにエンコードして、vocaical_path を空白のままにすることもできますが、ビデオからオーディオを分割するため、処理時間が数秒追加されます。
または
音声ファイルを個別に選択してください
どのファイルタイプがサポートされているかはわかりませんが、少なくとも .wav と .mp3 は機能します。
オプション | 長所 | 短所 |
---|---|---|
Wav2Lip | + より正確なリップシンク + 音がないときに口を閉じたままにしようとする | - 歯が欠けることもあります (まれです) |
Wav2Lip_GAN | +見た目も良くなりました + 話者の本来の表現をより残す | - 特に音がない場合、元の唇の動きを隠すのがあまり得意ではありません。 |
最初に Wav2Lip を試して、スピーカーの歯に大きな隙間があるように見える効果を経験した場合は、GAN バージョンに切り替えることをお勧めします。
有効にすると、wav2lip は各フレームの顔を個別にトリミングします。
ビデオの速い動きやカットに適しています。
顔が変な角度にあるとけいれんを引き起こす可能性があります。
無効にすると、wav2lip は 5 つのフレーム間で検出された顔の位置をブレンドします。
ゆっくりとした動き、特に珍しい角度の顔に適しています。
顔がフレーム内で素早く移動すると、口がオフセットされる可能性があり、カット間でひどい見た目になります。
このオプションは、各方向で顔のトリミングに追加または削除されるピクセル数を制御します。
価値 | 例 | 効果 |
---|---|---|
U | U = -5 | 顔の上から 5 ピクセルを削除します |
D | D = 10 | 顔の下に 10 ピクセルを追加します |
L | L = 0 | 顔の左側は変化なし |
R | R = 15 | 顔の右側に 15 ピクセルを追加します |
パディングは顎や顔の他の端にある硬い線を取り除くのに役立ちますが、パディングが多すぎたり少なすぎたりすると、口の大きさや位置が変化する可能性があります。下部に 10 ピクセルを追加するのが一般的ですが、クリップに最適なバランスを見つけるには、さまざまな値を試してください。
このオプションは、処理された面を元の面とブレンドする方法を制御します。これは、「高速」品質オプションには影響しません。
サイズを指定すると、マスクがカバーする領域のサイズが増加します。
フェザリングは、マスクの中心とエッジの間のブレンドの量を決定します。
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 は含まれません。output_height がフル解像度に設定されている場合、解像度は含まれません
処理前に入力ビデオ/オーディオを表示するので、正しいファイルを選択したかどうかを確認できます。 .mp4 でのみ動作する可能性があります。私が試した .avi では動作しなかったことを知っています。これを無効にすると、各ビデオの処理時間を数秒節約できます。
これにより、ビデオの 1 フレームのみがレンダリングされ、フル サイズで表示されます。これにより、毎回ビデオ全体をレンダリングしなくても設定を微調整できます。 Frame_to_preview は、チェックアウトしたい特定のフレームを選択するためのものです。実際のフレームに対して完全に正確ではない可能性があります。