見出し画像

【ComfyUI】 静止画に命を吹き込むAI技術 LivePortrait:その仕組みとComfyUIでの活用方法

本記事では、静止画からリアルなアニメーション動画を生成するAI技術「LivePortrait」とその仕組み、そして実際にLivePortraitをComfyUIでの具体的な活用方法について解説します。肖像画に命を吹き込み、歴史上の人物を動的に表現したり、アート作品に新たな息吹を与えたりと、LivePortraitはエンターテイメントから教育まで幅広い分野で応用が期待される注目の技術です。これから、その詳細な技術解説から、ComfyUIを用いた実践的なワークフローの構築、そして今後の展望まで、LivePortraitの魅力に迫ります。


1. LivePortraitについて

LivePortraitは、静止画像から驚くほどリアルなビデオアニメーションを生成する最先端のAI技術です。Kuaishou Technology、中国科学技術大学、復旦大学の共同研究によって開発されたこのフレームワークは、効率性と制御可能性を高次元で実現しています。

技術の革新性

LivePortraitの最大の特徴は、単一の静止画像から高品質な動画アニメーションを生成できる点です。従来の技術では困難だった細かな表情の変化や自然な動きを、AIの力を借りて実現しています。この技術は、写真やアートワークに新たな命を吹き込み、静止画の世界に動きという新しい次元を追加します。

幅広い応用範囲

LivePortraitの応用範囲は非常に広く、エンターテインメント、教育、アート、そしてコミュニケーションの分野で革命を起こす可能性を秘めています。例えば、以下のようなことに応用が考えられます。

  • 歴史教育: 歴史上の人物の肖像画に動きを加え、より印象的な学習体験を提供

  • アートギャラリー: 静止画の展示に動きを加えることで、来場者の興味を引き立てる

  • 広告: 静止画広告に動きを加えることで、注目度を高める

  • ソーシャルメディア: プロフィール写真やポストに動きを加え、より魅力的なコンテンツを作成

技術的な仕組みの詳細

LivePortraitの核心は、複数のニューラルネットワークを巧みに組み合わせた点にあります。各モジュールの役割をより詳しく見ていきましょう:

  1. Appearance Feature Extractor: 入力された静止画像から、顔の特徴、テクスチャ、色合いなどの視覚的特徴を抽出します。これにより、生成される動画が元の画像の特徴を保持することが可能になります。

  2. Motion Extractor: 参照動画から動きの情報を抽出します。これには顔の表情変化、頭の動き、目の動きなどが含まれます。この情報は後のプロセスで静止画に適用されます。

  3. Spade Generator: 抽出された特徴と動きの情報を組み合わせて、新しい画像フレームを生成します。このステップでは、GANs(敵対的生成ネットワーク)の技術が活用されています。

  4. Warping Module: 生成された画像を自然に変形させ、よりリアルな動きを実現します。このモジュールにより、不自然な歪みや突然の変化を防ぎます。

  5. Stitching and Retargeting Modules: 最終的な出力を調整し、フレーム間を滑らかにつなぎ合わせます。これにより、連続的で自然な動きを持つ最終的な動画が生成されます。

パフォーマンスと効率性

LivePortraitの処理速度は驚異的です。RTX 4090 GPUを使用した場合、1フレームあたりわずか12.8ミリ秒で生成が可能です。これは、ほぼリアルタイムでのアニメーション生成を意味し、インタラクティブなアプリケーションへの応用の可能性を大きく広げています。

今後の展望

LivePortraitは、AI技術とクリエイティブ表現の融合における重要なマイルストーンとなっています。今後は、さらなる品質向上や、より複雑な動きの再現、多様な画像スタイルへの対応などが期待されます。また、この技術が一般に広く利用可能になれば、個人のクリエイティブ表現や企業のマーケティング戦略に革命をもたらす可能性があります。LivePortraitは、静止画の世界に動きという新たな次元を追加し、視覚表現の可能性を大きく拡張する革新的な技術です。今後のさらなる発展と、それによってもたらされる創造的な応用に注目が集まっています。

2. 使用するカスタムノード

ComfyUI-LivePortraitKJ

ComfyUI-LivePortraitKJは、ComfyUIでLivePortraitを実行するためのノードを提供しているカスタムノードです。ComfyUI Managerからインストールすることができ、インストール時に必要なモデルもダウンロードしてくれます。以下がComfyUI-LivePortraitKJのリポジトリになります。

ComfyUI-KJNodes

ComfyUI-KJNodesは、ComfyUIの既存ノードの機能を組み合わせて作成された便利なノードを提供しています。今回使用するサンプルワークフローで、このカスタムノードを使っているため、インストールが必要になります。インストールは、ComfyUI Managerから可能です。

ComfyUI-VideoHelperSuite

