見出し画像

InfiniteTalkのリップシンクi2vで声付きキャラクターアニメーションをつくってみました

InfiniteTalk(インフィニットトーク)というAIモデルの i2v 版を、ローカルパソコン上の ComfyUI で使用して、「キャラクターの画像と、キャラクターの声を、リップシンク(LipSync)させて、さらに、身振りなどの動作も加えたアニメーション」をつくってみました。

※上のXポストのキャラクターアニメーション動画の生成についての情報は、下記のとおりです。

  • 画像の解像度: 448 x 448

  • 音声の長さ(生成される動画の長さ): 14秒

  • フレームレート: 25

  • ポジティブプロンプト: a chibi character is talking

  • 動画生成の所要時間: 2分20秒ほど

  • GPU: RTX 4090 (24GB)

  • リップシンク(LipSync) & キャラクターアニメーション: InfiniteTalk(インフィニットトーク) by MeiGen-AI

  • キャラクターの声: ElevenLabs の Voice Design 機能でつくった声のモデルをつかって、Eleven v3 (alpha) 機能で生成した声です。


InfiniteTalk(インフィニットトーク)ってなに?

かんたんに言うと、InfiniteTalk は、下記のようなことができる AIモデルです。

  • 声の音声ファイルと、映像の動画ファイルをわたすと、「その映像のなかの人物が、その声でしゃべっている映像」をつくってくれます。(いわゆる、リップシンク(LipSync)ができます)。

  • 口の動きだけでなく、身振りまで、その声に合った、自然な動きにしてくれます。(口の部分だけでなく、動画全体を編集してくれます)。

  • 下記のどちらの方式でも、動画を生成することができます。
    ・i2v(Image to Video):
     画像ファイル + 音声ファイル -> 動画ファイル
    ・v2v(Video to Video):
     動画ファイル + 音声ファイル -> 動画ファイル
    ※個人的には、i2v ができることが、とてもありがたいです。

  • とても長尺な動画でも、吹き替え(リップシンクや、身振りの調整などを含む)ができます。

※ 参考:InfiniteTalk の技術的な説明

※ちなみに、技術的な説明としては、下記のようなかんじで説明されています。

  • フレーム数が少ない動画(コマ数が少ない動画)(スパースフレーム(sparse-frame)な動画)であっても、音声から自然な口の動きを生成して、リアルな吹き替え映像を作るための技術です。

  • とても長尺な動画(無限長の動画)に対して、吹き替え音声を付けるために設計された、リアルタイムに音声を処理しながら映像を生成する技術です。

※ 「Infinite」(インフィニット)という言葉は、「無限の」とか「莫大な」という意味の言葉です。InfiniteTalk(インフィニットトーク)という名称のなかに、「Infinite」(インフィニット、無限の)という言葉が付いている理由は、「とても長尺な動画(無限長の動画)」をあつかえることをあらわすためだろうとおもいます。

作者であるAI研究チームと、MeiGen-AIについて

InfiniteTalk は、中国や香港の有力大学や、企業による共同研究によってつくられた技術(AIモデル)です。具体的な作者の一覧は、下記のとおりです。(後述のプロジェクトページの冒頭に、作者一覧リストがあります)。

