Roop ビデオに基づいた顔の交換

Roop は強力なワンクリックの顔交換ツールで、ユーザーはビデオ内の顔を交換できます。必要なのはターゲットの顔の写真だけで、データセットやトレーニングは必要ありません。

以前のSimswapと比較すると、効果ははるかに優れていますが、許可なく商業的に使用しないでください。

環境構築

仮想環境を作成します。

conda create -n myenv python=3.10.6

プロジェクトのクローン。

git clone https://github.com/s0md3v/roop.git

仮想環境をアクティブにして依存関係をインストールし、グラフィックス カードの依存関係のインストールを補足します。

pip install -r requirements.txt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

プロジェクトに入ったらコマンドを実行して起動します。

python run.py

このとき、各種モデルが自動的にダウンロードされますが、モデルがダウンロードできない問題については、最後のエラー回答セクションを参照してください。

ここに画像の説明を挿入

説明書

基本機能

コマンドを開始すると、次の操作インターフェイスが表示されます。
ここに画像の説明を挿入

ここで彼らの役割について説明します

  • 顔を選択 置き換える顔写真を選択します
  • select targeten 置き換えるビデオを選択します
  • 主要なターゲット fps は、置き換えられたビデオと同じフレーム レートを維持します
  • 一時フレームを保持する 置換処理中の画像を保持するかどうか
  • ターゲットオーディオをスキップ オーディオをスキップするかどうか (通常は使用されません)
  • 多面 複数の面があるかどうか (通常は使用されません)

[プレビュー] ボタンをクリックすると、プレビュー インターフェイスがポップアップ表示され、デフォルトでは、ビデオに最初に登場する人物の顔が置き換えのためにキャプチャされます。
ここに画像の説明を挿入
ビデオ プレビューの進行状況バーを置換したい顔セグメントに移動し、矢印キーまたは を使用して置換することもできます。以前ロックされていた華蔡ですが、今は梁蔡です。
ここに画像の説明を挿入
ここに画像の説明を挿入
置換する文字を選択し、開始をクリックするだけで、ビデオ メモリの使用量とデータ フレームの生成を確認できます。

ここに画像の説明を挿入
最後に、顔を変更した後の合成ビデオである temp.mp4 ファイルがフォルダ ディレクトリに生成されますが、ビデオには音声がなく、変更された画面の顔はまだぼやけていることがわかります。開始前にパスに保存されます。
ここに画像の説明を挿入

一般的に使用される製造方法

ビデオの処理には CPU のみを使用します。

python run.py

GPU を使用してビデオを処理します。

python run.py --execution-provider cuda  

画像はjpg形式で保存されます。

python run.py --execution-provider cuda --temp-frame-format jpg

ビデオの高解像度処理。

python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer 

顔のバウンスフラッシュを処理します。

python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer --similar-face-distance 1.5

指定されたフレームは顔を認識して置換し、指定された数のフレームを見つけます。顔の位置は右から左に指定され、0 から数えられます。

python run.py --execution-provider cuda  --reference-face-position 3  --reference-frame-number 166 --similar-face-distance 1.5

画面プレビュー

過剰解像度後の画面プレビュー。
ここに画像の説明を挿入

間違った答え

質問urllib.error.HTTPError: HTTP Error 401: Unauthorized

ここに画像の説明を挿入

ファイルをダウンロードするinswapper_128.onnx'権限がない、つまり青い部分のURLにアクセスする権限がないことが原因です。inswapper_128.onnx自分でファイルを探してダウンロードしてプロジェクトディレクトリに保存する方法ですmodels
ここに画像の説明を挿入

質問http.client.RemoteDisconnected: Remote end closed connection without response
ここに画像の説明を挿入
ここに画像の説明を挿入

ダウンロードする権限がないためGFPGANv1.4.pth、いくつかのインターネット方法を使用してダウンロードするか、他のプロジェクトを直接使用してコピーすることを試みることができます。正常にダウンロードできれば、自動的にプロジェクトmodelsフォルダーにモデルがダウンロードされます。

同時に、考えられる問題モデルもありdetection_Resnet50_Final.pthparsing_parsenet.pth処理方法は同じであり、上記のモデルはすべて画像の超解像に使用されます。

ここに画像の説明を挿入

質問Could not locate zlibwapi.dll. Please make sure it is in your library path!

それは、cuda にいくつかの依存ファイルが不足しているためです。
ここに画像の説明を挿入
自分で Baidu 検索を実行するzlibwapi.dllと、圧縮パッケージが取得され、ファイルをNVIDIA GPU Computing Toolkit\CUDA自分でディレクトリに移動します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_20288327/article/details/132376058