Stable Diffusion LoRAの作り方と手順を徹底解説!2026年最新版
ヨミアゲAI編集部
AI音声・動画制作に関する情報をお届けします
Stable Diffusion LoRA作成の現状と準備(2026年5月時点)
2026年5月現在、Stable DiffusionにおけるLoRA (Low-Rank Adaptation) は、特定のスタイルやキャラクター、概念をベースモデルに効率的に追加するための最も強力な手法の一つとして確立されています。従来のフルファインチューニングと比較して、学習リソースが格段に少なく、ファイルサイズも小さい(通常10MB〜300MB程度)ため、個人でのカスタマイズが容易になっています。
LoRA作成には、適切なハードウェアとソフトウェア環境の準備が不可欠です。特にGPUメモリは重要な要素となります。
| カテゴリ | 推奨スペック/ツール | 補足 |
|---|---|---|
| GPU | NVIDIA GeForce RTX 3060 (12GB VRAM) 以上 | SDXLベースのLoRA作成にはRTX 4080 (16GB VRAM) 以上が強く推奨されます。 |
| OS | Windows 10/11 または Linux | WSL2 (Windows Subsystem for Linux 2) も選択肢となります。 |
| Python | 3.10.x | 依存関係の競合を避けるため、仮想環境の利用を推奨します。 |
| 学習ツール | Kohya_ss GUI (2026年5月時点の最新版) | 最も広く利用されており、豊富な設定オプションと高い安定性を誇ります。 |
| 依存ライブラリ | PyTorch, Diffusers, Accelerateなど | Kohya_ssのインストール時に自動で導入されます。 |
| ベースモデル | Stable Diffusion 1.5, Stable Diffusion XL (SDXL) | 学習させたいLoRAのベースとなるモデル。 |
💡 ポイント: 高性能なGPUを所有していない場合でも、Google Colab ProやRunPodなどのクラウドGPUサービスを利用することで、LoRA学習環境を構築できます。Colab Proは月額9.99ドルから利用可能で、RTX A100などの高性能GPUにアクセスできる場合があります。
LoRA学習データセットの準備
LoRAの品質は、学習に用いるデータセットの質と量に大きく依存します。以下のステップで慎重に準備を進めましょう。
ステップ1: 画像収集と選定
学習させたい対象(キャラクター、スタイル、物体など)を表現する画像を収集します。
- 枚数: 最低10枚、推奨は20〜30枚です。枚数が少ないと過学習しやすく、多すぎると学習に時間がかかり、特徴がぼやける可能性があります。
- 多様性: 対象の様々なポーズ、表情、角度、背景、ライティングの画像を均等に集めましょう。特定のシチュエーションに偏ると、そのシチュエーションでしか機能しないLoRAになりがちです。
- 解像度: Stable Diffusion 1.5系では512x512、SDXL系では1024x1024の画像が一般的です。アスペクト比は1:1が推奨されますが、縦長・横長の画像も適切にリサイズ・クロップすることで利用可能です。
ステップ2: 画像の前処理
収集した画像を学習に適した形式に整えます。
- リサイズとクロップ: 全ての画像を統一された解像度とアスペクト比に調整します。例えば、512x512にリサイズする際、中心をクロップするか、アスペクト比を維持して余白を追加するかなどを検討します。
- 背景除去: キャラクターLoRAの場合、背景が邪魔になることがあります。専門のツールやサービス(例: remove.bg)で背景を除去し、透過画像にするか、単一色の背景に置き換えることで、キャラクターの特徴学習を促進できます。
ステップ3: キャプション(タグ)の作成
各画像に、その画像の内容を説明するテキスト(キャプション)を付与します。これはLoRAが何を学習すべきかを指示する重要な情報です。
- 自動キャプション: BLIP, DeepBooruなどのツールや、Kohya_ss GUIに内蔵されているキャプションツールを利用して、画像を自動で分析しキャプションを生成します。
- 手動修正と追加: 自動生成されたキャプションは完璧ではありません。過不足がないか確認し、特に学習させたい特徴(例:
blue eyes,long blonde hair,wearing a specific uniform)を具体的に追加・修正します。不要なタグは削除しましょう。 - 繰り返し回数 (Repetition): データセットフォルダの構造で、画像ファイルを入れるサブフォルダ名に繰り返し回数(例:
10_mycharacter)を指定できます。これは学習時のエポック数を調整するのに役立ちます。
⚠️ 注意: キャプションに誤りが多いと、LoRAが意図しない特徴を学習したり、学習がうまくいかなかったりする原因になります。手間を惜しまず、正確で詳細なキャプションを心がけましょう。
Kohya_ss GUI を用いたLoRA学習手順
Kohya_ss GUIは、Stable Diffusion LoRA学習のデファクトスタンダードツールです。ここでは、その基本的な操作手順を解説します。
ステップ1: 環境構築とKohya_ssのインストール
- GitとPythonのインストール: 事前に最新版のGitとPython 3.10.xをインストールします。
- Kohya_ssリポジトリのクローン: コマンドプロンプトまたはターミナルで以下のコマンドを実行し、リポジトリをダウンロードします。
git clone https://github.com/Kohya-ss/sd-scripts.git cd sd-scripts - 依存関係のインストール:
pip install --upgrade pip pip install -r requirements.txt - Accelerateの設定: GPU学習のためにAccelerateを設定します。
ほとんどの質問に対してデフォルト(Enter)で問題ありませんが、「This machine is a notebook?」にはaccelerate configNoを、「Do you want to use DeepSpeed?」にはNoを選択するのが一般的です。
ステップ2: 学習設定の構成
- Kohya_ss GUIの起動:
sd-scriptsディレクトリ内で以下のコマンドを実行します。
ブラウザでGUIが開きます。python gui.py - LoRAタブの選択: 「LoRA」タブを選択します。
- 基本設定:
Source model: ベースとなるStable Diffusionモデルのパスを指定します(例:C:\sd\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors)。LoRA model name: 出力されるLoRAファイルの名前を設定します(例:mycharacter_v1)。Training images folder: ステップ2で準備したデータセットのルートフォルダを指定します。Output folder: 学習済みLoRAが出力されるフォルダを指定します。
- 詳細設定:
Network Rank (Dimension): LoRAの表現力を決定します。推奨は64〜128です。高すぎると過学習しやすく、低すぎると表現力が不足します。Learning rate: 学習の進み具合を調整します。一般的に、Unet:1e-5、Text Encoder:5e-6程度が推奨されます。Batch size: 一度に処理する画像の枚数です。GPUメモリに応じて調整します(例: 1〜2)。GPUメモリが少ない場合は1に設定します。Epochs: データセット全体を何回学習させるかです。通常5〜15程度で開始し、結果を見て調整します。Optimizer: 学習アルゴリズムです。AdamW8bitが最も一般的で、メモリ効率が良いとされています。Resolution: データセットの解像度と合わせます(例:512,512または1024,1024)。
ステップ3: 学習の実行
- 全ての設定を確認後、GUI下部の「Start training」ボタンをクリックします。
- コンソール画面に学習の進捗が表示されます。
- 学習時間は、データセットの枚数、GPUスペック、Epochs数によって大きく変動します。例えば、RTX 3060 (12GB)で20枚の画像、10Epochsの場合、約5〜8時間かかることがあります。
⚠️ 注意: 学習中にGPUメモリ不足のエラーが発生した場合、
Batch sizeを減らす、Resolutionを下げる、またはNetwork Rankを下げるなどの対策が必要です。
学習済みLoRAの評価と最適化
学習が完了したら、生成されたLoRAが期待通りに機能するかを評価し、必要に応じて設定を調整して再学習を行います。
ステップ1: 推論(生成)による評価
- 生成されたLoRAファイルをStable Diffusion Web UI (Automatic1111など) のモデルフォルダ(例:
stable-diffusion-webui/models/Lora)に配置します。 - Web UIを起動し、ベースモデルを選択後、プロンプトにLoRAを適用する構文(例:
<lora:mycharacter_v1:1.0>)を追加します。 - 様々なプロンプトとネガティブプロンプトで画像を生成し、LoRAの動作を確認します。特に、
LoRA Weight(LoRAの適用強度) を0.6〜1.0の範囲で調整しながら試すと良いでしょう。
ステップ2: 過学習・未学習の判断
評価結果に基づき、LoRAが適切に学習されたかを判断します。
- 過学習: LoRAがオリジナル画像に似すぎている、多様なポーズや表情を生成できない、特定のプロンプトで画像が崩壊する、といった症状が見られます。
- 未学習: LoRAの特徴が画像にほとんど反映されない、ベースモデルと生成結果に大きな差がない、といった症状が見られます。
ステップ3: 最適化のヒント
- 過学習の場合:
Network Rankを下げる。Learning rateを下げる。Epochsを減らす。- データセットの多様性を増やす(より多くの異なる画像を収集する)。
- キャプションから過度に具体的なタグを減らす。
- 未学習の場合:
Network Rankを上げる。Learning rateを上げる。Epochsを増やす。- キャプションをより詳細かつ正確にする。
- データセットの質を見直す(低品質な画像を除外する)。
これらの手順を繰り返し、理想的なLoRAを作成してください。