はじめに

前回の記事では、 キャラクターLoRAの作り方を実践的に解説しました。
「推奨値で学習してみたけど、もっと品質を上げたい」
「パラメータの意味がわからないまま使っている」── そんな方のための記事ですわ。

この記事では、
各パラメータが結果にどう影響するかを、 たとえ話や比較表を使って丁寧に解説します。
理屈を理解すれば、自分の目的に合った設定を自力で見つけられるようになります。

📝 この記事でわかること
  • Network Rank(DIM)と Alpha の関係
  • 学習率(Learning Rate)の設定と影響
  • LRスケジューラの種類と選び方
  • Epoch・バッチサイズの計算方法
  • オプティマイザの比較と選択
  • その他の重要設定(Mixed Precision、xformersなど)
  • パラメータ早見表

第1章:Network Rank(DIM)と Alpha

LoRAの品質に最も大きく影響するのが、この2つのパラメータです。

🎨 Network Rank(DIM)とは?

Rankは、LoRAの「表現力の広さ」を決めるパラメータです。

🎨 たとえ話

Rankは「絵を描くときの色鉛筆の本数」に似ています。
4色しかなければ簡素な絵しか描けませんが、128色あれば非常に細かい表現が可能です。
ただし、色鉛筆が多すぎると整理が難しくなり、描くのに時間もかかりますわ。

Rankの値と影響

Rank ファイルサイズ 表現力 向いている用途 リスク
4〜8 小(数MB) 低い 簡単なスタイル、色調変更 学習不足になりやすい
16〜32 中(10〜50MB) 適度 キャラクターLoRA(推奨✅) バランスが良い
64 大(50〜100MB) 高い 複雑なキャラ / 高精度要求 過学習に注意
128 特大(100MB〜) 非常に高い 特殊な要件のみ 過学習リスク大
4
8
16〜32 ✅
64
128

🛡️ Network Alpha とは?

Alphaは学習の「ブレーキの強さ」を決める正則化パラメータです。
専門的には、LoRAの出力にかけるスケーリング係数です。

Alpha の計算式:
  実効学習率 = 学習率 × (Alpha / Rank)

例:
  Rank=32, Alpha=16 の場合: スケール = 16/32 = 0.5
  Rank=32, Alpha=32 の場合: スケール = 32/32 = 1.0(正則化なし)
  Rank=32, Alpha=1  の場合: スケール = 1/32  = 0.03(非常に穏やか)

📉 Alpha が低い(1〜Rank/4)

  • 学習がとても穏やか
  • 過学習しにくい
  • キャラの特徴が薄くなりがち
  • 多くのEpochが必要

📈 Alpha が高い(Rank/2〜Rank)

  • 学習が速い
  • キャラの特徴がしっかり出る
  • 過学習しやすい
  • 少ないEpochで済む
💡 結論:Alpha はRankの半分にしておけば安心

Alpha = Rank ÷ 2 が最も安定した設定です。
例えば Rank=32 なら Alpha=16。迷ったらこれで問題ありませんわ。

第2章:学習率(Learning Rate)

学習率(Learning Rate / LR)は、1回の学習ステップで どのくらい大きく重みを更新するかを決めるパラメータです。

🎨 たとえ話

学習率は「歩幅」のようなものです。 大きな歩幅で走れば早く目的地に着けますが、
最適な場所を通り過ぎてしまうかもしれません。 小さな歩幅で慎重に歩けば正確ですが、時間がかかりすぎます。

📊 3つの学習率

LoRA学習では、以下の3つの学習率を個別に設定できます。

パラメータ 対象 推奨値 役割
Learning Rate 全体 1e-4 基本の学習率。UNet/TE LRが未設定の場合に使用
UNet LR UNet
(画像生成エンジン)
1e-4 画像の見た目(色、形、構造)を学習する部分
Text Encoder LR テキストエンコーダ 5e-5 プロンプト(テキスト)の理解を学習する部分

学習率の影響(UNet LR)

学習率 学習速度 品質 リスク
1e-5 非常に遅い 細かい調整向き 学習不足になりやすい
5e-5 やや遅い 安定した品質 多めのEpochが必要
1e-4 適度 良好 バランスが良い
5e-4 速い やや不安定 過学習・色のノイズ
1e-3 非常に速い 不安定 画像の破綻リスク大
💡 Text Encoder LR の設定ポイント
  • UNet LRの半分(5e-5)が安定 ✅
  • 0 に設定 → テキストエンコーダを学習しない(トリガーワードが効きにくくなる)
  • SDXLはテキストエンコーダが2つあるので、配列で指定: [5e-5, 5e-5]

第3章:LRスケジューラとウォームアップ

📉 LRスケジューラとは?

スケジューラは、学習の進行に合わせて学習率を自動的に変化させる仕組みです。
料理にたとえるなら、「最初は強火で表面を焼き、その後は弱火でじっくり」という火加減の調整ですわ。

