SD WebUI Forge 実践ガイド — RTX 5070 Ti / waiNSFWIllustrious + LoRA環境向け¶
📁 docs/ai-manga/artifact/20260313_SD_WebUI_Forge_実践ガイド.md
目次¶
1. LoRA学習の基礎¶
1-1. イラストレータースタイルLoRAとは¶
LoRA(Low-Rank Adaptation)は、ベースモデルの重みを直接変更せず、差分の低ランク行列を学習することで特定のスタイル・キャラクター・概念を追加学習する手法。ファイルサイズが小さく(数十〜150MB程度)、waiNSFWIllustrious等のSDXL系モデルと組み合わせて使用する。
1-2. 学習データの準備¶
画像収集の方針¶
- 枚数の目安:キャラクターLoRAで20〜40枚、スタイルLoRAで50〜100枚
- 品質が枚数より重要。「50枚の丁寧にタグ付けされた画像 > 150枚の雑なデータ」
- 多様な角度・ポーズ・衣装・表情を含めること
- 単純な背景・単体被写体が望ましい(複雑な背景・複数人は避ける)
- 解像度は1024×1024px以上(Illustrious/SDXL系の学習解像度に合わせる)
画像前処理¶
- 解像度統一:1024×1024にリサイズまたはクロップ
- 重複・低品質画像の除去
- Bucket(可変アスペクト比)を有効にすることで、縦横比を維持したまま学習可能
タグ付け(キャプショニング)¶
アニメ・イラスト系にはWD14 Taggerが最も適している。kohya_ss/sd-scripts付属のスクリプトで一括処理できる。
# WD14 Tagger v3 による一括タグ付け
python finetune/tag_images_by_wd14_tagger.py \
--batch_size=4 \
--repo_id="SmilingWolf/wd-vit-tagger-v3" \
--onnx \
--use_rating_tags \
--character_tags_first \
--always_first_tags="1girl" \
./dataset/images
- 生成されたタグは必ず手動で確認・修正する(不要タグの削除、トリガーワードの追加)
- トリガーワード(例:
sinon_style)を各キャプションの先頭に追加する - Danbooru形式のタグが標準(
solo, white hair, blue eyes, ...)
1-3. 推奨学習ツール¶
kohya_ss(GUI版)¶
- リポジトリ:https://github.com/bmaltais/kohya_ss
- GUIで設定できるため初心者向け。内部でkohya-ss/sd-scriptsを使用
- Windows/Linux対応、Python仮想環境で動作
kohya-ss/sd-scripts(CLI版)¶
- リポジトリ:https://github.com/kohya-ss/sd-scripts
- コマンドライン・スクリプトベース。自動化・細かい制御に適している
- SDXL専用スクリプト:
sdxl_train_network.py
1-4. SDXL/Illustrious系向け推奨パラメータ¶
| パラメータ | キャラクターLoRA | スタイルLoRA | 備考 |
|---|---|---|---|
| Network Rank (Dim) | 64 | 128 | 複雑なスタイルは128が有効 |
| Network Alpha | 32 | 64 | Rankの半分が標準 |
| 学習率(UNet) | 3e-4 | 2e-4 | UNet:TE = 10:1の比率 |
| 学習率(Text Encoder) | 3e-5 | 2e-5 | UNetの1/10 |
| エポック数 | 10〜15 | 10 | 過学習注意 |
| ステップ数の目安 | 1000〜3000 | 2500〜4500 | |
| Max Resolution | 1024×1024 | 1024×1024 | Illustrious学習解像度に合わせる |
| Mixed Precision | bf16 | bf16 | RTX 50シリーズはbf16推奨 |
| Optimizer | AdamW8bit | AdamW8bit | Prodigyは非推奨(Illustriousとの相性が悪い) |
| Scheduler | cosine | cosine with restarts | |
| clip_skip | 2 | 2 | Illustrious-XL推奨値 |
| --network_train_unet_only | 推奨 | 推奨 | SDXLは2つのTE持ちのため指定推奨 |
スタイルLoRA向け設定例¶
# config_style_lora_sdxl.toml
[general]
enable_bucket = true
min_bucket_reso = 512
max_bucket_reso = 2048
resolution = 1024
[datasets.[[subsets]]]
image_dir = "./dataset/images"
caption_extension = ".txt"
num_repeats = 3
[network_args]
network_module = "networks.lora"
network_dim = 128
network_alpha = 64
[optimizer_args]
optimizer_type = "AdamW8bitDecoupled"
learning_rate = 2e-4
unet_lr = 2e-4
text_encoder_lr = 2e-5
[training_args]
mixed_precision = "bf16"
xformers = true
gradient_checkpointing = true
max_train_epochs = 10
train_batch_size = 2
学習コマンド例(SDXL)¶
accelerate launch sdxl_train_network.py \
--config_file="config_style_lora_sdxl.toml" \
--pretrained_model_name_or_path="./models/waiNSFWIllustrious_v150.safetensors" \
--output_dir="./output/my_style_lora" \
--output_name="my_style_lora_v1" \
--save_model_as="safetensors" \
--network_train_unet_only \
--fused_backward_pass
--fused_backward_pass を使うことで、SDXL学習時のVRAM使用量を約10GBまで削減できる。
1-5. RTX 5070 Ti(16GB VRAM)での最適設定¶
| 設定 | 推奨値 | 効果 |
|---|---|---|
| Train batch size | 2〜4 | 16GBなら2で安定 |
| 解像度 | 1024×1024 | そのまま利用可能 |
| gradient_checkpointing | 有効 | VRAM削減(速度は若干低下) |
| Mixed precision | bf16 | VRAM削減+高速化 |
| xformers | 有効 | Attention計算のVRAM最適化 |
| fused_backward_pass | 有効 | SDXL専用、大幅なVRAM削減 |
| cache_latents | 有効 | VAEの重複計算を回避 |
| cache_text_encoder_outputs | 有効 | TE出力をキャッシュ、学習時の負荷軽減 |
バッチサイズ2 + gradient_checkpointingから始めてVRAM状況に応じて調整する。
2. 便利な拡張機能(ControlNet以外)¶
インストール方法(共通)¶
Forge の Extensions タブ → "Install from URL" → GitHubのURLを貼り付け → Install → Installed タブでApply and restart
2-1. ADetailer(顔・手の自動補正)★最重要¶
- GitHub:https://github.com/Bing-su/adetailer
- 用途:顔・手・体の崩れを自動検出してinpaintingで修正
- SDXLで発生しがちな顔の崩れを生成後に自動修正。実質必須拡張機能
- デノイズ強度0.4〜0.6、元のプロンプトを引き継ぐ設定が標準
2-2. Ultimate SD Upscale(タイル分割アップスケール)¶
- 用途:img2imgのScriptとして動作するタイル分割アップスケーラー
- 通常のSDアップスケールよりタイル間の継ぎ目が少ない
- ADetailerと組み合わせると効果的
2-3. LayerDiffuse(透明背景生成)¶
- GitHub:https://github.com/lllyasviel/sd-forge-layerdiffuse
- 用途:透明背景(PNG with alpha)の画像を直接生成
- キャラクター素材作成・合成用に最適。Forge作者本人が開発
2-4. AnimateDiff(アニメーション生成)¶
- GitHub(Forge専用版):https://github.com/continue-revolution/sd-forge-animatediff
- 用途:生成画像をGIF/MP4アニメーションに変換
- PyTorch >= 2.0.0 が必要(現環境の2.7.0で対応)
2-5. Regional Prompter(領域別プロンプト)¶
- GitHub:https://github.com/hako-mikan/sd-webui-regional-prompter
- 用途:キャンバスの特定領域に異なるプロンプトを適用
- 複数キャラクターのシーン・背景と前景の独立制御に有用
2-6. Style Components(SDXLスタイル制御)¶
- GitHub:https://github.com/gustproof/sd-webui-forge-style-components
- 用途:参照画像からスタイルembeddingを抽出して適用
- Illustrious等のSDXLアニメモデルとの相性を考慮して設計
3. ワークフロー改善Tips¶
3-1. プロンプト管理¶
SDXL向けの特性¶
SD 1.5が短いタグ列を好むのに対して、SDXL(Illustrious含む)は自然言語的な描写文も有効。
# 重みは1.4以下(1.1〜1.3が実用範囲)
(white hair:1.2), (blue eyes:1.1)
# CFG Scale: 4〜7推奨(7以上は過強調になりやすい)
# 推奨品質タグ
masterpiece, best quality, very aesthetic, absurdres, highres
Styles機能で保存・管理¶
ForgeのStylesボタンで頻繁に使うプロンプトの組み合わせを保存。styles.csv に保存される。
3-2. Sampler推奨設定¶
| サンプラー | ステップ数 | 用途 |
|---|---|---|
| DPM++ 2M Karras | 20〜30 | 汎用(最推奨) |
| DPM++ SDE Karras | 20〜25 | バリエーション探索 |
| Euler a | 20〜30 | 高速ラフ生成 |
| DDIM | 30〜50 | inpainting |
3-3. img2imgのデノイズ強度目安¶
| 強度 | 変化量 | 用途 |
|---|---|---|
| 0.25〜0.4 | 小 | 色調・細部の微調整 |
| 0.5〜0.65 | 中 | スタイル変換・衣装変更 |
| 0.7〜0.85 | 大 | 大幅なリデザイン |
実践的なワークフロー: 1. txt2imgで構図・ポーズのラフ生成(低CFG、低ステップ) 2. img2img(デノイズ0.5〜0.6)で品質向上 3. ADetailerで顔・手を自動補正 4. Ultimate SD Upscaleで2〜4倍に高解像度化
3-4. Hires Fix推奨設定¶
Upscaler: R-ESRGAN 4x+ Anime6B(アニメ)/ 4x-UltraSharp(リアル系)
Upscale by: 1.5〜2.0
Hires steps: 15〜20
Denoising strength: 0.35〜0.5
3-5. バッチ処理・パラメータ比較¶
X/Y/Z Plot¶
スクリプトから選択し、CFG・LoRA強度・ステップ数等をグリッド形式で一括比較できる。
Prompt Matrix¶
| 区切りで複数プロンプトを自動展開。
クイックリファレンス¶
初回生成の推奨設定(waiNSFWIllustrious + sinon LoRA)¶
Model: waiNSFWIllustrious_v150.safetensors
LoRA: <lora:sinon-05:0.7>
Prompt: masterpiece, best quality, very aesthetic, absurdres, 1girl, sinon, ...
Negative: worst quality, bad quality, lowres
Sampler: DPM++ 2M Karras / Steps: 28 / CFG: 5.5
Resolution: 1024×1024
Clip skip: 2
Hires Fix: 有効 / Upscaler: R-ESRGAN 4x+ Anime6B / Denoising: 0.4
LoRA学習クイックスタート(キャラクターLoRA)¶
Dataset: 20〜40枚 / 1024×1024 / WD14 v3タグ付け
Network Dim: 64 / Alpha: 32
LR (UNet): 3e-4 / LR (TE): 3e-5
Optimizer: AdamW8bit / Scheduler: cosine
Epochs: 10 / Batch size: 2
Options: --network_train_unet_only --fused_backward_pass --gradient_checkpointing
Mixed precision: bf16