← 記事一覧へ戻る
LoRA自作入門(Kohya SS):自分だけのキャラ・画風LoRAを一から作る方法 のサムネイル

LoRA自作入門(Kohya SS):自分だけのキャラ・画風LoRAを一から作る方法

Kohya SSを使ったLoRA学習の入門ガイド。学習データの準備・キャプション・設定のポイント・よくある失敗と対処法まで、初めてLoRAを作る方向けに手順をわかりやすく解説します。

はじめに:既存LoRAでは出せない「自分だけの表現」を作る

Civitaiには膨大な数のLoRAが公開されていますが、「好みのキャラクターのLoRAがない」「特定の画風を再現できるLoRAが見つからない」という状況は必ず訪れます。そこで重要になるのが LoRAの自作です。

自分でLoRAを作れると、オリジナルキャラクターのLoRA、自分の好みに特化した画風LoRA、特定の衣装・シチュエーション用LoRAなど、Civitaiには存在しない表現が可能になります。

本記事では、Kohya SS(kohya-ss/sd-scripts)を使ったLoRA学習の入門手順を解説します。

関連記事:LoRAの選び方2026


LoRA学習に必要な環境

VRAM要件

VRAM学習可能なモデル推奨バッチサイズ
8GBSD1.5系LoRA1
12GBSD1.5 / SDXL(要最適化)1〜2
16GBSDXL系LoRA1〜2
24GBSDXL系LoRA2〜4

VRAM 8GBでも --gradient_checkpointing--xformers を使えばSD1.5系のLoRA学習が可能です。SDXL(Illustrious/NoobAI)のLoRAを作るなら12〜16GB以上を推奨します。

推奨環境

  • Python 3.10.x
  • CUDA 11.8 または 12.1
  • PyTorch 2.x
  • Windows 10/11 または Linux

Kohya SSのセットアップ

インストール手順(Windows)

# 1. リポジトリのクローン
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss

# 2. 仮想環境の作成と有効化
python -m venv venv
venv\Scripts\activate

# 3. 依存関係のインストール(GUIスクリプトを使用)
.\setup.bat

setup.bat を実行すると必要なパッケージが自動インストールされます。

GUIの起動

.\gui.bat

ブラウザで http://localhost:7860 が開きます。これがKohya SSのGUIです。


データセットとキャプション準備のイメージn*参考イメージ:学習前のデータ準備フロー*n

学習データの準備

学習データの品質がLoRAの品質を直接決めます。ここが最も重要なステップです。

画像枚数の目安

LoRAの種類推奨画像枚数
キャラクターLoRA15〜30枚
スタイルLoRA30〜100枚
衣装・物体LoRA10〜20枚
NSFWシーン特化20〜50枚

少なすぎると汎化性能が低下し、多すぎると学習が不安定になります。まずは20枚程度から試してみましょう。

画像の品質基準

  • 解像度:512×512以上(推奨:768×768〜1024×1024)
  • 品質:ぼやけ・ノイズ・著しい崩れがないもの
  • 多様性:同一ポーズ・表情のみにならないよう、バリエーションを持たせる
  • NSFWLoRA:ターゲットのシーン・衣装・ポーズを幅広くカバーする

フォルダ構成

training_data/
└── 20_character_name/    # 数字 = 繰り返し回数、文字列 = trigger word
    ├── image_01.png
    ├── image_01.txt       # キャプションファイル
    ├── image_02.png
    ├── image_02.txt
    └── ...

フォルダ名の先頭の数字(20)は、1エポックあたりその画像を何回使うかを示します。画像が少ない場合は大きくして補います。


キャプション(タグ付け)の方法

キャプションは各画像に対応する .txt ファイルで、画像の内容を説明するタグを記述します。

WD14 Taggerを使った自動タグ付け

Kohya SSにはWD14 Taggerが統合されており、自動でDanbooruタグを付けられます。

  1. Utilities タブ → WD14 Captioning
  2. 画像フォルダを指定
  3. Caption extension.txt に設定
  4. Run captioning を実行

手動でキャプションを編集する

自動タグ付けの後、不正確なタグを修正します。特に重要なポイント:

  • Trigger wordを一番先頭に入れる(キャラ名など)
  • 学習させたくない特徴(背景など)はタグから削除
  • LoRAに覚えさせたい特徴は残す・追加する
