2ntブログ

FAKEに魅せられて

2020年11月20日 01:21

近頃はCG技術が爆発的に進歩してきました。
コンピュータグラフィックもここまで来たかと思わせる出来事ばかりです。
中でもFAKE FACE  DeepfakeなるAI技術が大変興味をそそりまして
しかも、逮捕者を出すまでの騒ぎになってしまいました。
なぜなら、使いこなせればかなりの制度でFAKE作品を作ることができるからです。

FAKE FACEはAiが実存しない人の画像を作り出し
ネットや広告に自由に使える顔画像を作り出すというもの、これまたすごいのですが
私的にはDeepfake動画がすごいと思ってしまいます
動画では映画もポルノも満載!
海外ではFAKE用にポルノを撮影したりしてるらしい (◎_◎;)
やはり映像やCG技術の一般普及はエロありきなのでしょうか(笑)

そして、私は久しぶりに制作意欲が沸々と・・・・沸々と・・・沸々と。

で、どんなものかとザックリ調べてみると作る方法はたくさんありました。
Deepfakeの技術のオープンソースを使ったアプリケーションがほとんどです。
基本的にはコマンドベースだったらしいのですが最近UIを作ってくれた方たくさんいらっしゃいます。
まずはプロンプトが起動してその上にUIをかぶせてい動いていますので
実際はコマンドベースではありますが

そして、中にはスマホのアプリ版や
向こうのサーバーで重~い計算をしてくれて作ってくれるWebサイト版もあります。
スマホのアプリ版は流石に違和感バリバリで、Webサイト版はサーバー利用料がかかります。

それってどんなもの?かというと
顔認識のAIの応用で元々映画で使っていた技術だそうです。
こんな感じかどうか分かりませんが?



上は髭を残すマスクのプラグインですね。
そして、下はゴッソリ入れ替えですね。
これを使うとスタントの顔を俳優の顔にすれば寄って撮影ができますね。
ポルノで上手に使うとアイコラどころの話ではない爆発力です。

そして私は、いちばん解説の多い(日本語解説もあり)
Faceswap(基本的にfree)を使ってここ2か月半ほどPOSERもせずにTESTしていました (''◇'')ゞ
日本語の解説ページの解説はザックリ過ぎてエラーの対処も書いていないので残念
日本語解説どうりにやってうまくいったとしてもレベルの低いなんちゃってしかできません
デフォルトのままで解説してますんで、できることは出来るでしょうが
デフォでは指定範囲も小さくマスクもしてしていないので
色ずれや輪郭への適応、眉の処理がおかしく眉が二段になったり前髪が消えたり
致命的な粗が出てしまいます。

そして、リアルなものを作ろうと設定を適当にいじると・・・
こいつはちょとのところでエラーを吐きやがります(>_<)
そのセッションでは修復不可能になることもトレーニングしたモデルが消えることも・・・
何より頻発するエラーの原因が分からないのが辛い。

ですので、英語ではありますがフォーラムで質問責めをくらわして何とか細かいセッティング
エラーの対処やトレーニングデータの蓄積 結合、手動での再構築、そしてプラグインの使い方などなど
分かってきて中々上々の動画が作れるようになってきました(*^-^*)

Faceswapでは顔認識のAIで顔と思われる部分を顔だけすべてのフレームから切り出して
目鼻口を位置合わせファイルにおこします。
各フレームで検出されたすべての顔に関する情報、
具体的にはすべての顔の順番、および68ポイントのランドマークによる目鼻口や表情筋の場所に関する情報が保持されます。
上書きする顔と される顔どちらも位置合わせファイルにおこします
そして、AIがそれをもとに書き換えるトレーニングをします。
私はここの看板娘のモデルにした女優さんを動画もたくさんあるので使ってみました。

トレーニングにはGPUをがっつり使います。
OptiX にはまだ対応していないのでRTXはもう少しお預けで私のGTX1080Tiに頑張ってもらいます。
Aiのトレーニングでは、私の場合GTX1080Tiで80~90%ぐらいの使用率で
約3日回して納得できるかどうか?です。

