sber-swapでFaceSwapして遊ぼう

2023年9月27日

sber-swapはAI技術を使って画像や動画内の顔を別の顔に入れ替える事が出来るプログラムです。Pythonというプログラミング言語をサーバ上で動作させる事が出来るGoogle Colabを使用する為、端末のスペックに関係無く性能の低いPCやスマホでもWebブラウザ上からの操作でFaceSwap動画を作成出来ます。幾つかの欠点や制約はあるものの手軽さの割には合成の精度が高く、AIの技術を体験して遊ぶのに最適かもしれません。

sber-swap 入れ替え前
sber-swap 入れ替え後
sber-swap 入れ替え後 2
開発/提供cedro
確認バージョン不明
Android 要件Webブラウザ
価格無料(広告無し)
sber-swap概要

近年ディープフェイクとも呼ばれるAIによって顔を入れ替える動画の作成は、これまで大量の画像とかなりの時間を使ってAIに学習させる必要があったのですが、sber-swapではたった1枚の画像から動画内の顔を入れ替える事が出来ます。但し欠点もあり映像内で顔に何かが重なった状態、例えば手が重なっただけでも合成が外れたり部分的にぼやける事があります。どの程度の事が出来るのかはサンプルをYouTubeにアップロードしたのでご参照下さい。

冒頭の方でも書いた通りsber-swapのプログラムをGoogle Colab上で動かす為、端末の性能に依存せず顔を入れ替えたFaceSwap動画を作成出来ますが、入れ替え先となる動画に高解像度で長時間の物は使用出来ません。無料で不特定多数に公開されているサービスなので当然と言えば当然なのですが、目安として使用出来る動画は10秒ぐらいの長さで容量10MB前後となります。但し有料のGoogle Colab Pro(月額1,179円)に加入すると、無料版より良い環境で使用出来るようです。

また、いちいち書きたくはないのですが悪用は厳禁です。節度をもって使用して下さい。

sber-swap 使い方、設定

冒頭の方でも書いたように操作は全てWebブラウザから行いますが、ここではスマホからの操作を例に記述していきます。但しPCがある場合はPCからの操作の方がお勧め。また、使用するブラウザは筆者が普段使用しているPC版のFirefoxでは問題が出た為、Google Chromeを推奨。事前にChromeでGoogleにログインしておいて下さい。

まずはGitHubに公開されているsber-swapのページを開き「Open in Colab」のボタンをタップ。「セットアップ」の記載のある横の[ ]内をタップします。警告が表示されますが「このまま実行」で閉じるとプレイヤーの再生ボタンのようなアイコンが表示されセットアップが開始します。

GitHub
Google Colab
Google Colabの警告

再生ボタンのアイコンが停止して横に緑のチェックマークアイコンが表示されたら完了となります。サーバの状態にもよりますが、筆者が使用していた時は完了まで約2分かかりました。

ページ左上にある3本線のボタンをタップしてメニューを開きます。ここにある「ファイルブラウザを表示」から「sber-swap」のフォルダがある事を確認。表示されない場合は更新ボタンから表示を更新してみて下さい。「sber-swap」-「examples」内には「images」、「results」、「videos」のフォルダがあります。「images」にはFaceSwapに使用する画像を、「videos」には入れ替え先となる動画をアップロードします。

ハンバーガーメニュー
ファイルブラウザを表示
sber-swap内のフォルダ

PC版のWebブラウザの場合は左サイドバーにあるフォルダアイコンのボタンをクリックしてフォルダを開閉出来ます。マウスポインタを重ねると3点ボタンが表示されるので、後はスマホ用のブラウザと操作は同じです。

sber-swap PC用Webブラウザで表示
sber-swap PC用Webブラウザでフォルダの開閉
sber-swap メニュー表示

アップロード方法は対象のフォルダの右端にある3点ボタンのタップから「アップロード」を選択。Androidの場合、「写真と動画の撮影」を許可するかの画面が表示されるので「許可」。アップロードするファイルのファイル名は半角英数字にしておくのが無難。また、上の方でも書いたように容量の大きい動画は変換に失敗するので最初は出来るだけ容量の小さな動画で試してみて下さい。

