今回はWindows のNvidia 搭載環境でのroop-unleashedを使ってディープフェイク動画をつく方法を環境構築から説明していこうと思います。
非常に良くできたディープフェイク動画が作れるので、悪用厳禁でお願いいたします。
基本環境
私が使った環境は以下です。
まず、大きな環境として以下が必要になります。
簡単に説明すると、Python は3.12とかの高いバージョンだとパッケージで互換性がないので、3.9であれば問題ありません。
CUDAとcuDNNは互換性のあるバージョンがCUDAの12系で組み合わせで上記は問題なく作動しました。
一応公式の推奨環境はこちらに記載があります。
Installation · C0untFloyd/roop-unleashed Wiki · GitHub
公式だとCUDAのバージョン12.6って書いてありましたけど11.8でも動作は問題ありませんでした。
(はじめFolk元のリポジトリ の環境で進めていたので、こうなっています。)
Dockerファイルもあるので、そちらでも対応できますが、GPU 周りは自分で設定をしないといけないので、今回はWindows 環境に直接入れました。
https://github.com/C0untFloyd/roop-unleashed/blob/main/Dockerfile
Python3.9は普通にWindows Storeから入れて大丈夫です。
他のVersionのPython が入っていても指定できるので大丈夫です。
コマンドプロンプト かPowershell から
Python3.9 --version
で3.9系のバージョンが表示されれば大丈夫です。
公式のDockerに従うなら3.11を入れていいと思います。
(3.12はダメでした。)
CUDA
CUDAは公式だと12.6系です。
私は11.8系入れてしましましたが動作したので、すでに環境があるようであれば流用、なければ最新の12.6系入れていいと思います。
(cuDNNとの組み合わせ互換性に注意してください。)
以下がインストーラ ーの場所です。
CUDA Toolkit Archive | NVIDIA Developer
インストーラ ーがPATH設定までやってくれます。
nvcc --version
でインストールしたバージョンが表示されれば問題ありません。
cuDNN
cuDNNはCUDAと互換性のあるバージョンを選んでください。
以下は互換表になります。
Support Matrix — NVIDIA cuDNN
ダウンロードは以下から行います。
cuDNN Archive | NVIDIA Developer
ZIPをダウンロードしたら、
以下にlib, include, binのディレクト リを中身ごとコピーします。
C:\Program Files\NVIDIA \CUDNN\v8.9\
(バージョンのフォルダ名はバージョンに合わせてください。ここの場合はv8.9)
そしたら、次に追加したbinディレクト リをPATHに追加します。
特に正しくPATHが通っているかはDLLへのパスなので確認できないと思います。
公式のインストール方法はこちら
Installing cuDNN on Windows — NVIDIA cuDNN
次はffmpeg のインストールです。
特にバージョンの指定はありません。
(エンコード や切り出し等の簡単なビデオ処理に使用しているだけだと思います。)
ダウンロードは以下から行います。
Download FFmpeg
ダウンロードしたらbinフォルダを任意の場所に置いて、PATHを通します。
私はUbuntu 流にC://opt/ffmpeg 配下に置いています。
コマンドプロンプト やパワーシェル上で
ffmpeg
と打ってバージョンやヘルプが表示されたら問題なくインストールされています。
以上で基本環境のセットアップは完了です。
Python の仮想環境セットアップとパッケージインストール
次にPython の仮想環境をセットアップしていきます。
まず、今更ですがroop-unleashedのリポジトリ をクローンしてきます。
git clone https://github.com/C0untFloyd/roop-unleashed.git
git苦手な方はとりあえずダウンロードでも大丈夫です。
Python 仮想環境venvのセットアップ
そしたらroop-unleashedのディレクト リに入ってすぐのプロジェクトルートでコマンドプロンプト かPowerShell 上で以下のコマンドを打ちます。
python3.9 -m venv venv
これでvenvというフォルダが作成されて仮想環境ができます。
仮想環境を起動するために以下のコマンドを打ちます。
venv/Scripts/Activate.ps1
コマンドプロンプト の場合はActivate.batの方ですね。
もしかしたらPowerShell の権限がデフォルト設定のままだとエラーが出るかもしれませんが、ググればすぐ解決法が出ると思います。
仮想環境に無事には入れればコマンド上に(venv)が付いています。
ここでpython --version で確実に意図したバージョンになっているか確認すると次の工程でミスしずらいです。
Python 依存パッケージのインストール
次に仮想環境上で依存パッケージをインストールします。
プロジェクトルートで以下のコマンドでインストールします。
python -m pip install -r requirements.txt
多少時間はかかりますが、待つだけです。
インストールが完了すれば準備完了です。
実行
次に実行をしていきます。
実行にはプロジェクトルートで以下のコマンドで実行します。
python run.py
実行すると、勝手にブラウザが立ち上がってアプリが起動します。
起動時のターミナル上に載っているNvidia 系のGPU が表示されていればGPU の使用も問題ないかと思います。
自動で起動しない場合はlocal URLのところに記載されているアドレスをブラウザ上でアクセスすれば起動すると思います。
起動すると以下のような画面になります。
この画面の以下のSourceFaceに入れ替えた先の顔(写真)を入れます。
Target Fileに入れ替えたい元の動画・画像を入れます。
今回はYouTuberのぐんぴぃさんの画像を入れ替える先の顔、Hikakinの動画を元動画として入力しました。
動画の方は100フレームちょっとまでしか処理できないので長い動画は処理できません。
やり方はなにかあると思うのですが、まだ調べていません。
以下のような表示になります。
デフォルトの設定では最初の顔を入れ替え対象にしますが、細かく設定することも可能です。
今回は説明は省略します。
Preview 画面のFaceSwapのチェックを入れると処理時間はかかりますが、どんな感じに顔を入れ替えるか確認することができます。
大分雰囲気が出ていますね。
動画として出力するには更に下の方にあるStartを押すと動画の顔入れ替えが始まります。
途中経過はターミナル上に表示されます。
私の環境だと1,2秒で1フレームの処理が行われています。
完了すると、Processed Fileのところからダウンロードができます。
結果
結果をこちらに載せています。
VIDEO youtu.be
元動画:
https://www.youtube.com/watch?v=7VUaw8ooqBY
元画像:
バキ童チャンネル【ぐんぴぃ】 - YouTube
画像1枚からなかなかのクオリティの高い動画が作れてしまいます。
以上roop-unleasehdの使い方でした。
以下、広告
ディープフェイク ニセ情報の拡散者たち