roopによる簡単ディープフェイク(顔交換・顔入れ替え)

roopによる簡単ディープフェイク(顔交換・顔入れ替え) ツール

「ディープフェイク動画を作成してみたい」
「顔交換を自分のPCで行いたい」

このような場合には、roopがオススメです。
この記事では、roopについて解説しています。

本記事の内容

  • roopとは?
  • roopのシステム要件
  • roopのインストール
  • roopの動作確認

それでは、上記に沿って解説していきます。

roopとは?

roopとは、一つの顔写真からビデオ内の顔を置き換えることができるソフトウェアです。
ディープフェイクのソフトウェアと言えば、わかりやすいかもしれません。

例えば、次のような親子の動画があるとします。

https://www.pexels.com/ja-jp/video/3197534/

この動画と次の画像を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

これが出た場合は、以下の記事の対応方法を実行しましょう。

https://stackoverflow.com/questions/72356588/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による顔部分の低画質化を解消することができます。

タイトルとURLをコピーしました