【LoRA】RTX 3060 Laptop (6GB VRAM) でLoRA学習環境を構築する
はじめに
前回の記事でMac mini M4 Pro(24GB)での学習を予定していたんだけど、諸事情でベースのM4が来てしまった。
さすがにベースM4じゃVRAMが足りなくて学習回せない。そこで、空いてるノートPC(RTX 3060 Laptop / 6GB VRAM)で一晩ぶん回すことにした。
この記事では、Windows 11 + RTX 3060 Laptop(6GB VRAM)でLoRA学習環境を構築する手順をまとめる。6GB VRAMだとSDXLは厳しいので、SD1.5ベースモデル向けの内容になっている。
動作環境
| 項目 | スペック |
|---|---|
| OS | Windows 11 Home |
| GPU | RTX 3060 Laptop (6GB VRAM) |
| ストレージ | 1TB SSD |
1. 基本ツールのインストール
1-1. Git
- URL: https://git-scm.com/download/win
- デフォルト設定でインストール
1-2. Python 3.10.6
※バージョン厳守(他バージョンだとトラブル多い)
- URL: https://www.python.org/downloads/release/python-3106/
- Windows installer (64-bit) を選択
- 「Add Python to PATH」に必ずチェック
1-3. CUDA Toolkit 11.8
- URL: https://developer.nvidia.com/cuda-11-8-0-download-archive
- Windows > x86_64 > 11 > exe (local)
1-4. cuDNN 8.x(CUDA 11.x用)
- URL: https://developer.nvidia.com/cudnn
- NVIDIAアカウント必要
- ダウンロード後、CUDAインストールフォルダに上書きコピー
2. kohya_ss インストール
# 作業フォルダ作成
mkdir D:\AI
cd D:\AI
# クローン
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
# セットアップ実行
.\setup.bat
セットアップ中の質問:
- CUDA version → 11.8
- Install accelerate → Yes
3. ベースモデル配置
配置先: D:\AI\models\
おすすめモデル(漫画・アニメ系)
| モデル | URL |
|---|---|
| Anything V5 | https://civitai.com/models/9409 |
| Counterfeit-V3.0 | https://civitai.com/models/4468 |
4. 学習データ準備
フォルダ構成
D:\AI\datasets\my_character\
└── 10_chara_name\ ← 「繰り返し数_トリガーワード」
├── image001.png
├── image001.txt ← キャプション
├── image002.png
├── image002.txt
└── ...
繰り返し数の目安
- 100枚 × 10回 = 1000ステップ/epoch
- 50枚なら
20_chara_nameで調整
5. キャプションの書き方
基本構造
トリガーワード, 基本属性, 変動要素
具体例
同じキャラ「黒髪ショート、赤目の女の子」の場合:
image001.txt(制服、笑顔)
chara_name, 1girl, short black hair, red eyes, smile, school uniform, white shirt, blue skirt, upper body, simple background
image002.txt(私服、真顔)
chara_name, 1girl, short black hair, red eyes, casual clothes, hoodie, jeans, upper body, outdoor
image003.txt(水着、横顔)
chara_name, 1girl, short black hair, red eyes, swimsuit, bikini, from side, beach, summer
タグの分類
固定タグ(全画像共通)
chara_name← トリガーワード1girlshort black hair← キャラの髪型red eyes← キャラの目の色
変動タグ(画像ごとに変える)
- 服装: uniform, casual, swimsuit…
- 表情: smile, serious, angry…
- 構図: upper body, portrait, full body…
- 背景: simple background, outdoor, indoor…
- ポーズ: standing, sitting, from side…
トリガーワードのコツ
- 既存の単語と被らない造語がベスト
- 例:
mycharaname,xyz_oc,aaa_character - 短すぎると他の概念と混ざる
注意点
| NG | OK |
|---|---|
black_hair | black hair(スペース区切り) |
トリガー,1girl | トリガー, 1girl(カンマ後スペース) |
| 日本語タグ | 英語タグのみ |
6. キャプション自動生成 → 手修正
方法1: WD Tagger(kohya_ss内蔵)
- kohya_ssの Utilities タブ → 「WD14 Captioning」
- 画像フォルダ指定
- 実行 → 各画像に自動でtxtが生成
- 手動で修正:
- 先頭にトリガーワード追加
- キャラ固有の特徴タグを統一
- 不要なタグ削除
方法2: BooruDatasetTagManager
- URL: https://github.com/starik222/BooruDatasetTagManager
- GUIでタグ一括編集できるので便利
作業フロー
- WD Taggerで自動生成(5分)
- BooruDatasetTagManagerで開く
- 全画像に一括でトリガーワード追加
- キャラ固有タグ(髪色、目色)を統一
- 明らかに間違ってるタグを修正
- 保存
7. 画像サイズについて
元画像が大きい場合(2800x2800など)、リサイズ不要。
kohya_ssの enable_bucket を有効にすれば可変サイズのまま学習可能。
設定:
- enable_bucket: ON
- resolution: 512
- bucket_no_upscale: ON
8. 起動
cd D:\AI\kohya_ss
.\gui.bat
ブラウザで http://127.0.0.1:7860 を開く
9. 6GB VRAM用 学習設定
| 項目 | 設定値 |
|---|---|
| Network Rank (Dim) | 32〜64 |
| Network Alpha | 16〜32 |
| Batch Size | 1 |
| Resolution | 512 |
| Epoch | 5前後(様子見て調整) |
| Learning Rate | 1e-4 |
| Optimizer | AdaFactor または Lion |
| Mixed Precision | fp16 |
| Gradient Checkpointing | ✓ ON |
| Cache Latents | ✓ ON |
| enable_bucket | ✓ ON |
| bucket_no_upscale | ✓ ON |
Epochについて: いきなり10とかにせず、まず5で回して出力を確認する。足りなければ追加で回す。データ枚数×繰り返し数が多いと過学習しやすいので、最初は控えめに。
10. 学習データの目安
| 枚数 | 結果 |
|---|---|
| 10〜20枚 | 最低限。特定ポーズに偏りがち |
| 30〜50枚 | 実用レベル |
| 50〜100枚 | かなり良い |
| 100枚以上 | 十分すぎる |
良いデータセットの条件
- 様々な表情
- 様々な服装
- 様々な構図(正面、横、斜め)
- 様々な背景
- 線画のクオリティが安定
- 全身絵が数枚含まれる
- 顔アップも数枚含まれる
11. 3面図の扱い
3面図をそのまま入れると「3面図っぽいレイアウト」も学習してしまう。
対処法: 分割して使う
正面・横・後ろを個別に切り出して別々の画像として入れる。
- キャラの特徴は学習される
- 3面図レイアウトは学習されない
- 実質3枚分の学習データ増える
12. 学習時間の目安
RTX 3060 Laptop / 100枚 / SD1.5ベース:
- 約1〜2時間で完了
トラブルシューティング
CUDA out of memory
- Batch Size を 1 に下げる
- Gradient Checkpointing を ON
- Network Dim を 32 に下げる
Loss が NaN になる
- Learning Rate を下げる(5e-5など)
- Mixed Precision を bf16 に変更
生成結果がぼやける
- 学習不足 → epoch数を増やす
- Network Dim を上げる(64〜128)
キャラが出ない
- トリガーワードをプロンプトに入れ忘れ
- 学習時のトリガーワードとプロンプトが不一致
おわりに
M4 Proはたぶん来年くると思うんで、そんときスペック上げて送って貰おうかと……後編書けるといいなあ。