ComfyUI LoRA 3枚重ねで崩れる原因とweight配分の対処法

ComfyUI LoRA 3枚重ねで崩れる原因とweight配分の対処法

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。

ComfyUI で LoRA を 3 枚重ねたとき、weight の合計が 1.5 を超えたあたりから肌の色が崩れたり、手のプロポーションがおかしくなったり、全体が焼けたようなノイズ状になったりする。この記事では、その原因と、3 枚同時使用でも安定した出力を得るための weight 配分・設定手順を、ComfyUI の操作に沿って説明する。

なぜ weight 合計が 1.5 を超えると崩れるのか

LoRA(Low-Rank Adaptation)は、ベースモデルの重みに差分行列を加算することで機能します。ComfyUI の Load LoRA ノードにある model_weight(以下 MW)は、その差分をどれだけ強く反映するかのスケール係数です。

LoRA を 3 枚チェーンすると、各差分がベースモデルに順番に足し合わされます。MW を 0.6 × 3 枚 = 合計 1.8 に設定した場合、元のモデルが学習で獲得したバランスを大きく逸脱した変化量がかかります。LoRA どうしが互いに矛盾する方向の修正を持っていると、その矛盾が画像の崩れとして表れます。

「合計 1.5 を超えたら必ず崩れる」という固定の閾値があるわけではなく、LoRA の種類・ベースモデル・プロンプトの内容によって変わります。実用的な目安として、合計を 1.2〜1.3 以内に収めることを出発点にするのが安全です。

崩れ方の典型パターンを整理します。

症状 考えられる原因
肌がオレンジ・紫に変色する 複数のカラーシフト系 LoRA が重複している
手・顔のプロポーションが崩れる 解剖学的特徴を補正する LoRA どうしが干渉している
全体がノイズ状・「焼けた」表現になる model_weight の合計過多で非線形な破綻が起きている
プロンプトの効きが急に悪くなる clip_weight の累積で CLIP のトークン空間が飽和している

ComfyUI で LoRA を 3 枚チェーンする基本構成

標準的な構成は Load LoRA ノードを直列につなぐ方法です。

[Load Checkpoint]
    ↓ MODEL / CLIP
