「ディープフェイク動画を作成してみたい」
「顔交換を自分のPCで行いたい」
このような場合には、roopがオススメです。
この記事では、roopについて解説しています。
本記事の内容
- roopとは?
- roopのシステム要件
- roopのインストール
- roopの動作確認
それでは、上記に沿って解説していきます。
roopとは?
roopとは、一つの顔写真からビデオ内の顔を置き換えることができるソフトウェアです。
ディープフェイクのソフトウェアと言えば、わかりやすいかもしれません。
例えば、次のような親子の動画があるとします。
この動画と次の画像をroopに放り込んでみます。
その結果、次のような動画が作成されます。
GPUのパワーにもよりますが、30秒もかからずに上記の動画を生成できています。
また、roopを動かすために、データセットやトレーニングは不要です。
ただし、インストールには技術的スキルが必要と公式ページには記載されています。
確かに、決して簡単とは言えないかもしれません。
ただ、Stable Diffusionをローカルで動かせるぐらいであれば大丈夫でしょう。
もっと言うと、GPU版のPyTorchをローカルPCにインストールできる人なら問題ありません。
roopのシステム要件
OSは、以下に対応しています。
- Linux
- MacOS
- Windows
ここでは、Windowsに絞って説明します。
- Python 3.10
- FFmpeg
- Visual Studio
- CUDA 11.8
それぞれを以下で説明します。
Python 3.10
公式ページで、Python 3.10と指定されています。
そのため、素直に従います。
バージョンを指定してPythonをインストールする方法は、以下で説明しています。
FFmpeg
WindowsへのFFmpegのインストールは、次の記事で説明しています。
以下のコマンドがどこからでも実行できれば、OKと言えます。
ffmpeg -version
Visual Studio
Visual Studioが必要と言うより、C/C++ コンパイラである「cl」コマンドが動く必要があるのです。
以下のように動けば、OK。
> cl Microsoft(R) C/C++ Optimizing Compiler Version 19.29.30151 for x86 Copyright (C) Microsoft Corporation. All rights reserved. 使い方: cl [ オプション... ] ファイル名... [ /link リンク オプション... ]
詳細は、次の記事で説明しています。
CUDA 11.8
GPU版のPyTorchのインストールでは、CUDAが必須です。
そして、今回はバージョンが指定されています。
CUDA 11.8をインストールしておきましょう。
CUDAのインストールについては、次の記事内で説明しています。
ここまで準備するには、そこそこのスキルが必要となるかもしれません。
でも、ディープフェイクが可能なソフトウェアの中ではまだインストールが簡単な部類と言えます。
roopのインストール
roopのインストールを説明します。
roopは、Python仮想環境へのインストールがオススメです。
準備ができたら、gitからプロジェクトをダウンロードしましょう。
git clone https://github.com/s0md3v/roop cd roop
そして、リポジトリルートに移動しておきます。
システム要件が整っているなら、次のコマンドで一気にインストールを行います。
pip install -r requirements.txt
処理が終了したら、とりあえずroopのインストールは完了です。
ここでは、さらにインストールの処理を続けます。
CPUとGPUのパワーをフルに活かすために、高速化を実施します。
CUDA 11.8であれば、次のコマンドを流すだけです。
pip uninstall onnxruntime onnxruntime-gpu pip install onnxruntime-gpu==1.15.1
これでroopの高速化が完了しました。
roopの動作確認
roopの起動は、次のコマンドで行います。
python run.py --execution-provider cuda
これにより、高速モードでroopが起動します。
roopには、GUIツールが用意されています。
説明は不要だと思います。
しかし、1点注意点があります。
選択する画像や動画が、日本語のディレクトリに保存されている場合は以下のようなエラーが出ます。
AttributeError: 'NoneType' object has no attribute 'shape'
そのため、画像や動画の保存先には注意しましょう。
また、処理実行時(Startボタンクリック時)に以下のエラーが出ることがあるかもしれません。
(私の環境では出ました)
Could not locate zlibwapi.dll. Please make sure it is in your library path
これが出た場合は、以下の記事の対応方法を実行しましょう。
zlib.dllをCUDA 11.8の「bin」にコピーして、名称をzlibwapi.dllに変更するという対応になります。
追記 2023年12月26日
Ropeは、roopによる顔部分の低画質化を解消することができます。