※後述の、InfiniteTalk の GitHub のページと、Hugging Face のページの、それぞれのアカウント名になっている「MeiGen-AI」というのは、これらの大学や企業が、共同研究を行っている、AI研究プロジェクト(AI研究チーム)の名称であるようです。
このプロジェクトには、Meituanの研究者がかかわっているようなので、もしかすると、「MeiGen-AI」という名称は、「Meituan Generative AI」の略称なのかもしれません。

  • 中国科学院大学(University of Chinese Academy of Sciences, 略称  UCAS)の、人工智能学院(人工知能学院)(School of Artificial Intelligence)

  • Meituan(美団)(カタカナ表記:メイトゥアン、ないしは、メイ トゥァン)
    ※Meituan は、中国最大級の生活サービスの総合プラットフォームとなっているスーパーアプリを提供している企業です。さまざまな事業で、AIを活用しているようです

  • 中国科学院(Chinese Academy of Sciences, 略称 CAS)に所属している、国家重点実験室 模式識別実験室(New Laboratory of Pattern Recognition, 略称 NLPR)
    ※簡体字:中国科学院 国家重点实验室 模式识别实验室 (模式识别国家重点实验室)
    ※上記の「NLPR」という略称については、「National Laboratory of Pattern Recognition」という名称の略称とされる場合もあるようです。

  • 中山大学 深圳キャンパス:中山大学(Sun Yat-sen University, 略称 SYSU)の、深圳キャンパス(深圳校区、Shenzhen Campus)

  • 香港科技大学(Hong Kong University of Science and Technology, 略称 HKUST)の、芸術機械創造性分野(Division of Arts and Machine Creativity, 略称 AMC)と、電子コンピュータ工学科(Department of Electronic and Computer Engineering, 略称 ECE)
    ※繁体字:香港科技大學
    ※簡体字:香港科技大学

  • 中国科学院自動化研究所(Institute of Automation, Chinese Academy of Sciences, 略称 CASIA)の、マルチモーダル人工知能システム国家重点実験室(多模態人工知能系統国家重点実験室)(State Key Laboratory of Multimodal Artificial Intelligence Systems, 略称 MAIS)
    ※簡体字:中国科学院自动化研究所 多模态人工智能系统全国重点实验室

ライセンス: Apache License 2.0


プロジェクトページ

●原文(英語)
InfiniteTalk
https://meigen-ai.github.io/InfiniteTalk/

●日本語訳版(Google翻訳)
https://meigen--ai-github-io.translate.goog/InfiniteTalk/?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

GitHub(公式リポジトリ)

●原文(英語)
MeiGen-AI/InfiniteTalk
https://github.com/MeiGen-AI/InfiniteTalk

●日本語訳版(Google翻訳)
https://github-com.translate.goog/MeiGen-AI/InfiniteTalk?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

※ ComfyUI で、InfiniteTalk の AIモデルを使う方法は、下記URLに書かれています。

●原文(英語)
MeiGen-AI/InfiniteTalk at comfyui
https://github.com/MeiGen-AI/InfiniteTalk/tree/comfyui

●日本語訳版(Google翻訳)
https://github-com.translate.goog/MeiGen-AI/InfiniteTalk/tree/comfyui?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

Hugging Face

●原文(英語)
MeiGen-AI/InfiniteTalk · Hugging Face
https://huggingface.co/MeiGen-AI/InfiniteTalk

●日本語訳版(Google翻訳)
https://huggingface-co.translate.goog/MeiGen-AI/InfiniteTalk?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

InfiniteTalk 用のワークフロー(JSONファイル)

上記URLのGitHubの公式リポジトリのページにも書かれているとおり、kijaiさんという人がつくってくださった、InfiniteTalk 用のワークフロー(JSONファイル)を、下記URLからダウンロードできます。

※kijaiさん:フィンランドにお住まいの、ユッカ・セッパネン(Jukka Seppänen)さんの、GitHubやSNS上でのユーザーネーム。

● kijaiさんのGitHubリポジトリ
kijai/ComfyUI-WanVideoWrapper
https://github.com/kijai/ComfyUI-WanVideoWrapper

● i2v 用のワークフロー(JSONファイル)
https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_I2V_InfiniteTalk_example_01.json

● v2v 用のワークフロー(JSONファイル)
https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_InfiniteTalk_V2V_example_01.json


インストールについて

※以下は、Windowsパソコンの場合です。

  • InfiniteTalk を使い始めるときの手順は、上記URLの公式リポジトリページ(「MeiGen-AI/InfiniteTalk at comfyui」)のなかの、「Installation」(InfiniteTalk のインストール方法)の項目のところに書かれています。

  • インストールなどについて、わからないことがあるときや、エラーが出たときは、ChatGPTなどの AIチャットに質問するといいかとおもいます。(エラーの文章をコピペするだけでも、対処方法を教えてくれたりします)。

  • インストール時に、「pip install -r requirements.txt」を実行するときは、Python の 仮想環境(virtual environment) を有効化した状態でインストールしたほうがいいかとおもいます。

  • ぼくのパソコン環境の場合は、はじめは、「SageAttention」と「Triton」というソフトウェアがインストールされていないことが原因で、ComfyUIのワークフローを実行しても、エラーになってしまって、動画生成ができませんでした。ですが、「SageAttention」と、(「Triton」の代替品である)「triton-windows」をインストールしたところ、ちゃんと動画生成ができるようになりました。