mycharacter, 1girl, long hair, blue hair, red eyes, white shirt, ...

キャプション設計のコツ

  • キャラLoRA:キャラの固有特徴(髪色・目色・トレードマーク)はあえてキャプションに含めない(または trigger word にまとめる)ことで、LoRAがその特徴を「覚える」
  • スタイルLoRA:スタイル名を trigger word にし、コンテンツタグ(キャラ・背景など)は細かく書く
  • NSFWLoRA:NSFWコンテンツタグを明示的に含める

Kohya SS の主要設定解説

GUIの LoRA タブで設定します。

基本設定

パラメータ推奨値(SD1.5)推奨値(SDXL)説明
network_dim32〜6432〜64LoRAのランク。高いほど表現力が上がるがファイルサイズも増加
network_alphadimの半分〜同値dimの半分〜同値学習率のスケール調整
learning_rate1e-45e-5〜1e-4学習率。高すぎると崩れる
lr_schedulercosine_with_restartscosine_with_restarts学習率スケジューラー
max_train_steps1500〜30002000〜4000総学習ステップ数
train_batch_size1〜21バッチサイズ

推奨オプション

  • --gradient_checkpointing:VRAM節約
  • --xformers:高速化
  • --save_every_n_steps=500:途中保存(過学習確認用)

キャラクターLoRAの学習手順

  1. 画像フォルダを用意(15〜30枚)
  2. WD14 Taggerで自動タグ付け
  3. trigger word(例:mycharacter)をキャプション先頭に追加
  4. キャラの固有特徴タグ(髪色・目色等)をキャプションから削除
  5. Kohya SS設定:network_dim=32, learning_rate=1e-4, max_train_steps=2000
  6. 学習を開始し、500ステップごとに中間チェック

学習中は定期的に生成テストを行い、過学習(見本画像に引っ張られすぎる状態)を確認します。


スタイル・画風LoRAの学習手順

スタイルLoRAはキャラLoRAとは設計思想が異なります。

  • 画像枚数:30〜100枚(スタイルの多様性が重要)
  • キャプション:コンテンツタグを詳しく書き、スタイルタグ(trigger word)のみ一貫させる
  • network_dim:64〜128(スタイルはより多くの情報が必要)
  • 学習ステップ:3000〜5000(多め)
mystyle, 1girl, long hair, smile, casual clothes, park background

NSFW向けLoRA学習のコツ

NSFWLoRAを作る場合の追加ポイントです。

データセット選び

  • ターゲットシーンを幅広くカバーする(多様なポーズ・アングル)
  • 品質の低い画像は学習精度を下げるため除外
  • 最低でも20枚、可能なら40〜50枚確保

タグ設計

NSFWタグをキャプションに明示的に含めます。ただし、trigger word を使って「通常の生成には影響しない」設計にすることを推奨します。

my_nsfw_trigger, rating:explicit, nude, [ポーズ・シーンのタグ]

trigger word なしでは動かないようにすることで、通常の生成への干渉を防ぎます。


よくある失敗パターンと対処法

失敗1:過学習(サンプル画像をそのままコピーするような出力になる)

原因:学習ステップが多すぎる、または学習率が高すぎる 対処:ステップ数を減らす(500〜1000ステップ試す)。学習率を半分に下げる

失敗2:崩れが激しい

原因:学習率が高すぎる、またはデータセットの品質が低い 対処learning_rate=5e-5 まで下げる。品質の低い画像を除外する

失敗3:汎化性能が低い(trigger word なしでも反応してしまう)

原因:キャプションに固有特徴が残っていてLoRAが汎化できていない 対処:キャラの固有特徴をキャプションから削除する

失敗4:VRAMが足りない

対処--gradient_checkpointing を有効化。バッチサイズを1に。--cache_latents を使う


学習カーブ監視のイメージn*参考イメージ:loss推移を見ながら調整する場面*n

学習結果の評価と調整

学習したLoRAは重みを 0.5〜1.0 の範囲で試して、効果と安定性のバランスを確認します。

<lora:my_lora:0.7>, trigger_word, 1girl, ...

500ステップ、1000ステップ、2000ステップなどの中間保存を比較して、最適なステップ数を特定しましょう。多くの場合、「ちょうどいい」ポイントは最大ステップより手前にあります。

広告バナー