AIイラストをSadTalkerで口パクさせてみた
昔、Puppet3とキャラクターなんとか機を組み合わせて、音声に合わせた口パク動画をYouTubeにアップしたことがあります。
あれから3~4年は経ってますし、AIの進化速度がすごいため、口パクシステムも面白いモノが出来ているのでは?と調べてみたら、SadTalkerというプロジェクトがありました。
![]()
引用元:https://github.com/OpenTalker/SadTalker
上記ページによるとStable Diffusionの拡張機能として動かせるそうなので、インストール手順に従って早速入れてみました。
AIイラストをSadTalkerで喋らせてみた結果
えっちな音声はありませんが、しゃべるので一応ご注意ください。
※合成音声:VOICEVOX:春日部つむぎ
…お、おおぅ、AI絵を1枚ほおりこんだだけでここまで動くのか…。ちなみに生成時間はRTX4070で2分くらいです。
よく見れば破綻しているところも結構あるけれど、これは仕方ないのです。SadTalkerが想定しているのは写真、つまりフォトリアリスティックな画像なので、アニメ系の顔は破綻しちゃうみたい。
頭の揺れを抑える「Still Mode」というのがあり、それを使うと少しだけ安定します。
でも、最初のインパクトに比べるとStill Modeはちょっと物足りない感じもしますね。
また、どちらのモードでもリアル系から逸脱した大きい瞳だと目パチは厳しいっぽい。
これはYuzuというリアルとアニメの中間くらいの絵柄を出すモデルですが、これ以上アニメチックなモデルだと破綻どころか、そもそもエラーが表示されて変換自体不可です。
きちんとSadTalkerのインストール手順に従ったのになぜかエラーが出て変換できない!と悩んでいる人がいたら、普通の人物写真で試してみることをオススメします。ぼくはこれで数時間悩みました。
AIフレーム補間で作った場合
前回の記事「AIフレーム補間で口を開けるテストと舌上射精」では大きく口を開けて舌を出すまでのモーションをAI補間しましたが、今回はしゃべるだけなので閉口/開口の2枚だけ用意。
映像や音の綺麗さで誤魔化されそうですが、本題の口の動きに関して言えばSadTalkerの圧勝ですよね。
SadTalkerは子音と母音を聞き分けて口の形を変えているように見えるんですよ。例えば「作っていたのに」というセリフは「に(い)」で終わっているので、口を大きく開くのはおかしい。「イー」と口を横に広げた形が正しいわけですが、SadTalkerはそこをちゃんとしているように見える。もしかしたらそんな難しい話じゃなくて周波数だけで口の大きさを変えているに過ぎないのかもですが、それでもすごい技術ッスわ…。
こちらのAIフレーム補間で作ったバージョンは単に閉口/開口を交互に出しているだけなので、そのへんがダメダメです。
口パク編集自体が難しいというわけではない
何を難しいと感じるかは人それぞれ違うので一概には言えませんが、個人的には目パチ口パクの動画編集自体が難しいとは思いません。
動画編集ソフトのタイムライン上に音声の波形が表示され、どの場面でしゃべっているのかは一目瞭然ですから、そこに口パク動画を差し込むだけ。
目パチについても人間のまばたきは平均2秒に1回なので、それに合わせて適当に目閉じ画像を差し込むだけです。
動画編集ソフトによっては音声を検知して、指定したクリップの表示/非表示を切り替える機能もあったりするんじゃないかな。
少なくともOBS Studioにはそんなプラグインがあったはず。そういうのを組み合わせればより簡単に音声に合わせた口パク自体は実現可能です。
やはり決定的に違うのは口の形だなぁ…。SadTalkerは本当にそこがすごいと思いました。
まとめ
スマホで顔写真を様々な表情に加工できるFaceAppは有名ですし、ぼくもFaceRigといった3Dアバターアプリを購入して持っていたりもするため、もしかしたらそのくらい出来て当たり前なのでは、くらいに思う方もいるかもですが、オープンソースで個人が自由に使える技術として降りてきてることがすごいです。
とりあえずSadTalkerをインストールしたばかりの状態では、画像も音声も荒いし、デフォルメ系の顔には使いづらいし、現時点ではぼくは活用できそうもありませんが、AIフレーム補間と同じように、得意な場面を見つけることが出来るかも知れないし、今後の動向が楽しみです。


















