ComfyUI Multi-Subject Workflows

詳細

ファイルをダウンロード

モデル説明

これは ComfyUI 用のカスタムワークフローのコレクションです。

複数の被写体を生成できます。各被写体には独自のプロンプトがあります。

これらのワークフローは正常に動作させるためのいくつかのカスタムノードを必要とします。主に、これらのセットアップに伴う面倒な作業の一部を自動化または簡略化するためです。

必要なカスタムノードをインストールするには、ComfyUI Manager を取得してから、Managerに移動し、「欠落しているカスタムノードをインストール」をクリックするのが最善の方法です。まだノードが不足している場合は、そのワークフローの「このバージョンについて」セクションに記載された依存関係を参照してください。


最近更新されたワークフロー:

  • Latent Couple Pose(元は LoRA Latent Couple)-新しいワークフローですが、ユーザーエクスペリエンスとしては Region LoRA および Region LoRA+ に非常に似ています。ただし、最新で優れた手法を用いて、LoRAモデルをコンディショニング領域に接続できるようになり、すべての作業を1回のサンプリングで完了できるようになった点が違います。これにより、以前のように各領域を別々にサンプリングする必要がなくなります。以前にこれらのワークフローを使用していた場合、実質的に同じ動作となります。このワークフローは、Region LoRA、Region LoRA+、Interaction OpenPose ワークフローのすべての機能を1つの方法でより優れた形で実現できるため、それらは廃止される予定です。

  • Latent Couple-現在の ComfyUI とカスタムノードバージョンに対応するように更新されました。LoRA対応を追加。エリア条件付き LoRA を実装したため、「LoRA Latent Couple」という名前は混乱を招くこととなったため、名称変更されました。

Latent Couple の再構成中に、2つのアクティブなワークフローが非常に類似していることに気づき、まとめるのも難しくないと思いましたが、パス処理ロジックを追加するリスクや、ワークフローの集中性を保つために、最終的にそれを断念しました。

Latent Couple Pose のデモ動画はこちら:

  • 今後新しいバージョンを開発中であるため、Latent Couple は一時的に非推奨とマークされています。

新しいバージョンをリリースするたびに、このバージョンを削除・再作成しているため、『Update Notification Push』ではなく、モデルバージョンからダウンロードしてください。バージョン削除により、統計情報、レビューやコメントがリセットされるため注意してください。


Latent Couple と Latent Couple Pose の違い

現在、この2つのワークフローは非常に似ており、主な違いは Latent Couple Pose で OpenPose ControlNet を追加情報として使用している点です。一見すると追加の複雑さに見えますが、これはデフォルトで、外部アセットをロードせずとも、OpenPoseプリプロセッサを介して制御画像(ControlNet image)を生成できるようにするために、最初に基本的な T2I ワークフローを追加しているからです。ただし、これは事前に用意されたポーズ画像をロードするノードに簡単に置き換えることができます。

ポーズ版(Pose)は、より複雑なシナリオでもより正確な画像を生成できますが、その一方で、そのような複雑なシナリオではプリプロセッサが姿勢データを正確に抽出することが難しくなるため、逆にシンプルな Latent Couple を用いてAIがより自由に推論させることで、偶然に優れた結果が出ることもあります。ただし、これはワークフローで画像から姿勢を抽出する通常方法と比較した場合の話であり、Latent Couple Pose では事前に作成された OpenPose エディタのポーズを提供すれば、常に優れた結果が得られます。このようなエディタをワークフローに統合したかったのですが、残念ながら現在、そのようなエディタは正しくメンテナンスされていないようです。


ワークフロー:

Latent Couple

画像のさまざまな部分に異なるプロンプトを適用することにより、画像構成に関するより細かい制御が可能になります。

テスト結果によると、通常、Noisy Latent Composition よりも優れた結果が得られます。

ComfyUI ではこれほど標準的なものですが、カスタムノードによる一部のQoL機能を含んでいます。