(※「Triton」は、Windowsでは利用できないそうです。ですが、その代替品として、「triton-windows」(Windows 用の Triton)があるので、そちらをインストールすれば大丈夫なようです。)

AIモデルなどのダウンロードページと、設置場所(i2vの場合)

InfiniteTalk を使用するために必要な、各種のAIモデルなどのファイルの、ダウンロードページと、ダウンロードしたファイルの設置場所のフォルダは、下記のとおりです。

※下記の説明のなかの、「ダウンロードするファイル」の項目で提示しているAIモデルなどのファイルは、kijaiさんが作ってくださったワークフローのなかで、初期状態で設定されているファイルです。

※「設置場所」で示したフォルダのなかに、さらにサブフォルダをつくって、そのなかにファイルをまとめて入れておくこともできます。(それでも、ComfyUI の画面上で、正常にファイルが認識されるので、大丈夫です)。



  • 「WanVideo Lora Select」ノードのなかの、「lora」の項目に設定するファイル



  • 「WanVideo VAE Loader」ノードのなかの、「model_name」の項目に設定するファイル

    • ダウンロードページ:https://huggingface.co/Kijai/WanVideo_comfy/tree/main
      (※上記URLのページの末尾にある「Load more files」をクリックすると、非表示になっていたファイルが表示されます。)

    • ダウンロードするファイル:Wan2_1_VAE_bf16.safetensors

    • 設置場所のフォルダ:ComfyUI\models\vae


  • 「WanVideo TextEncode Cached」ノードのなかの、「model_name」の項目に設定するファイル

    • ダウンロードページ:https://huggingface.co/Kijai/WanVideo_comfy/tree/main
      (※上記URLのページの末尾にある「Load more files」をクリックすると、非表示になっていたファイルが表示されます。)

    • ダウンロードするファイル:umt5-xxl-enc-bf16.safetensors

    • 設置場所のフォルダ:ComfyUI\models\text_encoders


InfiniteTalk の使い方

  • 「Load Image」ノードで、画像ファイルを指定します。
    (※ i2vの場合)

  • 「LoadAudio」ノードで、音声ファイルを指定します。

  • 「WanVideo TextEncode Cached」ノードのなかの、上の入力欄のなかに、ポジティブプロンプトを書きます。下の入力欄のなかに、ネガティブプロンプトを書きます。

  • 「WanVideo Sampler」ノードのなかの、「control after generate」の項目の値を、「randomize」にすることで、毎回、まったく別の動画が生成されます。

  • 生成された動画ファイルなどが保存される場所については、初期状態では、「ComfyUI\temp」のフォルダのなかに保存されます。
    ですが、「Video Combine」ノードのなかの、「save_output」の項目を「true」にすると、保存場所が、「ComfyUI\output」になります。

    • ※「ComfyUI\temp」のフォルダは、一時的にファイルを置いておくためのフォルダです。そのため、ComfyUI をアップデートしたときなどには、「temp」のフォルダのなかにあるファイルは、自動的に削除されてしまうようです。ですので、せっかく生成したファイルが削除されてしまわないようにしたい場合は、「Video Combine」ノードのなかの、「save_output」の項目を「true」にしておくことをおすすめします。

  • 「Video Combine」ノードのなかの、「filename_prefix」の項目では、「保存されるファイルのファイル名」や、「保存先のサブフォルダ」を指定することができます。
    たとえば、「filename_prefix」の項目の値を、下記のようにすると、「年月日の8桁の数字」のフォルダのなかに、「ファイル名のなかに、生成された時点の年月日時分秒の数字が付けられた動画ファイル」が保存されるようになります。

    • ※「filename_prefix」の項目の値の一例:InfiniteTalk¥%date:yyMMdd%¥InfiniteTalk_ComfyUI_Wan21_%date:yyMMdd_hhmmss%


