LoginSignup
7
5

生成AI業界では多くのオープンソースプロジェクトが乱立しており、その全てを把握するのは困難です。特に、何を入力して、どんなデータが出力されるのか、1発で理解するのは難しいです。

本記事では、顔面の生成AI技術を活用したオープンソースプロジェクトを用途ごとに整理し、わかりやすく紹介します。

技術の分類

顔面の動画生成といえど、その種類は多く存在します

  • 音声 + ベースの顔画像: 入力画像で、音声に合わせてリップシンクや適度に顔を動かす。
  • 顔や頭の動きがある動画 + ベースの顔画像: 元動画の口元や顔の動きをトレースし、ベースの顔画像で動画を生成。
  • 表情画像 + 基本顔画像 + オーディオ: "表情画像"の表情を反映させ、音声に合わせてリップシンクや顔の動きを生成。
  • 顔向きの調整: 音声に合わせて顔の向きを調整する。

音声+ベースの顔画像→動画

Sadtalker

とりあえず、一枚の顔面画像とオーディオから動画を生成するなら、Sadtalkerが一番おすすめです。

自分の手元で動かしたデモ動画

口だけが動いており少々違和感がありますが、「どれだけ頭を動かすか」は設定で調整できます。ただ、大きく動かすとその分、破綻が目立つようになります。例えば、顔周辺以外の髪の毛などは、顔の動きに追従して動いてくれたりはしません。

また、一番右の映像no瞬きやポーズを抽出して、映像に反映することができます。
image.gif

そのほかにも、どれだけ頭が回転するかを指定して、オーディエンスに話しかけるように首を回すような仕草をさせたり、3Dのフェイスマスクを出力したりできます。詳しくは、公式リファレンスを参照ください。

機能以外の最大の特徴としては、Stable Diffusion Web UIに組み込んで使うことができるという点です。外部の解説記事があるので、それを参考に導入してみてください。

MacOSで動く、軽量版も

基本的に機械学習のモデルはMacOSのMPS(Metal Performance shaders、MacにおけるGPU)に最適化されていませんが、SadtalkerではMacOSのための軽量版も用意されています。

顔画像のレンダリングをPIRenderに置き換えることで、開発者によると、CPUの場合で10倍、GPUを使えばさらに60倍早くなるとのことです。詳しくはGithubのDisccussionをご覧ください。もしかしたら、今後解説するかもしれません。

Githubリンク

One-shot talking face colab

自分の手元で動かしたデモ

公式デモ

かなり自然な動画になっているのがわかると思います。

Sadtalkerよりも一見クオリティーは高いのですが、SadtalkerのようにWebUIもなく、またOpen Faceというライブラリーを用いる必要があるので、環境構築の難易度は高めです。自分はM1 Macbook上でどうしても動かしたかったので、自分でバイナリファイルのビルドを試みましたが、諦めました…(誰かビルドできたらください)

Githubリンク

StyleHeat

公式デモ

老けさせたり、幼くしたりできることが特徴です。

Sadtalkerの開発もとであるOpneTalkerが制作しているので、Sadtalkerのコードをベースに作られています。

Githubリンク

MakeItTalk

自分の手元で動かしたデモ

少し顔面の周辺が不自然に動く癖があります。顔の周辺の動きが気になりにくい、カートゥーンアニメーションなどには使えそうです。

  1. 顔の輪郭やパーツの形(Landmark)を探知
  2. Audioの特徴から口の形や顎のラインを予測
  3. 同時に、Audioの特徴からスピーカーの顔の向きを予測
  4. それらの顔のLandmarkと1枚の元画像を用いて、image2image

のような流れで動いているようです。

実装を改正つしている参考サイト

Githubリンク

EmoGen

公式デモ

顔面の動画+音声+感情(Anger, happinessなど6択から選択)→感情にそった動画を生成

ただ、クオリティーはイマイチで、口元がぼやけたりぷるぷる震えたりしてしまいます。

Githubリンク

GeneFace

公式デモ

こちらもやはり顔の動きが安定せず、少々不自然に見えます。

Githubリンク

動きのある動画+ベースの顔画像→モーションをトレース

Thin plate spline motion model

公式デモ

一番左のジャッキーチェンの動画が元動画です。そこから頭のモーションや瞬き、リップシンクなどの情報を取り出し、ベースの顔画像に反映します。すると、まるでその人が喋っているかのような動画を生成することができます。

また、顔だけでなく、体全体のモーションもトレースすることが可能です。一番左が元となる動画です。

Githubリンク

DaGAN

公式デモ

一番左下の女性の顔が元動画です。一つ前のThin plate spline motion modelと比較しても、クオリティーは非常に高いです。

Githubリンク

PIRender

公式デモ

一番左が元画像、左から2番目がリファレンスの動画、一番右がこのモデルの出力結果です。ひと昔前のモデルなので、前にあげた二つよりも結果は劣るかもしれません。

このモデル特有の特徴としては、顔の回転表情の操作などできるそうです。
68747470733a2f2f72656e79757275692e6769746875622e696f2f504952656e6465725f7765622f696e747569746976655f666173742e676966.gif

Githubリンク

その他の代替技術

以上のようにトーキングヘッドのモデルを見てきましたが、動画生成でなくとも代替技術はあるので、そちらも紹介します。

Talking Head Anime from a Single Image 3

1枚の絵からVtuberのように、リップシンクや瞬き、体の動きなどのモーションを作れるライブラリーです。Live2Dのようにパーツ分けをして、メッシュをかけて、モーションを作るという一切作業をせずに、気軽にVtuberになれます。

Talking Head Anime from a Single Image 3

詳しい実装については、こちらの解説サイトを参照してください。

Githubリンク

Nvidia Omniverse Audio 2 Face

Nvidiaは、Omniverseという名称で、主にゲームや3Dモデルアニメーションの効率的な制作を支援するフレームワークを提供しています。

その一つのソリューションとして、音声データを利用して、3Dアバターのリップシンクや顔の感情表現を自動生成する「Audio2Face」を提供しています。これによって、手動でキーフレームを打って表情を作成する必要なく、音声データだけでリップシンクと感情の表現を実現することが可能になります。

公式サイトリンク

弊社Passinate Geniusでは一緒に働く仲間を募集しています!興味をお持ちいただける方は、ホームページまで!

役に立った場合は、励みになるのでいいねとコメントよろしくお願いします!

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5