sber-swap アップロード
sber-swap 写真と動画の撮影を許可
sber-swap 動画をFaceswap

アップロード完了後、下の方にスクロールすると「画像をFaceswap」と「動画をFaceswap」の記載がありますが、ここでは「動画をFaceswap」を例に進めます。「source」と「video」の欄には事前に用意されているサンプルファイルのファイル名が記載されていますが、これを自身でアップロードしたファイル名に書き換えます。

ファイル名を書き換え後、「動画をFaceswap」の下にある[ ]内をタップして実行。これも終了するまでそれなりに時間がかかりますが、終了すると緑のチェックマークが表示されます。

「動画をFaceswap」完了後、更に下にスクロールして「動画を表示」の所で実行すると作成された動画が下部に表示されますが、既に動画は変換されているのでこの操作は必須ではありません。作成した動画は「results」フォルダ内に「results.mp4」の名前で保存されているので、3点ボタンのメニューからダウンロード出来ます。

sber-swap 動画を表示
sber-swap resultsフォルダ
sber-swap ダウンロード

実際に筆者が作ってみたのがvideoACで配布されているフリー動画素材を元にした物で、顔の合成にはぱくたそで配布されている大川竜弥さんの写真を使わせていただきました。YouTubeにアップロードしたサンプルがそれになります。それなりに動きのある動画に対してもズレなども無く完全ではないにしろ表情も元の動画と同じように再現されていて驚きました。

ただ、顔に少し手が重なる場面では部分的な歪みが確認出来たり事前に縦長のサイズに変換した物をsber-swapで実験的に変換してみようとした所、途中でエラーが出て停止しました。動画の長さや解像度、アスペクト比など、何が可で何が不可なのかははっきりとは分かりません。

sber-swapの進化版?FACE FUSION

丁度記事を書いている途中、cedro-blogさんのブログでsber-swapの進化版なるFACE FUSIONの記事を見付けたのでついでに掲載しておきます。sber-swapと異なり幾つかの設定項目があり、GUIで操作が出来る分だけ分かりやすいかもしれません。

使用方法は途中までsber-swapと殆ど同じでFACE FUSIONにアクセスして「INSTALL FACE FUSION」の下にある[ ]内をタップして実行。大体2分ぐらいで完了するので、下にスクロールして「RUN FACE FUSION」の下にある[ ]内を同様にタップして実行。因みにここは実行後、ずっと待っていても完了はしません。実行中、下部に「To create a public link…」と表示されたらリンクをタップして新規タブでFACE FUSIONの画面を表示します。

FACE FUSION
FACE FUSION 実行
FACE FUSION リンク

FACE FUSIONの画面では色々と設定項目がありますが、筆者も軽くしか使っていないので内容に関しては割愛します。最低限必要なのは「SOURCE」に入れ替え元の画像、「TARGET」に入れ替え先の動画をそれぞれアップロードして下部にある「START」ボタンをタップ。

FACE FUSION 設定画面
FACE FUSION アップロード
FACE FUSION 変換後

変換が終了すると「OUTPUT」の所にサムネイルが表示されるので、サムネイルの右上のボタンから変換したファイルをダウンロード出来ます。下の「PREVIEW」も同様にダウンロード出来ますが、こちらは動画では無くプレビュー用のPNG画像となっています。

sber-swap 感想

予定外にsber-swapの進化版なるFACE FUSIONまで掲載する事になりましたが、変換後の動画を比較してみるとFACE FUSIONの方が映像のコントラストが高めになっていてsber-swapで見られた部分的な歪みも緩和されているように見受けられました。FACE FUSIONにはsber-swapと異なり自身で設定出来る項目が幾つかあるので、試行錯誤してみるとより完成度の高いFaceSwap動画が作れるかもしれません。

因みにPC用ソフトウェアのfaceswapではGoogle Colab上でプログラムを動かすのと違い動画の時間や解像度を気にせず使えるメリットがありますが、かなりのハイスペックなPCを用意した上で学習に最低1週間必要と言われており、筆者もやってみたいと思いつつも現状躊躇している状態です。その点、sber-swapやFACE FUSIONは短い動画しか扱えないもののかなりお手軽なのが魅力ですね。