constant
━━━━
ずっと同じ学習率
シンプルだが最適化されにくい
linear
╲━━
直線的に減少
予測しやすい
cosine_with_restarts
∿∿∿
定期的に学習率をリセット
局所最適解の脱出に有利
スケジューラ 挙動 向いている状況
constant 終始一定 Prodigy等の自動調整オプティマイザと組み合わせ
linear 直線的に0へ 短いEpochでの学習
cosine 最初は速く、
終盤はゆっくり減少
ほとんどのLoRA学習(推奨)
cosine_with_restarts cosineを繰り返す 長いEpoch、局所最適解の回避

🔥 LRウォームアップ

ウォームアップは、学習開始時に学習率をゆっくり上げていく期間のことです。
いきなり全力で走るとケガをするように、AIもいきなり高い学習率で始めると不安定になります。

設定値 意味 推奨
0 ウォームアップなし 短い学習には不要
0.1 全ステップの10%をウォームアップに 推奨値
0.2 全ステップの20% 非常に慎重な学習

第4章:Epoch・バッチサイズ・繰り返し数

📐 総ステップ数の計算

学習の「量」を理解するには、総ステップ数を把握することが重要です。

計算式:
  総ステップ数 = (画像枚数 × 繰り返し数 × Epoch数) ÷ バッチサイズ

例: 24枚、繰り返し10、Epoch 10、バッチ1の場合:
  (24 × 10 × 10) ÷ 1 = 2,400 ステップ

例: 50枚、繰り返し5、Epoch 15、バッチ2の場合:
  (50 × 5 × 15) ÷ 2 = 1,875 ステップ

🔄 Epoch(エポック)

Epochは、全学習画像を一巡学習する回数です。

Epoch数 特徴 使いどころ
5以下 少なめ。学習不足になりやすい 大量の画像(100枚以上)
10 標準的。バランスが良い 20〜50枚の画像
15〜20 多め。高精度だが過学習リスク 少ない画像(10枚以下)
💡 ベストプラクティス

Epochを多め(10〜15)に設定して、save_every_n_epochs = 1 で毎Epoch保存。
あとから比較して最適なEpochを選ぶのが最も確実な方法ですわ。

📦 バッチサイズ

バッチサイズは、一度に何枚の画像を同時に学習するかの設定です。

📦 バッチサイズ = 1

  • VRAM消費: 少ない(8〜10GB)
  • 学習のノイズ: やや多い
  • 向いている: VRAM 8〜12GBのGPU

📦 バッチサイズ = 2〜4

  • VRAM消費: 多い(14〜24GB)
  • 学習の安定性: 高い
  • 向いている: VRAM 16GB以上のGPU
📝 Gradient Accumulation で擬似バッチサイズ

VRAMが足りないけどバッチサイズを大きくしたい場合、
Gradient Accumulation Stepsを使えます。 例えば batch_size=1, accumulation=2 にすると、
VRAMはバッチ1のまま、効果はバッチ2相当になりますの。

🔁 繰り返し数(フォルダ名の数字)

画像枚数 推奨繰り返し 理由
10〜20枚 10 十分なステップ数を確保するため
30〜50枚 5〜8 画像が多いので繰り返しは少なめ
50枚以上 3〜5 繰り返しが多すぎると過学習に

第5章:オプティマイザの選択

オプティマイザ(Optimizer / 最適化アルゴリズム)は、 学習率をもとにどのようにパラメータを更新するかを決めるアルゴリズムです。

🎨 たとえ話

目的地への移動方法に似ています。 AdamWは「カーナビ付きの車」── 安定して速い。
AdamW8bitは「カーナビ付きの軽自動車」── 同じ精度で燃費が良い。
Prodigyは「自動運転車」── 速度(学習率)を自分で調整してくれますわ。

AdamW

メモリ:
品質: ★★★★★
特徴: 最も信頼性が高い標準アルゴリズム
注意: VRAM消費が最も大きい

Lion

メモリ:
品質: ★★★★☆
特徴: Google発。高速収束。LRを1/3〜1/10に下げる必要あり
注意: 学習率の調整が必要

Prodigy

メモリ:
品質: ★★★★☆
特徴: 学習率を自動調整。LR=1で使える
向き: 学習率チューニングが面倒な方

DAdaptAdam

メモリ:
品質: ★★★☆☆
特徴: 学習率を自動調整(Prodigyの前身)
注意: Prodigyの方が新しく性能も上
🎯 選び方フローチャート
  • 🔰 初心者・とりあえず使いたい → AdamW8bit
  • 🎯 学習率のチューニングが面倒 → Prodigy(LR=1, scheduler=constantで)
  • 💎 VRAM に余裕がある + 最高品質 → AdamW
  • ⚡ 高速収束したい → Lion(LRは通常の1/10に)

第6章:その他の重要設定

🔧 Mixed Precision(混合精度)