生成した画像を動画ファイルとして出力するために「ComfyUI-VideoHelperSuite」を使用します。ComfyUI-VideoHelperSuiteは、ComfyUI Managerからインストールすることができます。以下がComfyUI-VideoHelperSuiteのリポジトリです。

ComfyUI Essentials

ComfyUI Essentialsは、ComfyUIの機能を拡張するカスタムノードのコレクションです。ComfyUI Essentialsは、ComfyUI Managerからインストールすることができます。以下がComfyUI Essentialsのリポジトリです。

3. 使用する素材

対象画像

今回は、以下の画像をLivePortraitで動かします。以下の画像をダウンロードし、ComfyUIで使用してください。

参照元動画

今回は、以下の動画を利用します。この動画は、ComfyUI-LivePortraitKJでサンプルとして提供されている動画です。

以下よりダウンロードしてください。

4. 使用するワークフローと全体像

今回使用するワークフローは、ComfyUI-LivePortraitKJが公開しているサンプルのワークフローを使用します。以下のリンクよりダウンロードしてください。

ワークフローの全体像は、以下の画像を参照ください。

このワークフローを以下のようにフローチャートで図示しました。

ワークフローの各ノードの処理内容は、以下の通りです。

  • モデルとクロッパーの初期化:

    • DownloadAndLoadLivePortraitModels: ライブポートレートモデルを初期化します。

    • LivePortraitLoadMediaPipeCropper: MediaPipeベースの顔クロッパーを読み込みます。

  • ソース画像の処理:

    • LoadImage: ソース画像を読み込みます。

    • ImageResizeKJ: 読み込んだ画像をリサイズします。

    • GetImageSizeAndCount: リサイズした画像を分析します。

  • 動画入力の処理:

    • VHS_LoadVideo: 入力動画を読み込みます。

    • もう一つの GetImageSizeAndCount: 動画フレームを分析します。

  • 顔のクロッピング:

    • 2つの LivePortraitCropper: ソース画像と動画フレームの両方から顔をクロップします。

  • メイン処理:

    • LivePortraitProcess: ライブポートレート生成の主要な処理を行います。

  • 合成とマスキング:

    • CreateShapeMaskGrowMaskWithBlur: マスクを作成し、洗練します。

    • LivePortraitComposite: 処理されたポートレートと元の画像を組み合わせます。

  • 出力生成:

    • GetImageSizeAndCount: 合成結果を分析します。

    • VHS_VideoCombine: 処理されたフレームを動画出力に結合します。

  • 追加機能:

    • LivePortraitRetargeting: ポートレートアニメーションの調整に使用される可能性があります。

    • MaskPreview+: 生成されたマスクをプレビューするためのものです。

このワークフローは、LoadImageVHS_LoadVideoからソース画像と駆動動画を取り込み、LivePortraitProcessで処理し、最終的にVHS_VideoCombineでアニメーション化されたポートレート動画を出力します。LivePortraitCropperCreateShapeMaskGrowMaskWithBlurなどのノードを使用して、顔検出、クロッピング、マスキングなどの高度な画像処理を行い、入力動画の動きに基づいてリアルなアニメーションポートレートを作成します。

5. ワークフローの実行準備

  • まず、ダウンロードしたワークフローをComfyUIにロードしてください。

  • 次に、対象画像をLoad Imageノードに読み込んでください。

最後に、参照元動画をLoad Video (Upload)ノードに読み込んでください。

6. ワークフローの実行

ここまでの内容で準備が完了したので、ワークフローを実行してください。以下が実行結果です。参照元動画と同様に顔が変化していることが確認できます。単に画像を伸縮しているわけではないので、例えば眉毛の動きは、髪の毛はそのままで、眉毛のみが動いています。この再現度の高さがLivePortraitの凄いところでしょう。

7. 補足

LivePortraitのライセンスですが、コード、モデル、共に商用利用可能です。当初、Face Detectionのモデルにinsightface(商用利用不可)を利用していましたが、途中でGoogleのMediaPipeに対応しました。MediaPipeは、Apatche 2.0のため、商用利用可能です。ComfyUI-LivePortraitKJでは、insightfaceのモデルは自動ダウンロードされず、デフォルトでMediaPipeが使用されます。


この記事でご紹介したAI技術の応用方法について、もっと詳しく知りたい方や、実際に自社のビジネスにAIを導入したいとお考えの方、私たちは、企業のAI導入をサポートするAIコンサルティングサービスを提供しています。以下のようなニーズにお応えします。

  • AIを使った業務効率化の実現

  • データ分析に基づくビジネス戦略の立案

  • AI技術の導入から運用・教育までの全面サポート

  • 専門家によるカスタマイズされたAIソリューションの提案

初回相談無料ですので、お気軽にご相談ください。以下のリンクからお問い合わせください。


この記事が気に入ったらサポートをしてみませんか?