roopを使ってDeepFake動画をスマホで作る

2023年9月27日

roopはAIの技術を使い元の動画の顔を別の人の顔に入れ替えてDeepFake(ディープフェイク)と呼ばれる動画を作成出来るプログラムです。少し前にsber-swapの記事を掲載しましたが、sber-swapと同様にPythonをサーバで動作させる事が出来るGoogle Colab上で実行する事が出来るので、高性能なPCを必要とせずスマホのWebブラウザでアクセスしてDeepFakeやFaceSwapと呼ばれる動画を顔写真1枚から手軽に作成出来ます。

roop ソース動画
roop DeepFake動画 1
roop DeepFake動画 2
開発/提供Somdev Sangwan
確認バージョン1.3.2
Android 要件Webブラウザ
価格無料(広告無し)
roop概要

roopはオープンソースで開発されておりソースコードがGitHubで公開されています。WindowsやMacOS、Linux PCにインストールして使う事が出来ますが、実際に使用するとなると難解な部分もあります。今回このページではPCは勿論の事、スマホのWebブラウザからの操作でroopを使ってDeepFake動画を作成する方法を掲載しますが、上述した通りGoogle Colab上で実行する事もあり色々と制限もあります。

また、個人で楽しむ分には合法ですが、著名人の顔を合成した動画を無断で不特定多数に配布したりする行為は違法になる場合があるのでご注意下さい。

roop-one-click-deepfake.ipynb

事前にroopがGoogle Colab上で使用出来るように準備されているroop-one-click-deepfake.ipynbにWebブラウザでアクセスします。使用するブラウザはGoogle Chrome推奨で、先にGoogleにログインしておいて下さい。ページを開いたら上部に「接続中」と出ている筈なので「T4」と表示されるまで待ちます。出ない場合はタップして接続。

roop-one-click-deepfake.ipynb
roop 警告
roop インストール

「Clone roop repo and install dependencies」の下にある[ ]内をタップしてインストールを実行します。その際に警告が表示されたら「このまま実行」でインストールが始まります。インストールが終了するまで約1分ほどかかりますが、終了すると緑のチェックマークが表示されます。

画面左上にある3本線のボタンからサイドメニューを開き、「ファイルブラウザを表示」をタップ。アップロードボタンから顔を入れ替える動画と入れ替え元の顔写真の画像ファイルをアップロードします。因みに動画は高解像度で長い物はエラーが出て使用出来ません。目安としてはHD画質で10秒弱ぐらいまでの動画となります。

roop サイドメニュー
roop ファイルブラウザ
roop 写真と動画の撮影を許可

アップロードの際、「写真と動画の撮影をChromeに許可」するかの画面が表示されるので「許可」します。

ファイルのアップロード完了後、少し下にスクロールして「download model」の下にある[ ]内をタップして実行します。大体2秒ほどで完了して上と同じく緑のチェックマークが表示されます。更に「Deepfake」の所までスクロールして最初の一行目を書き換えます。

roop download model
roop Deepfakeの一行目の書き換え
roop Deepfake実行

「target /content/video.mp4」となっている部分をアップロードした動画ファイルのパスに変更。今回筆者は「test.mp4」の名前でアップロードしたので「target /content/test.mp4」となります。「output-video-quality 80」は出力されるDeepfake動画の画質に影響し、数字が少ないほど高画質になります。標準の80ままだとかなり粗い画質なので筆者は15に変更しました。「source /content/image.jpeg」は顔写真の画像のパスです。動画ファイルと同様にアップロードしたファイル名に書き換えます。書き換え後、最後に[ ]内をタップして実行すると作成が始まります。

完了後、再びサイドメニューを表示すると書き出された動画ファイルが表示されている筈です。表示されていない場合はアップロードボタンの隣にある更新ボタンをタップ。標準のままだとファイル名は「swapped.mp4」になっているので、右端にある3点ボタンからメニューを出して「ダウンロード」でストレージ内に保存出来ます。

roop 作成動画ファイル
roop ダウンロード
roop ファイルへのアクセス許可

ダウンロードの際、「端末内の写真、メディア、ファイルへのアクセス」を許可するかの画面が表示されるので「許可」します。

roop 感想

sber-swapの記事を書いた際には作成したDeepfake動画のサンプルをYouTubeにアップロードしましたが、今回は面倒だったので止めておきました。sber-swapには無い魅力として画質のクオリティを自身で設定出来る所で、逆にファイルサイズを抑える事を目的に低画質に設定する事も出来ます。また、sber-swapでは映像内で顔に手が重なったりする場面で歪みのような現象が出ましたが、roopでは同じ場面で完全に合成が外れました。Deepfake動画の作成は大体どれも顔が隠れる場面で合成に問題が出るので、今後はここら辺の改善を期待したい所。

また、Google Colab上では10秒程度の短時間の動画しか作成出来ないという制限がありますが、roopを自身のPCにインストールすれば、この制限を気にせずに長時間のDeepfake動画も作成出来ます。インストール方法はWikiに記載されている通りに行っても何らかのエラーで実行出来なかったりと難しい部分があるのですが、筆者の場合はLocal Windows Installer Script (Patreon)を使用してローカルPCでroopを実行する事が出来ました。GPUがRTX 3060 12GBで10分の動画を変換するのに1時間以上かかったので、長時間のDeepfake動画の作成には高性能なGPUが必要です。