超簡単、顔だけ入れ替えるディープフェイク動画の作成(Faceswap)※取り扱い注意!!
一時期流行った?ディープフェイクによる動画詐欺などありましたよね
どこかの社長や有名人などが詐欺の勧誘をしていたりする動画とかです。
今や世間ではこれらに対して厳しくなっているかと思いますが。。世間とは裏腹、ディープフェイクの技術は日々進歩していましたw
処理時間だけはやたらとかかりますが、2つの入れ替える動画を用意して、ポチポチとステップ踏むだけで簡単にできちゃいます。
※著作権の都合で私のサンプル動画などは無いです💦
※本格的ですが、下記もfaceswapです(faceswap公式で紹介されています)
ちなみに、私はAIで生成した女の子などを動かしたかったのですが、フルAIで動画作成するのはしんどかったでコレを調べ始めました。
しかし、結局、動画素材が入手困難なことに今更気が付き、現在考え中です。。適当に動画生成のAIを使って生成した後、お気に入りのAIの顔をハメ込むとか?
とりあえず個人で適当に試したい方はTikTokの動画を適当なところでダウンロードして試してみるのがお勧めですw
※解像度を合わせたほうが継ぎ目の無い、リアルな動画が完成します。
※勝手に加工した動画を公開してはダメです。
0. まずはインストール
インストールしないと始まらないです
まずは、下記のFaceswapのホームページからWindowsのインストーラー形式をダウンロードしてインストールしてください。
ちょっと記憶が無いのですが。。たぶん。。何も悩まなかったと。。
NVIDIAグラボ所有者はNVIDIAを選択しましょう。それだけです。
ポチポチするだけで終わりで、インターフェイス付のツールが使えるようになります。
1. フォルダ準備(フォルダ構成)
まず顔を入れ替えたい動画を用意して、以下のようなフォルダ構成を作ります
1.InputA・・・基となる動画を入れる
※顔を変えたい動画(moto.mov)
2.InputB・・・変更したい顔を含む動画を入れる
※この顔にしたい動画(kao_douga.mp4)
3.Model・・・モデル作成用フォルダ
※基本的には、フォルダ、ファイル名など全て自由で何でもOKですが、分かりやすいように今回上記の名前にしています。
※動画ファイルは各種フォーマットに対応していると思います。。
(たぶん)
work(適当なフォルダ)
├─InputA
│ moto.mp4
├─InputB
│ kao_douga.mp4
└─Model
2. 顔の情報をピックアップする(抽出)
素材作成として、基本、InputAとInputBで交互に同じ作業をします。
最終的に InputAの顔をInputBにすることも
InputBの顔をInputAにすることも可能です。
まずは「顔を変えたい動画」の顔の情報をピックアップします。
「Extract」で
Input Dir に InputAの moto.mp4(顔を変えたい動画)
Output Dir に InputAの ディレクトリを指定します
あとはとりあえずデフォルトでOK
次に同様に「この顔にしたい動画」の顔の情報をピックアップします。
Input Dir に InputBの kao_douga.mp4(この顔にしたい動画)
Output Dir に InputBの ディレクトリを指定します
すると顔だけピックアップした画像が大量に作成されます。
ここからボケてるのや、顔以外の画像など品質の悪い画像を除去するのですが、一旦、似た画像で並び替えをさせます(これはやらなくてもいいのですが、大量画像のため、並び替えてから除去作業をするほうがラクです)Tools→Sort で、input/Output共に InputA のフォルダを指定
上記の通りSortSettingにFaceを指定して「Sort」のボタンを押してください。
その後、フォルダを見ると、似た画像で並べ替えされているので
ボケてるのや、変なのが写っている画像を削除してください。
但し、fsaという拡張子のファイルというのが出来ますが。それは消さないでください。
※同様に、Tools→Sort で、input/Outputに InputB のフォルダを指定上記の通りSortSettingにFaceを指定して「Sort」のボタンを押してソート後に変な画像は消してください
3. アライメントを実施する(画像の整理)
顔の位置が一定であったり、単純な動画や、とりあえずやってみる?などの場合は不要なのですが、すぐ終わりますのでアライメントを実行したほうが動画の質向上や、トレーニングの効率化、作成失敗などのトラブル回避になるので実施したほうがいいです。
Tools→Alignmentsで、input/Outputに InputA のフォルダを指定して、右下のAlignmentsボタンで実行。
終わったら同様にInputBも実施しましょう。
4. トレーニング(学習)させる
お疲れさまでした!ここまでで素材の準備は完了です。
ここからがトレーニングと動画作成になります。
Trainのタブを指定して、FacesにそれぞれのInputAとInputBを入れます。
ModelにModelのディレクトリを指定、Timelapseにそれぞれ
InputA、InputB、Modelを指定して右下の「Geenerate」をクリックでスタート。
CTRL+Sで途中セーブできます。セーブ後に途中までの状態で次のコンバートも可能です。
※全てトレーニングさせるのはかなりの時間がかかるので、途中でCTRL+Sで止めて、1度、適当に下記のコンバートを試して見ることをお勧めします
5. 動画にコンバートする
Convertのタブをクリックして、それぞれのDataを入力します
InputDirにInputA、OutputDirにカレントフォルダ
AlignmentsにInputAのAlignmentsで作成されたファイルを指定
ReferenceVideoにInputAの動画を指定
ModelDirはModelのディレクトリを指定
WriterにFfmpegを指定して動画出力にしましょう。
全て設定したら右下のConvertで実行!!
しばらくすると動画がカレントフォルダ(OutputDir)に出力されます!!
これで最新のディープフェイク技術を体感できます!!