Noisy Latent Composition(非推奨)

各プロンプトを別々の画像で初期段階(例:4/20 ステップ)に生成し、主要要素の概略だけを作成した後、それらを結合して残りのステップを Latent Couple で処理します。

ComfyUI ではこれほど標準的なアプローチですが、カスタムノードによる一部のQoL機能を併用しています。

Character Interaction (Latent)(非推奨)

まず、実際にうまく動作するものが必要な場合は、Character Interaction (OpenPose) または Region LoRA を確認してください。このワークフローは動作しません。アーカイブ目的での保留です。

これは2体のキャラクターが相互作用する様子を生成する「試み」であり、ControlNet を使わず、外見の高精度な制御を保つことを目的としています。ただし、非常に不確実で信頼性が極めて低く、要するに失敗作です。

この方法では、初期の数ステップ(例:6/30)を、画像全体をカバーする1つのプロンプトで生成します。それがどの程度の相互作用を実現したいのか(背景、視点、両キャラクターに共通する特徴なども含む)を記述します。

その後、2番目の KSampler で残りのステップにおいて、各キャラクター用に2つの追加プロンプトを追加します。それぞれのキャラクターが「予想する」場所(推測)に限定されるように、例としては左半身・右半身の領域にそれぞれオーバーラップさせて設定します。

正直に言うと、結果の質と一貫性は高くありません。試してみたい場合は、KSampler の切り替えステップ、キャラクターのプロンプト間のオーバーラップ量、プロンプト強度といったパラメータが調整のポイントです。私のテストでは、ここから得られた最も近い相互作用は口づけのみでした。ハグは一切成功しなかった。

KSampler を切り替えるステップが高くなるほど、必要な相互作用がより一貫して得られますが、キャラクター用のプロンプトの効果が失われます(私は通常20~35%のステップで調整)。この影響を少し補うためには、キャラクターのプロンプト強度を増やすことで対処可能です。

Latent Couple Pose

次のセクションである Character Interaction (OpenPose) および Region Lora の後に掲載すべきですが、本説明は既に長いため、上部に表示し、下のワークフローは非推奨なのでより目に付きやすいようになっています。

このワークフローは、以下に記載される方法(および画像)と非常に類似しており、それらもここに適用されます。主な違いは、従来の「領域サンプリング」ではなく、最新ではるかに優れた LoRA フックを採用しており、複数の LoRA領域を別々にサンプリングする必要なく、画像全体を一度にサンプリングできることです。

Character Interaction (OpenPose)(非推奨)

別のキャラクターの相互作用生成方法ですが、今回は実際にうまく機能し、非常に一貫性があることを目指しています。実現のためには、ControlNet OpenPose を組み込んだラテントコンポジションを実行するだけです。使用のしやすさを考慮し、OpenPose画像をあらかじめ生成しておくことが可能なので、自分で事前準備した画像を入力する手間が不要です。通常の生成と比べてそれほど複雑ではありません。ComfyUI にワークフローをインポートした後、内部のメモに説明があります。

技術的な観点からは、単純に OpenPose をコンディショニングに適用するよりやや複雑です。なぜなら、背景と2体の被写体を含め、合計3つ(またはそれ以上!)のコンディショニングを処理しているからです。3つのコンディショニングすべてに ControlNet を適用すると、結合前後どちらに適用しても、背景に OpenPose は正しく適用されます(OpenPose画像が背景コンディショニングと同じ次元)。しかし、被写体には OpenPose 画像が寸法に合わせて縮小されて適用されてしまい、結果として3つの非整合の ControlNet 画像が出来上がります。その理由から、唯一、OpenPose の元の画像を変更せずに適用できるのは背景だけです。それ以上をやめてしまうと、被写体には ControlNet のガイドラインが効かなくなり、OpenPose画像と何の関係もなくなってしまいます。したがって、それぞれの被写体の領域に対応する OpenPose の部分を切り出し、その情報を個々の被写体のコンディショニングに適用してから、最終的なコンディショニングに結合します。その上で、最終画像を生成することができます。

