見出し画像

【ComfyUI】 参照動画不要!AdvancedLivePortraitで画像に表情を付けてみよう!

今回は、ComfyUIの強力なカスタムノードであるComfyUI-AdvancedLivePortraitを使って、静止画の顔にリアルな表情を付ける方法を紹介します。以前の記事で紹介したComfyUI-LivePortraitKJとは異なり、参照元動画を必要とせず、GUIで直感的に表情を編集することができます。本記事では、ComfyUI-AdvancedLivePortraitの基本的な使い方から、ワークフローの詳細、各ノードの役割までを丁寧に解説し、誰でも簡単に静止画に命を吹き込めるようにガイドします。

前回のComfyUIでLivePortraitを動作させる記事は以下になります。


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

ComfyUI-AdvancedLivePortrait

ComfyUI-AdvancedLivePortraitは、LivePortraitを利用した顔編集を実現したカスタムノードです。前回の記事で紹介したComfyUI-LivePortraitKJは、参照元動画が必要でしたが、ComfyUI-AdvancedLivePortraitでは、参照元動画なしで表情を変えることができます。ComfyUI-AdvancedLivePortraitのリポジトリは以下になります。ComfyUI Managerからインストール可能です。

2. 使用する素材

対象画像

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

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

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

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

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

このワークフローの主要コンポーネントとその役割を、ノード名を含めて説明します。

  1. 画像の読み込み:

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

  2. 表情の編集:

    • ExpressionEditor: 読み込まれた画像の顔の表情を編集します。このノードには複数のパラメータがあり、様々な表情の要素を調整できます。

      • winkが23.5を設定しており、画像にウィンクをさせる処理が走ります。

  3. 編集済み画像の保存:

    • SaveImage: 表情が編集された画像を保存します。

このワークフローの処理の流れは以下の通りです。

  1. LoadImageノードが対象画像を読み込みます。

  2. 読み込まれた画像はExpressionEditorノードに送られ、設定されたパラメータに基づいて顔の表情が編集されます。

  3. 編集された画像は最後にSaveImageノードに送られ、画像として保存されます。

4. 使用するノードの説明

Expression Editor (PHM)

ExpressionEditorは、ComfyUI-AdvancedLivePortraitの一部であり、静止画の人物の表情をGUIでインタラクティブに編集できるノードです。 スライダーを使って顔の回転、目の開閉、口の形、笑顔など、様々な表情パラメータを細かく調整できます。

入力

  • src_image: 表情を編集したい人物の画像。

  • sample_image: 表情のサンプルとなる画像。

  • motion_link: 他のExpressionEditorノードからの出力。複数のExpressionEditorノードを繋げて、複雑な表情アニメーションを作成できます。

  • add_exp: LoadExpDataノードなどで読み込んだ表情データ。保存済みの表情データを適用できます。

出力

  • image: 表情が変更された画像。

  • motion_link: ExpressionEditorノードの出力。AdvancedLivePortraitノードに接続して、静止画の表情を動画に適用できます。

  • save_exp: 保存可能な表情データ。SaveExpDataノードに接続して、表情データを保存できます。

ウィジェット

  • rotate_pitch: 顔の縦方向の回転 (-20 ~ 20)

  • rotate_yaw: 顔の横方向の回転 (-20 ~ 20)

  • rotate_roll: 顔の軸方向の回転 (-20 ~ 20)

  • blink: まばたきの強さ (-20 ~ 5)

  • eyebrow: 眉の高さ (-10 ~ 15)

  • wink: ウィンクの強さ (0 ~ 25)

  • pupil_x: 瞳の横方向の位置 (-15 ~ 15)

  • pupil_y: 瞳の縦方向の位置 (-15 ~ 15)

  • aaa: 口の開閉度 (-30 ~ 120)

  • eee: 口の「え」の形 (-20 ~ 15)

  • woo: 口の「う」の形 (-20 ~ 15)

  • smile: 笑顔の強さ (-0.3 ~ 1.3)

  • src_ratio: ソース画像の表情の適用割合 (0 ~ 1)

  • sample_ratio: サンプル画像の表情の適用割合 (-0.2 ~ 1.2)

  • sample_parts: サンプル画像から転送する表情のパーツ

    • OnlyExpression: 表情の変化のみを転送します。顔の回転や目の位置は変更しません。具体的には、口の開き具合、眉の高さ、笑顔の度合いなどです。

    • OnlyRotation: 顔の回転のみを転送します。表情の変化は転送しません。具体的には、顔の縦方向・横方向・軸方向の回転です。

    • OnlyMouth: 口の表情のみを転送します。顔の回転や目の表情は変更しません。具体的には、口の開き具合、口の形 (「え」の形、「う」の形など) です。

    • OnlyEyes: 目の表情のみを転送します。顔の回転や口の表情は変更しません。具体的には、目の開き具合、ウィンク、眉の高さ、瞳の位置などです。

    • All: 表情の変化と顔の回転、両方を含めて全ての表情を転送します。

  • crop_factor: 顔検出時のクロップ領域の拡大率 (1.5 ~ 2.5)

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

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

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

6. ワークフローの実行

ここまでの内容で準備が完了したので、ワークフローを実行してください。以下が実行結果です。画像にウィンクをさせることに成功しました。

次にrotate_yawを-17.0に設定し、顔を正面に向けてみました。

さらにsmileを1.00に設定し、笑顔にしてみました。

最後にeyebrowを15.0に設定し、眉毛を上げてみました。

自由に表情を変えることができ、画像編集に非常に有効的な手法だと感じました。たまに「この画像、もう少しこうだったら…」と思うことがありますが、それを解決してくれるものになるでしょう。皆さんも色々試してみてください!

7. 補足

リアルタイム処理

ComfyUI-AdvancedLivePortraitのリポジトリを見ると、リアルタイムで処理を行っています。ComfyUIでリアルタイム処理をするには、メニューの「Extra options」にある「Auto Queue」にチェックを入れ、「change」に設定します。こうすることで、ワークフローに変化(例えば、ウィジェットの値を変更する)が起きると、自動でワークフローが実行されるようになります。この時、Save Imageノードは削除し、Preview Imageにすることをお勧めします(変化のたびに画像保存されるため)。

ライセンスについて

ComfyUI-AdvancedLivePortraitのライセンスは公開されていません。そのため、商用利用可能か不明です。リポジトリのIssueにライセンスについて質問している方がいらっしゃったので、開発者の返信待ちになります。

https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait/issues/39

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

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

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

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

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

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


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