計算の精度を下げてメモリを節約する設定です。

設定 精度 VRAM消費 特徴
no fp32(全精度) 最大 最高精度だがVRAM大量消費
fp16 半精度浮動小数点 約半分 ほとんどの環境で推奨
bf16 bfloat16 約半分 RTX 30xx/40xx向け。fp16より安定する場合あり

⚡ xformers

Attention(注意機構)の計算をメモリ効率よく高速化するライブラリです。
常にONにしておくことを推奨します。 ONにすると、VRAM消費が20〜40%削減され、学習速度も向上します。

📦 Gradient Checkpointing(勾配チェックポイント)

Gradient Checkpointingは、VRAMの消費を大幅に削減するための機能です。
通常の学習では、途中の計算結果をすべてVRAMに保存しておく必要がありますが、 この機能をONにすると途中経過を一部捨てて、必要なときに再計算するようになります。

🎨 たとえ話

料理にたとえるなら、通常は「下ごしらえした材料をすべてキッチンに広げておく」方法です。
Gradient Checkpointingは「冷蔵庫にしまっておいて、使うときに取り出す」方法ですの。
キッチン(VRAM)は狭くても済みますが、取り出す手間(再計算)が増えるので少し時間がかかります。

✅ ONにする場合

  • VRAMを30〜50%節約できる
  • VRAM 8〜12GBのGPUでSDXL学習が可能に
  • 学習速度は10〜30%低下

❌ OFFのままにする場合

  • 学習速度は最速
  • VRAMに余裕がある場合はOFFで問題なし
  • VRAM 16GB以上推奨
💡 いつONにすべき?
  • 学習中にCUDA out of memory(メモリ不足)エラーが出たとき → まずこれをON
  • SDXL + VRAM 12GB以下の環境 → ONにしないと学習できない場合が多い
  • VRAM 16GB以上で余裕がある → OFFのままで速度優先

VRAMが足りないときの最初の切り札として覚えておきましょう。 xformersと併用するとさらに効果的ですわ。

💾 Cache Latents

VAE(画像のエンコード/デコード)の出力をキャッシュして、
2回目以降のEpochで再計算を省略する設定です。
ONにすると学習速度が向上し、VRAM消費も多少減ります。
デメリットはほぼないので常にONで問題ありません。

🪣 Bucket(バケット機能)

異なるサイズの画像を効率的に学習するための機能です。 すべての画像を完全に同じサイズに
リサイズしなくても、 Bucket機能が自動的に近いサイズのグループにまとめてくれます。

設定 推奨値 説明
Enable Bucket ✅ ON 異なるサイズの画像に対応
Bucket reso steps 64 バケットの解像度ステップ
Bucket no upscale ✅ ON 小さい画像を拡大しない(品質維持)

✂️ Clip Skip

CLIPテキストエンコーダの最後から何層をスキップするかの設定です。

モデル 推奨値 理由
SD 1.5 2 アニメ系モデルではSkip 2が主流
SDXL 1 SDXLではデフォルトの1が推奨

🌊 Noise Offset

学習時にノイズにオフセットを加える設定です。 これをONにすると、
非常に明るい・非常に暗い画像の生成品質が向上します。 値は 0.05〜0.1 が推奨です。
特に暗いシーンのイラストを生成する予定がなければ、設定しなくても問題ありません。

まとめ

📋 パラメータ早見表

パラメータ 推奨値 ひとこと
Network Rank (DIM) 32 キャラLoRAの標準。迷ったらこれ
Network Alpha 16 Rankの半分
Learning Rate 1e-4 全体の学習率
UNet LR 1e-4 画像生成部分
Text Encoder LR 5e-5 UNetの半分
Optimizer AdamW8bit 初心者に最もおすすめ
LR Scheduler cosine 最も人気
LR Warmup 0.1 全ステップの10%
Epoch 10 毎Epoch保存して比較
Batch Size 1 VRAMに余裕あれば2
Mixed Precision fp16 ほぼ必須
xformers ON 常にON
Cache Latents ON 常にON
Gradient Checkpointing VRAM不足時にON VRAM節約の切り札
Clip Skip SD1.5: 2 / SDXL: 1 モデルに合わせる
📋 この記事のまとめ
  • Rank = LoRAの表現力。キャラLoRAなら32が最適
  • Alpha = 学習のブレーキ。Rankの半分(16)が安定
  • 学習率 = UNet 1e-4, TE 5e-5 がバランス◎
  • スケジューラ = cosine が最も人気で安定
  • オプティマイザ = AdamW8bit(初心者推奨)or Prodigy(自動調整)
  • Epoch = 多めの設定 + 毎Epoch保存 → あとから選ぶ
  • パラメータに正解はない。推奨値で始めて、結果を見て微調整
📖 関連記事
📚 参考資料

❀ この記事が役に立ったら

サイト運営のモチベーションになります。よろしければ応援お願いします!

❀ お布施する(OFuse)