[Load LoRA #1 — キャラクター系]
    ↓ MODEL / CLIP
[Load LoRA #2 — スタイル系]
    ↓ MODEL / CLIP
[Load LoRA #3 — ディテール・質感系]
    ↓ MODEL / CLIP
[KSampler] / [CLIP Text Encode]

Load LoRA ノードは MODEL と CLIP の両方を受け取り、両方を変換して出力します。上流で変換された MODEL / CLIP が、そのまま次の Load LoRA に渡されます。

チェーンの順番について

影響範囲が広いもの(キャラクター・構図)を上流に、細部を補正するもの(テクスチャ・照明)を下流に置くと破綻しにくい傾向があるとされています。ただし順番の影響はケースバイケースであり、試行して確認するのが確実です。

weight の安全な配分方法

3 枚使う場合の出発点として、次の配分を試してください。

LoRA の役割 model_weight の出発点 clip_weight の出発点
キャラクター(主役) 0.55 〜 0.65 0.8 〜 1.0
スタイル・画風 0.30 〜 0.45 0.5 〜 0.7
ディテール・質感 0.20 〜 0.30 0.3 〜 0.5
合計の目安 0.8 〜 1.3 —

LoRA 作者が推奨 weight を記載している場合はそちらを優先してください。上の数値はあくまで出発点です。

具体的な手順

  1. 単体テスト: 3 枚の LoRA を 1 枚ずつ別々に読み込んで、MW 0.8 で単体の出力を確認する。この段階で崩れる LoRA はベースモデルとの相性が悪い可能性があります。
  2. 2 枚で試す: 主役 LoRA + スタイル LoRA を 2 枚重ねる。合計 MW を 1.0 以内に抑えて出力を確認する。
  3. 3 枚目を追加: ディテール LoRA を追加する。合計 MW が 1.5 を超えるなら、3 枚全体を均等にスケールダウンする。例: 0.6 + 0.5 + 0.4 = 1.5 → 各 ×0.85 → 0.51 + 0.43 + 0.34 ≒ 1.28。
  4. 微調整: 主役の LoRA だけ 0.05〜0.1 ほど上げながら、合計 MW を 1.3 以内に維持する。

clip_weight を model_weight と分けて調整する

clip_weight(CW)は CLIP テキストエンコーダーへの影響度で、MW と独立して設定できます。MW を下げながら CW を使い分けることで、崩れを抑えつつ各 LoRA の概念を生かせます。

スタイル LoRA の CW を下げる

画風の特徴をビジュアルに乗せたいが、プロンプトの効きを残したい場合は、スタイル LoRA の CW を 0.4〜0.6 に抑えます。CW を下げても UNet 側(MW)への影響は維持されるため、画風は残ります。

キャラクター LoRA の CW は維持する

トリガーワードでキャラクターを呼び出す形の LoRA は、CW を下げるとトリガーワードの概念が CLIP に届きにくくなることがあります。キャラクター LoRA の CW は 0.7 以上を維持するのが安全です。

ディテール LoRA の CW は最小限に

テクスチャ・肌質・細部の質感を補強する目的の LoRA は、概念の書き換えをほとんど必要としないため、CW は 0.3〜0.4 で十分機能することが多いです。

LCM-LoRA を使った高速生成(LCM サンプラー / Steps 6 / CFG 1.5)では、LCM-LoRA を MW 1.0 で使用するのが基本構成です。そこにスタイル LoRA を重ねる場合、LCM-LoRA の MW 1.0 が既に合計にカウントされているため、追加する LoRA の MW は 0.3〜0.4 以下に絞るのが現実的です。他の LoRA を組み合わせる際は、この合計 MW の増え方を特に意識してください。

崩れたときの対処順序とチェックリスト

重ねる前に確認すること

  • [ ] 各 LoRA を単体で動かし、MW 0.8 で崩れないことを確認した
  • [ ] 3 枚の model_weight の合計を計算し、1.3 以内に収めた
  • [ ] clip_weight をロールごとに個別に設定した
  • [ ] チェーンの順番を「影響大 → 影響小」にした
  • [ ] LoRA 作者の推奨 weight を確認した

崩れたときの対処順序

  1. MW を全体的に 20% 下げる(例: 合計 1.6 → 1.3)
  2. それでも崩れるなら 3 枚目(ディテール系)を外し 2 枚で試す
  3. スタイル LoRA の CW を 0.3 まで下げる
  4. サンプラーを DPM++ 2M Karras か Euler a に変更する(高 MW に対して比較的安定する傾向があります)
  5. 3 枚の組み合わせに相性の問題がある可能性があるため、別の LoRA への変更を検討する

どうしても 3 枚での安定した出力が得られない場合は、アーキテクチャ自体を変える選択肢もあります。FLUX Dev や Schnell などの FLUX 系モデルでは LoRA の重ね方の特性が SD 系とは異なります。

まとめ

LoRA 3 枚重ねで画像が崩れる主な原因は model_weight の合計過多と clip_weight の累積です。解決の基本は、3 枚の MW 合計を 1.3 以内に抑え、clip_weight をロール別に調整することです。

次に取る行動:3 枚の LoRA をまず 1 枚ずつ単体テストして、それぞれの適正 weight を記録してから重ねる。この手順を省いて組み合わせを探すと、どの LoRA が問題の原因かを特定できず、調整が長引きます。

よくある質問

LoRA の weight の合計はいくつまでが安全ですか?

実用的な目安として合計 1.2〜1.3 以内を出発点にするのが安全です。ただし LoRA の種類やベースモデルによって変わるため、1 枚ずつ単体テストで適正 weight を把握してから組み合わせるのが確実です。

model_weight と clip_weight はどう違いますか?

model_weight は UNet(デノイジングネットワーク)への影響度、clip_weight は CLIP テキストエンコーダーへの影響度です。スタイルをビジュアルに反映しつつプロンプトの効きを残したい場合は clip_weight を下げて調整できます。

LoRA をチェーンする順番を変えると結果は変わりますか?

変わる可能性があります。一般的にはキャラクター・構図系を上流に、テクスチャ・照明系を下流に配置するほうが安定しやすい傾向があるとされています。ただし環境や LoRA の組み合わせによって異なるため、試行して確認するのが確実です。