参考にさせていただいたXポスト

InfiniteTalk などについては、下記URLのXポストで知りました。

教えていただきありがとうございました!
m(_ _)m

LUTA@AIさん
https://x.com/luta_ai/status/1958446979073356064
https://x.com/luta_ai/status/1958368917694583168
https://x.com/luta_ai/status/1956228863819964742
https://x.com/luta_ai/status/1942071456478953767

⚙gear machine@AIさん
https://x.com/grmchn4ai/status/1959015064780120509
https://x.com/grmchn4ai/status/1958438058900267299
https://x.com/grmchn4ai/status/1959006768090292401


※ 参考:MultiTalk(マルチトーク)について

複数人をリップシンクできる MultiTalk(マルチトーク)

さきほど紹介した、InfiniteTalk(インフィニットトーク)に関連するものとして、MultiTalk(マルチトーク)というAIモデル(と、その技術)があります。

MultiTalk(マルチトーク)は、複数人が登場する映像(動画ファイル)に対して、指定した声(音声ファイル)に合うように、それぞれの登場人物の口の動きを調整する(リップシンクをする)という処理をする、というAIモデルであるようです。(まだ、実際に MultiTalk を使ってみたことがないので、くわしくはわかりません)。

MultiTalk も、さきほどの InfiniteTalk とおなじように、MeiGen-AI のプロジェクトのひとつです。

MeiGen-AI の GitHub アカウント
https://github.com/MeiGen-AI

プロジェクトページ

●原文(英語)
MultiTalk
https://meigen-ai.github.io/multi-talk/

●日本語訳版(Google翻訳)
https://meigen--ai-github-io.translate.goog/multi-talk/?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

GitHub(公式リポジトリ)

●原文(英語)
MeiGen-AI/MultiTalk
https://github.com/MeiGen-AI/MultiTalk

●日本語訳版(Google翻訳)
https://github-com.translate.goog/MeiGen-AI/MultiTalk?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

※ MultiTalk を、ComfyUI で利用できるようにするための対応は、まだ完了していないようです。ただ、kijaiさんが、実験的につくってくださったワークフロー(JSONファイル)は、後述のURLからダウンロードできます。

MultiTalk の Hugging Faceのページ

●原文(英語)
MeiGen-AI/MeiGen-MultiTalk · Hugging Face
https://huggingface.co/MeiGen-AI/MeiGen-MultiTalk

●日本語訳版(Google翻訳)
https://huggingface-co.translate.goog/MeiGen-AI/MeiGen-MultiTalk?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=wapp

MultiTalk 用のワークフロー(JSONファイル)

kijaiさんがつくってくださった、MultiTalk 用のワークフロー(JSONファイル)は、下記URLからダウンロードできるようです。

● kijaiさんのGitHubリポジトリ
kijai/ComfyUI-WanVideoWrapper
https://github.com/kijai/ComfyUI-WanVideoWrapper

● ワークフロー1(JSONファイル)
https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_multitalk_test_context_windows_01.json

● ワークフロー2(JSONファイル)
https://github.com/kijai/ComfyUI-WanVideoWrapper/blob/main/example_workflows/wanvideo_multitalk_test_02.json

AIモデルなどのダウンロードページ

kijaiさんが用意してくださった、MultiTalk のAIモデルは、下記URLからダウンロードできます。

WanVideo_2_1_Multitalk_14B_fp8_e4m3fn.safetensors · Kijai/WanVideo_comfy at main
https://huggingface.co/Kijai/WanVideo_comfy/blob/main/WanVideo_2_1_Multitalk_14B_fp8_e4m3fn.safetensors


以上、ご参考までに。m(_ _)m

いいなと思ったら応援しよう!

倉田幸暢 たくさんの人が、目を輝かせて生きている社会は、きっと、いい社会なのだろうとおもいます。 https://wisdommingle.com/memorandum-of-intent/