以下の画像は、生成されたコンディショニングの結果です:

ちなみに、ワークフローは同様の画像も自動生成します :)

背景コンディショニングは画像全体をカバーし、ポーズデータの全部が含まれます。

被写体1は緑色の領域として表現され、その領域内のポーズの一部を含みます。

被写体2は青色の領域として表現され、同様にその区域内のポーズを含みます。

画像は最初に生成され、その後その画像からポーズデータを抽出、スキュー、コンディショニングに適用して適切な画像の生成に使用されます。これにより、手元に適切な OpenPose 画像を用意する手間が省けます。

そして最終的な結果は以下の通りです:

この結果は、アップスケーリング後の2回目のパス、フェイスリスタンス、最終的な追加アップスケーリングを含んでいます。これらはすべてワークフローに含まれています。

また、コンディショニング領域のプレビュー画像(上図参照)も自動生成されます。理想的には、正式な画像生成の前に生成されるべきですが、ComfyUIにその制御手段がまだ実装されていないため、時折、ワークフローの最後に実行されることがあります。現状、これについては何もできません。

ワークフローの内部に、利用に関する追加情報が記載されています。

Region LoRA / Region LoRA PLUS

「名前の通り」、このワークフローでは画像の指定領域に LoRA モデルを適用できます。

例として、異なる LoRA と異なるアートスタイルのキャラクター2体を生成できますし、1体のキャラクターの顔に1つのセットの LoRA、体の残りの部分に別のセットの LoRA を適用するといった、コスプレの再現なども可能です!

Region LoRA と Region LoRA PLUS の違いは?

Region LoRA は2つの領域に限定されています。マスクを1つ描くだけで、マスクされた領域が領域1、それ以外が領域2になります。

Region LoRA PLUS は、希望するだけの領域を追加できますが、各領域についてマスクを個別に描く必要があります(Interaction OpenPose と同じスタイル)。

したがって、2つの領域が必要な場合、基本版の Region LoRA のほうが使いやすく、領域が完全にアライメント(整合)されていることが保証されます。

さらに、現在の PLUS 版では、アップスケーリング後の領域サンプリングは実現できません。必要なノードが欠落しているため、回避策を講じることは非常に複雑になるためです。

どのように動作するのか?

その鍵となるのは、ltdr.data 氏による Impact Pack および Inspire Pack に含まれる「Regional Sampling」ノードです。これにより、マスク領域に基づいて異なるサンプラーで画像の一部を生成することができます。つまり、異なる LoRA モデルを、あるいはマスク領域と非マスク領域で異なるチェックポイントを使用できます。これが中心的な仕組みですが、一言で言うとそれだけでは不十分です。完全なワークフローは以下の通りです。

まず、リアルなチェックポイントで理想のポーズの画像を生成し、ControlNet OpenPose プリプロセッサに通します:

次のステップは、Impact Pack に含まれる「Preview Bridge」ノードに移行します。これは、画像とマスクの出力を備えたプレビュー画像ノードであり、マスクを手描きできるのが特徴です。このノードに先ほどの画像が送られます。画像がここに到着すると、画像生成を一時停止し、この画像を MaskEditor で開き、キャラクターの1つにマスクを描画します:

次に、マスクの境界に沿って ControlNet 画像を切り出して、その領域のコンディショニングに適用します。ControlNet のおかげで、画像のシームレスな透視感が維持され、異なる領域にあるキャラクター間の相互作用も可能になります。このマスクは、クリーンな LoRA 分離を担当するサンプリング領域も決定します。

最終的な結果:

左: 星街すいせい / Hololive
右: ヰ世界情緒 Isekai Joucho Nemophila ver

このモデルで生成された画像

画像が見つかりません。