人の顔を別人に入れ替える Faceswap の使い方

フルタニ

こんにちは、フルタニです。放送局で番組作りをしてました。 Faceswap を書きます。

映像制作の楽しみの一つが合成です。

動画や画像から被写体の顔の部分だけを取り出して、他の動画や画像にはめ込んでみたいと思いませんか。

動画制作をする時、こんな合成が人物にできると演出の幅が広がります。

AIの進化で顔の動画を別の動画に合成することが簡単になりました。

この記事ではAI合成の無料ツール「 Faceswap 」の使い方を紹介します。

人物画像を入れ替える Faceswap の使い方

Faceswapのインストール

アプリもGitHubで公開されています。

プログラミングに詳しくないユーザーでも手順通りに設定していけば動画を作成できます。

FaceswapはGitHub – deepfakes/faceswap: Deepfakes Software For Allからダウンロードできます。

[Code]をクリックすると開くので[Download.zip]を指定します。

GPUの選択では使用中のグラボにあわせて、NVIDIA、AMDのビデオカード、またはCPUを指定します。

「Install」のボタンをクリックするとFaceSwapのインストールがはじまります。

画像の準備

使いたい顔のある動画と、その顔を操るようになる動画それぞれ一本を用意しす。

  • 動画の画質
  • 各動画に登場する人物は顔がはっきりわかる一人だけ
  • 動画の人物の動きに注意。背向けや体の回転などの動きはNG

動画はできるだけ三つの条件を満たしましょう。

作業環境の準備

(作業用の別ドライブなどの)ローカルディスクの中にフォルダをつくります。

名前は自由ですが日本語だとエラーを起こすので英文を推奨します。

ここに変換したい動画(model_A)と、顔の素材として使う動画(model_B)の二本の動画を用意します。

 フォルダの直下にフォルダを作ります。

そのフォルダの中に「A」と「B」「ModelDir」の三つのフォルダをつくります。

まず「A」フォルダの中に「faceimagesA」という名前のフォルダをつくります。

「faceimagesA」は顔の素材として使う動画(model_B)から、顔の部分だけ抜き出して保存する中間素材フォルダです。

次に「B」フォルダの中に「faceimagesA」という名前のフォルダをつくります。

「ModelDir」の中に「TimelapseOutput」と「Training」フォルダをつくります。

「TimelapseOutput」フォルダはプレビュー画像の保存先となるフォルダです。「Training」フォルダは、動画を合成中に使われるデータを仮置きするスペースになります。

Faceswapで合成する手順

変換したい動画(model_A)を「A」フォルダの中に、顔の入れ替えに使う動画(model_B)を「B」フォルダの中にそれぞれ格納します。

Faceswapを起動します。

英文のツールですが、主に使うのは[Extract(抽出する)][Train(仕込み)][Convert(変換)][Tools]です。

[Extract]の[Input Dir]の右横[select video]から変換したい動画(model_A)を選択します。

[Output Dir]の右横[select folder]からfaceimagesAのフォルダを選択・指定します。

これで変換したい動画(model_A)から抜き出した顔画像が保存されます。

ここまで終わったら、画面下の[Extract(抽出)]ボタンをクリックします。すると抽出が始まります。

しばらくすると、画面全体がAIが抽出した顔画像で埋め尽くされます。

抽出された画像は10秒あたりで125枚程度になります。

抽出された静止画の枚数は画面下で確認できます。

動画合成には、抽出や合成などの作業が伴うのでメチャメチャ時間がかかります。なので初めのうちは三分もしくは500枚程度の動画合成にとどめておいた方がやりやすいので注意してください。

次に、顔の入れ替えに使う動画(model_B)を同じように[Output Dir]の右横[select folder]に指定して[Extract(抽出)]ボタンをクリックします。

これで二つの動画から合成に使う画像がそれぞれのフォルダに抽出されました。

動画生成の経験がある人ならわかると思いますが、動画合成のしくみは一枚一枚の静止画を別の静止画を素材として別の画像を生成するというものです。

動画から顔の部分の抽出が終わったら[Train(仕込み)]作業に移ります。

Train(仕込み)作業の進め方

[Train(仕込み)]タブを開きます。

まず元の顔と入れ替える顔を指定します。

[Faces]の[InputA]に[A]の[faceimagesA]フォルダを選択します。

[InputB]には[B]の[faceimagesB]フォルダを選択します。

次に[Model]を指定します。

[Model Dir]には[Model Dir]フォルダの中の[Treaning]を選択します。

画面下の方にある[Timelupse]の[Timelupse InputA]に[A]フォルダの中にある

[faceimagesA]フォルダを選択します。

同じように[Timelupse]の[Timelupse InputB]に[B]フォルダの中にある

[faceimagesB]フォルダを選択します。

[Timelupse Output]に[ModelDir]の中の[TimelapseOutput]を選択します。

これで準備完了。画面下の[Train]をクリックします。

しばらくすると画像AとBそれに生成画像の三つの画像が画面いっぱいに表示されます。

生成画像は数日かけて徐々に完成されていくため、ひたすら完成までPCを起動し、最高品質の動画を作るには数日の間待ち続けなければなりません。(途中で中断再開もできます)

動画の書き出し

[Convert]タブを開きます。

[Input Dir]に変換したい動画(model_A)を選択します。

[Output Dir]に出力先フォルダを選択します。フォルダは任意でOK。面倒な人は[Video]などを指定しましょう。

[Alignments(位置合わせ)]に[ModelA]フォルダに生成されたModelA_alignments.fsaを選択します。

[ModelDir]に[Training]フォルダを選択します。

動画と音声を記録・変換・再生するため[Writer]の中にある[Ffmpeg]を選択します。

これで一段落。[Convert]ボタンをクリックします。

しばらくするとプレビュー画像が表示されるのでチエックします。

以上で準備は終わり、あとはAIがかなりの時間をかけて動画を生成してくれるのを待ちます。

まとめ