LoRAとは?仕組み・学習・使い方まで完全ガイド(Stable Diffusion/LLM対応)

LoRAとは何か?
LoRAとは、Low-Rank Adaptation(低ランク適応)の略で、大規模なモデル(例:Stable Diffusion)の重みをすべて再学習するのではなく、一部だけを効率的に調整できる手法です。モデル全体ではなく、小さな追加モジュール(LoRA層)を学習させることで、
GPUリソースが少なくても学習できる
学習時間が短くて済む
微調整(ファインチューニング)がしやすい
という特徴があり、画像生成AIや大規模言語モデルの軽量ファインチューニング技術として広く使われています。



本体モデルに着せ替えアイテムや拡張パックを加えるような感覚で、カスタマイズができます!
LoRAの仕組み
LoRAは「学習元のモデル(base model)」の特定の層に、追加の小さな行列(LoRA層)を挿入します。この行列は初期状態ではゼロに近い値で、元のモデルの動作を邪魔しませんが、学習によって変化し、出力を補正するようになります。
LoRAで出来る事
- 特定のキャラや服装、ポーズに特化したスタイル
- 自分のオリジナルキャラを再現したモデル
- 特定の背景や構図、画風を再現するための補助モデル
LoRAを使うメリット
- **フルファインチューニングに比べてVRAM消費が圧倒的に少ない(8GBでも可能)
- 目的に合わせたモデルを簡単に追加・切り替えできる
- モデル容量が小さい(数十MB〜数百MB)
手法 | 特徴 |
---|---|
**フルファインチューニング | モデル全体を学習。高精度だが時間とVRAMが必要 |
DreamBooth | 人物やキャラに特化。学習に時間がかかることも |
LoRA | 効率よく学習・切替可能。軽量で実用的 |
Textual Inversion | 文字列を新しい概念に対応させる。非常に軽量 |
LoRAの制約・デメリット
高度な表現力や複雑な概念には限界がある(→ DreamBoothやフルファインチューニングが必要)
学習データの質に強く影響される(少量データでも効率的だが、データ品質が重要)
既存モデルの構造に依存する(特定のベースモデルと互換性が必要)
LoRAのファイル形式やサイズ感
ファイル形式:.safetensors
または .pt
サイズ目安:30MB~200MB程度(内容やrankによる)
学習時間:10~60分程度(GPU、**学習ステップ数などによる 後で解説)
※高性能GPU(例:A100やRTX 4090):高速処理が可能で、同じステップ数でも短時間で学習できます。
※低スペックGPU(例:T4やVRAM 8GB以下):メモリ制限や処理速度の関係で、同じ条件でも2倍〜数倍時間がかかることがあります。
RunPodなどでは、A100(VRAM 80GB)であれば10分程度、
ColabでT4(VRAM 16GB)なら20〜40分程度が目安になります(ステップ数500前後)。
設定項目について
※学習の際の設定は、学習する**データセットの内容と、使用するGPUによって設定が変わります。
学習ステップ数とは?
LoRAでいう「ステップ数」とは、「どれくらい強く学ばせるか」の指標で、学習に使うデータのバッチを何回処理するかを指します。
つまり「500ステップ」は「バッチ500回分の学習」を意味します。
用途 | ステップ数の目安(参考) | 備考 |
---|---|---|
単純な表情差分/ポーズ差分 | 50〜200ステップ | LoRA Rankも低めでOK |
キャラクターの顔・髪・服などの一貫性を持たせたい | 200〜400ステップ | 学習画像10〜20枚程度想定 |
オリジナルキャラを強く固定したい | 400〜800ステップ | 学習画像が20〜50枚以上で調整 |
※「ステップ数が多い=強く学習する」ですが、過学習になるリスクも上がります。
画像枚数やバッチサイズ、目的(微調整 or 作風付与)別の具体的な指標
目安1:画像枚数 × エポック数 × バッチサイズ = ステップ数
これがステップ数の基本計算です。
例1:25枚の画像、エポック20、バッチサイズ1
→ 25 × 20 / 1 = 500ステップ
この構成なら ステップ数500は妥当です。
例2:10枚の画像、エポック10、バッチサイズ1
→ 10 × 10 = 100ステップ
これにステップ数500を設定すると、同じ画像を5回繰り返すことになります。
→ 過学習のリスクが高まります。
一般的なステップ数の目安
用途 | 画像枚数の目安 | エポック数 | 合計ステップの目安 |
---|---|---|---|
キャラ特化LoRA(簡易) | 10〜20枚 | 10〜20 | 100〜400 |
作風付与LoRA(軽量) | 30〜50枚 | 10〜15 | 300〜750 |
高精度LoRA(丁寧な作り) | 100枚以上 | 10〜20 | 1000〜2000 |
同じ画像を何度も回すと劣化・崩れやすい(顔が潰れるなど)ため、足りない場合は、「正則化画像(regularization)」で補うことも可能です。
LoRAが使える主なツールとフレームワーク
LoRAは、「学習」フェーズ(LoRAを作る)と「推論/使用」フェーズ(LoRAを使う)で使うツールや目的が異なります。
LoRAの「学習」フェーズ:【画像生成系】(Stable Diffusion関連)
目的:絵柄や特定のスタイル・キャラの特徴をAIに覚えさせる
ツール名 | 特徴 |
---|---|
Kohya_ss | 最も有名なLoRA学習ツール。細かい設定が可能。ColabやRunPodでよく使われる |
sd-scripts | Kohyaのベース。コマンドライン操作が必要で、玄人向け |
ComfyUI (学習向け拡張あり) | ノード式で直感的。LoRA学習用ノードも登場しつつあるが、構築がやや難しい |
Diffusers (Transformers系) | HuggingFaceベースのコードライクな学習。LoRA統合も可能だがやや専門的 |
作ったLoRAを再び学習にかけて、さらに調整したり、別のスタイルを混ぜたりと、再学習(ファインチューニング)も可能です。Kohya_ssなどでは、元のLoRAを初期値として使うことで、そこからさらにデータを加えて再学習できます。
LoRAの「推論/使用」フェーズ:【画像生成系】(Stable Diffusion関連)
ここでは、ツールでLoRAを「読み込み」だけで使用する事を指しています。
目的: 作ったLoRAを使って画像生成する(学習は行わない)
ツール名 | 特徴 |
---|---|
web UI (AUTOMATIC1111) | Stable Diffusion定番UI。LoRAの読み込みに対応(<lora:name:weight> など) |
ComfyUI | ノード式でLoRAを差し込むノードがある(LoRA Loaderなど) |
InvokeAI / Fooocus | 一部LoRAに対応しているツールも増えている |
Stable Diffusion XL 対応UI | SDXL対応版はLoRA Block Weight など専用ノードが必要なことも |
【言語モデル系(LLM)】
フレームワーク | 主な用途 | 備考 |
---|---|---|
PEFT (Hugging Face) | LLM向けのLoRA学習ライブラリ。 | ChatGPTのようなLLMにもLoRAが使われる |
QLoRA | メモリ節約型LoRA。GPUが小さくても学習可能。 | LLM学習の省リソース化に最適 |
Axolotl | LLaMA系のLoRA微調整に使われる。 | GPUクラスタでも使える学習基盤 |
OpenVINO / ONNX | エッジ端末でのLoRA適用に対応。 | 展開用途に適している |
LoRAの使い分け例(画像・言語モデル)
タイプ | 使用目的 | 推奨ツール |
---|---|---|
画像生成 | キャラ特化・画風学習 | Kohya_ss、sd-scripts |
画像生成 | LoRAモデルのテスト・合成 | A1111、ComfyUI |
文章生成(LLM) | 文章スタイル・応答の調整 | PEFT、QLoRA、Axolotl |
音声・動画系 | 試験的導入が進行中 | まだ一般向けツールは少ない |
LoRAを組み合わせる活用例
活用パターン | 説明 |
---|---|
複数LoRAの組み合わせ | 「キャラLoRA」+「画風LoRA」+「構図LoRA」などをA1111などで合成使用 |
管理ツールとの併用 | LoRA Manager拡張などで効率的に切り替え・比較 |
LoRA強度(weight)調整 | <lora:name:0.6> のように、生成時に強度を調整可能(ComfyUIでも可) |
類似手法
Stable Diffusionモデルに新しい情報(人物・スタイル・キャラクターなど)を学習させるためのLoRA系の軽量学習手法(ファインチューニング手法)
手法名 | 概要 | 備考 |
---|---|---|
LoRA | モデルの重みの一部(特定の層)にだけ低ランク行列を追加して学習 | 現在の主流、非常に軽量 |
LyCORIS | LoRAの拡張版。複数の変換方法を組み合わせて柔軟性を向上 | より精細なチューニングが可能 |
LoHa / LoCon | LyCORISに含まれる手法。LoRAよりも学習が安定しやすいことがある | 画像ジャンルによって相性がある |
Dylora(Dynamic LoRA) | LoRAを層ごとに動的に使い分ける発展型 | 学習の柔軟性が高いがやや複雑 |
LoRA系は「後から読み込み式(追加モジュール)」で、WebUIやCivitaiで多用されています。