開発プロジェクトが中止された Roop ですが、ソースをコピーして改変を加えた、いわゆるフォーク版と呼ばれる派生アプリがいくつか登場しています。その一つが今回紹介する ReActor です。
元祖 Roop や nsfw-roop は見た目が同じでしたが、 ReActor は薄い緑の配色になっており、印象が明るくなりました。
Roop からの強化点は次の通りです。
- Face Enhancer(顔の高画質化)
- NSFW (Not Safe For Work)フィルター機能のON/OFF
- 静止画の顔入れ替え
本記事では、ReActorのインストール方法と簡単な使い方を紹介しています。試してみたい方は是非ご一読ください。
元祖Roop | 【失敗しない】PCでDeepFake!Roop のインストール方法&使い方(スクリーンショットで丁寧解説) |
---|---|
フォーク版 | 【失敗しない】PCでDeepFake!nsfw-roop のインストール方法&使い方(スクリーンショットで丁寧解説) |
DeepFakeアプリは他にもいろいろありますので、興味のある方は「【生成AI入門】ディープフェイクの作り方と有名アプリ一覧(パソコン編)」の記事も併せてご覧ください。
ReActorの公式サイト
ReActor の概要とソースコードは、Git上にある ReActor公式ページに掲載されています。本記事では、ここに記載されいている内容をできるだけわかりやすく解説したものになります。
https://github.com/Gourieff/ReActor-UI?tab=readme-ov-file
インストールの前提条件
ReActor のインストール方法として、元祖 Roop のインストール方法へのリンク(下記)が張られています。
基本的にReActor も Ropeと同じ手順でインストール可能ですが、Git CloneのURLが元祖Roopのものになっているので、そのまま実行すると元祖Roopがインストールされてしまうのでご注意ください。
https://github.com/s0md3v/roop/wiki/1.-Installation
Python/CUDAのバージョン
動作に必要な環境は次の通りです。(Roopや nsfw-roop と同じ)
必要な環境・ライブラリ | バージョンなど | 備考 |
---|---|---|
Python 環境 | Python 3.10 | |
Git 環境 | その時の最新版 | |
FFMPEG | その時の最新版 | 動画作成に使用 |
CUDA Toolkit | 11.8 | CPUで動かすならインストール不要 |
cuDNN | v8.9.7 | CPUで動かすならインストール不要 |
インストール手順の概要
次の手順でインストールを行います。Step1はRoopや nsfw-roopと全く同じです。既にインストール済みの場合はStep2から実行してください。
尚、ReActor初回起動時に必要なモデルファイルが自動でダウンロードされるので、個別にモデルファイルをダウンロードする必要はありません。
Step1 Python動作環境の構築 | ①Python 3.10の環境準備 ②Gitの環境準備 ③CUDA Toolkit 11.8のインストール ④cuDNN のインストール ⑤Microsoft Visual C++ 2015 再頒布可能パッケージのインストール ⑥Microsoft Visual Studio 2022 ビルド ツールのインストール ⑦FFMPEGのインストール |
---|---|
Step2 ReActorのインストール | GitからReActorをインストール |
Step3 GFPGANv1.4.pthのインストール | GFPGANv1.4.pth のダウンロードと所定フォルダへコピー ※但し、Face Enhancer 機能を使う場合のみ必要 |
インストール手順
Step1.Python動作環境の構築
「【最初の一歩】生成AI向けPython環境構築手順(スクリーンショットで解説)」の記載内容(①~⑦)を実行してください。
Step2.ReActorのインストール
コマンドプロンプトを開き、インストールしたい場所にフォルダを移動します。
続けて、以下のコマンドを入力、実行してください。
git clone https://github.com/Gourieff/ReActor-UI.git
cd reactor-ui
仮想環境でのインストールが推奨されているので、.reactor という名前で仮想環境を作成し、そこに必要なライブラリをインストールします。そのために、次のコマンドを実行してください。
python.exe -m venv .reactor
.reactor\Scripts\activate
.reactor\Scripts\pip.exe install -r .\requirements.txt
インストールした場所に ReActor-UIというフォルダが作成され、様々なモジュールやモデルファイルがダウンロードされます。完了までに十数分くらい掛かると思います。
処理が終わったら次のような画面になります。
ここで次のコマンドを実行します。これは ReActor がサポートしていないドライバのバージョンをアンインストールするコマンドです。
pip uninstall onnxruntime onnxruntime-gpu
Y/n ? を聞かれるので、そのままエンターキーを押してください。これでドライバが削除されます。
次に、ReActor が対応しているバージョンのドライバをインストールします。次のコマンドを実行してください。
pip install onnxruntime-gpu==1.15.1
Step3.GFPGANv1.4.pth のインストール
Hugging Face の下記リンクから、GFPGANv1.4.pth ファイルをダウンロードします。
https://huggingface.co/gmk123/GFPGAN/tree/main
ダウンロードしたGFPGANv1.4.pth ファイルを、下記の通り models フォルダにコピーします。
以上で ReActorのインストールは完了です。
ReActorの起動方法
コマンドプロンプトを開き、ReActorをインストールしたフォルダの直下に移動します。
次のコマンドを実行します。
cd reactor-ui
.reactor\Scripts\activate
python run.py --execution-provider cuda
起動すると次の画面が表示されます。
ReActorの使い方
使い方は非常にシンプルで、顔写真と置き換えたい動画を選択し、Startボタンをクリックし、出力先フォルダを指定するだけです。
注意点としては、Select target をクリックして表示される一覧には、最初は拡張子のフィルターが適用されていて画像ファイルしか表示されません。動画を選択する場合は、フィルターを動画に切り替えて下さい。
出力先フォルダを選択すると、静止画の場合は output.png、動画の場合はoutput.mp4が初期値になっています。必要に応じて任意の名前に書き換えてください。
実行中は画面に進捗状況がバーで表示されますが、表示内容はRoopと全く同じです。処理が完了すると「Processing to video succeed!」が表示され、顔が置き換わった動画(または静止画)が出力フォルダに出力されます。
Face Enhancerについて
Face EnhancerをONにすると、FACE-SWAPPER の処理が走った後で、FACE-ENHANCER の処理が走ります。
私のPCでは、FACE-SWAPPERは25.65 frame/s で処理されたのに対し、FACE-ENHANCERは 4.36 fmame/s とかなり時間が掛かりました。つまり、Face Enhancer を ON にすると、6倍の時間が掛かることになります。
とはいうものの、ONとOFF では顔の画像品質が全くことなります。全体的に顔が小さい場合はそれほど問題にならないかもしれませんが、アップになると歴然です。
静止画:FACE-ENHANCER ⇒ OFF
静止画:FACE-ENHANCER ⇒ ON
動画:FACE-ENHANCER ⇒ OFF
動画:FACE-ENHANCER ⇒ ON
起動時のオプション
nsfw-Roopにも、Roopと同様に run.py 実行時に指定できる引数(オプション)が多数存在しています。これを使うことで、複数の動画をバッチ処理で変換することも可能です。
プション | 説明 |
---|---|
-h, --help | このヘルプメッセージを表示して終了する |
-s SOURCE_PATH | ソース画像を選択するパス |
-t TARGET_PATH | ターゲット画像または動画を選択するパス |
-o OUTPUT_PATH | 出力ファイルまたはディレクトリを選択するパス |
--frame-processor FRAME_PROCESSOR | フレームプロセッサ(選択肢:face_swapper、face_enhancer、...) |
--keep-fps | ターゲットのFPSを保持する |
--keep-frames | 一時フレームを保持する |
--skip-audio | ターゲットのオーディオをスキップする |
--many-faces | すべての顔を処理する |
--video-encoder {libx264,libx265,libvpx-vp9} | 出力ビデオに使用されるエンコーダー |
--video-quality VIDEO_QUALITY | 出力ビデオの品質 |
--max-memory MAX_MEMORY | 最大RAM量(GB単位) |
--execution-provider {cpu} [{cpu} ...] | 利用可能な実行プロバイダ(選択肢:cpu、...) |
--execution-threads EXECUTION_THREADS | 実行スレッド数 |
-v, --version | プログラムのバージョン番号を表示して終了する |
まとめ
今回は ReActor についてインストール方法と使い方を紹介しました。
Roop の開発プロジェクトが昨年10月に中止されましたが、ReActoer は Roopのフォーク版として登場しました。
roop のシンプルな画面と操作はそのままに、次の3点が強化されています。
- Face Enhancer(顔の高画質化)
- NSFW (Not Safe For Work)フィルター機能のON/OFF
- 静止画の顔入れ替え
ReActor の今後のバージョンアップが楽しみです。
コメント