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.pth
、parsing_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
自分でディレクトリに移動します。