そして、おおよそ30000枚のサンプル画像の整理でグラフィックメモリが11GB以上必要です。
一般的なグラフィックメモリ8GBではおおよそ22000枚になります。
8000枚の違いは大きいため買える金額で11GBのGTX1080Tiに買い替えた次第です (^^ゞ
しかし、チョット油断して顔を摘出するとあっという間に30000枚を超えてしまい
GTX1080Tiの11GBのメモリをも超えてしまい読み込み中にエラーを吐きやがります。
初めはエラーの理由もわからずオロオロしました。
摘出動画の時間に気を付け顔の枚数の管理をしているので大丈夫ですが
ですからあまり極端に長い動画は使えません、何本かに切ってつなげなければいけません。
私のPremiereがCS5とかなり古いのでGPUではなくCPUパワーを結構必用とします
Rezen73700X現在ですが、切り出しや編集エンコードも待ち時間を一分でも減らしたいのでRezen9が欲しいです。
fakeapp-20701-1.jpg
そして、私の作ったものは公開できない(まだ捕まりたくはない)のでフォーラムで使っていた画像です
縦に12列並んでいますが3列づつ4レーンになります。
左2レーンが実際のトレーニング右2レーンが対象人物の反転トレーニングになります
1レーン中の3列の内訳は
左端がオリジナル
真ん中がオリジナルに上書きの顔の位置合わせファイルを使ってオリジナルを重ねてロスを測定
右はじがそのデータを使って上書きの人のデータの上書きトレーニングになります。

書き換えると言ってもオリジナルの方の顔の輪郭とバランスが
書き変える人とあまりに違う場合微妙になったりもしますので
リアルを求めるのであれば書き換える方の顔のおおよそのバランスを気にする必要があります。
輪郭は絶対ではありませんがトレーニング範囲において顔の何%を使うかで決まりますので
これもあまりにかけ離れた輪郭は避けた方がいいと思います。
体型の大きな違いはもちろん論外です。
マスクも使うマスクプラグインにおいて前髪があるかないか、
動画中で髪の毛が顔にかかる事が多いか否か、
他の物や人がかぶる頻度が多いか否か
眉の処理や範囲の重要度など
マスクプラグインにおいて得手不得手が違うのでマスクも考える必要があります

そしてトレーニングにおいて最終的にはロスが0.02ぐらいとされていますが
私的にはロス0.015以下がいいと思います。
出回っている動画でまあまあいけるのがロス0.02前後だと思います。
すごいなこれ、ぐらいの動画がロス0.01前後でしょうかね?
とは言っても0.02まで下げるのも非力なGPUでは困難を極めると思います。

現在の私のPC環境
ASRock B550 Phantom Gaming 4
Ryzen 7 3700X
GTX1080Ti 11GB
PC4-28800/3600Mhz 32GB (Ryzenは3200Mhz~3600Mhzがおいしい)
NVMe M.2 1TB (システム)
SATA M.2 500GB(FAKEビデオ用に購入)
SSD 500GB x2 POSER Runtime(CGデータ)用Win10ミラー記憶域
HDD 6台合計28TB 内4TB4台外付けタワーUSB 3.2レイド1接続(音楽用)
Acer ゲーミングモニター Nitro 27インチ WQHD(4Kは目が辛いため)

とても最新の爆速PCではありませんがこの構成で、
0.02を切ってからは0.001下げるのにも数時間かかかります
私は目指せロス0.01です。
CG好きにはもっともっとはやいPCが欲しいものです。

ここまでで私の環境下では数日かかります
非力なパソコンではもっとかかってしまいますので
時間利用料はかかりますが強力なサーバで数時間で出来てしまう
Web版を利用するのもありかもしれません。

一度トレーニングしたモデルは二回目三回目と
学習機能により処理速度があがっていきます。
この辺がAiたるもののすごさでしょうね

ここまで数日かけてやっとコンバートへこぎつけます。
最期にエラーはかなり辛いですが、意外とあるので祈りながらポチリます。
エラーもいろいろです。ファイルエラーはどうしようもありません。
変換されても顔が変わらなかったりします。まあセッティングで修正可能ですが・・・
しかし、成功して思ったような結果が得られると感動ものです!!ヽ(^o^)丿
成功しても思ったような結果がられない場合があります。
この辺はあれやこれやと研究し、ダメもとでフォーラムにて質問するのがいいでしょう

ともあれ現在勝手に個人の映像を改変して、Webへたれ流すのは日本においては
名誉棄損に当たるらしく後ろに手が回ります。
NETへ垂れ流したり不特定多数に上映しなければ、個人で作って一人ニヤニヤする分には
名誉棄損には到底ならないんで今現在は犯罪ではないですからOKですね。
紹介できないものなので、そうそう続けていけるものでも有りませんが
久々意欲に満ち溢れた作品(私的にかなりリアルにできたと思う)を
紹介できないのがざんねんでたまりませんです~・・・残念 (ノД`)・゜・。

MNE