PuLIDとは何ですか?
PuLID(Pure and Lightning ID customization)は、テキスト・トゥ・イメージ生成モデルにおけるチューニング不要のアイデンティティ(ID)カスタマイズのための革新的な方法です。これは、事前トレーニング済みのテキスト・トゥ・イメージモデルに特定のID(例えば、人の顔)を埋め込むことを目的としていますが、モデルの元の機能を損なうことはありません。これにより、テキストプロンプトを使用して属性、スタイル、背景などを変更しながら、特定の人物の画像を生成できます。
PuLIDには2つの重要なコンポーネントが組み込まれています:
- 標準の拡散ブランチと並行して、わずか数ステップのデノイジングでIDを条件としてすばやく高品質の画像を生成する「Lightning T2I」ブランチ。これにより、生成された顔の忠実度を向上させるために正確なID損失を計算できます。
- IDコンディショニングの有無によるLightning T2Iパス間の対照的なアライメント損失。これは、モデルの元のプロンプトに従う能力と画像生成機能を汚染せずにIDの情報を埋め込む方法をモデルに指示します。
PuLIDはどのように機能しますか
PuLIDのアーキテクチャは、従来の拡散トレーニングブランチと新しいLightning T2Iブランチで構成されています:
- 拡散ブランチでは、PuLIDは反復的なデノイジングの標準的な拡散トレーニングプロセスに従います。ID条件は、ターゲットトレーニング画像からクロップされます。
- Lightning T2Iブランチは、最近の高速サンプリング手法を活用して、純粋なノイズから始めて、わずか4つのデノイジングステップでIDプロンプトを条件とした高品質の画像を生成します。
- Lightning T2Iブランチ内では、2つのパスが構築されます。1つはテキストプロンプトのみを条件とし、もう1つはIDとテキストプロンプトの両方を条件とします。これらのパスのUNET特徴は、対照的な損失を使用して整列されます:
- セマンティックアライメント損失は、IDコンディショニングの有無にかかわらず、テキストプロンプトに対するモデルの応答が同様であることを保証します。これにより、モデルの元のプロンプトに従う能力が維持されます。
- レイアウトアライメント損失は、ID挿入の前後で生成された画像レイアウトの一貫性を維持します。
- Lightning T2Iブランチは、クリーンでデノイズされた出力顔を生成するため、生成された顔の埋め込みと実際のID埋め込みの間の正確なID損失を計算できます。これにより、生成されたIDの忠実度が向上します。
ComfyUI PuLIDの使い方
ComfyUI PuLIDワークフローを使用してモデルにIDカスタマイズを適用するには、「Apply PuLID」ノードでいくつかの重要なパラメータを設定する必要があります:
"Apply PuLID" 必須の入力:
- model: 特定のIDでカスタマイズするベーステキスト・トゥ・イメージ拡散モデル。これは通常、Stable Diffusionのような事前トレーニング済みのモデルです。
- pulid: ロードされたPuLIDモデルの重み。IDの情報がベースモデルにどのように挿入されるかを定義します。異なるPuLIDの重みファイルは、IDの忠実度を優先するか、モデルの元の生成スタイルを維持するかのどちらかを優先するようにトレーニングできます。
- eva_clip: IDの参照画像から顔の特徴をエンコードするためにロードされたEva-CLIPモデル。Eva-CLIPは意味のある顔の特徴埋め込みを生成します。
- face_analysis: IDの参照画像で顔を認識してクロップするためにロードされたInsightFaceモデル。これにより、関連する顔の特徴のみがエンコードされることが保証されます。
- image: モデルに挿入する特定のIDを示す参照画像。同じIDの複数の画像を提供して、IDの埋め込みを改善できます。
- method: IDの挿入方法を選択します。オプションは "fidelity"、"style"、"neutral" です。"fidelity" は、生成品質が低下しても、ID参照への最大限の類似性を優先します。"style" は、IDの忠実度を下げて、モデルの元の生成能力を維持することに重点を置いています。"neutral" はこの2つのバランスをとります。
- weight: IDの挿入の強さを制御します。0(効果なし)から5(非常に強い)までの範囲です。デフォルトは1です。重みを上げるとIDの忠実度は向上しますが、モデルの元の生成を上書きするリスクがあります。
- start_at: PuLIDのIDカスタマイズの適用を開始するデノイジングステップ(0から1までのパーセンテージ)。デフォルトは0で、最初のデノイジングステップからIDの挿入を開始します。IDの挿入をデノイジングプロセスの後半で開始するように増やすことができます。
- end_at: PuLIDのIDカスタマイズの適用を停止するデノイジングステップ(0から1までのパーセンテージ)。デフォルトは1で、デノイジングの最後までIDの挿入を適用します。最終的なデノイジングステップの前にIDの挿入を停止するように減らすことができます。
"Apply PuLID" オプションの入力:
- attn_mask: IDのカスタマイズを空間的に制御するためのオプションのグレースケールマスク画像。マスクの白い領域は完全なID挿入効果を受け取り、黒い領域は影響を受けず、グレーの領域は部分的な効果を受け取ります。IDを顔の領域だけに局在化するのに便利です。
"Apply PuLID" 出力:
- MODEL: PuLIDのIDカスタマイズが適用された入力モデル。このカスタマイズされたモデルは、他のComfyUIノードで画像生成に使用できます。生成された画像は、プロンプトを使用して制御可能でありながら、IDを描画します。
これらのパラメータを調整することで、IDの忠実度と生成品質の望ましいバランスを達成するためにPuLIDのID挿入を微調整できます。一般に、"neutral" 方式で重み1を使用すると、信頼できる開始点が得られます。その後、結果に基づいて調整できます。start_atとend_atパラメータは、デノイジングでIDがいつ有効になるかをさらに制御でき、attn_maskを使用して効果を局在化するオプションもあります。
詳細については、 をご覧ください。