コンテンツにスキップ

SD WebUI Forge 実践ガイド — RTX 5070 Ti / waiNSFWIllustrious + LoRA環境向け

📁 docs/ai-manga/artifact/20260313_SD_WebUI_Forge_実践ガイド.md

目次

  1. LoRA学習の基礎
  2. 便利な拡張機能(ControlNet以外)
  3. ワークフロー改善Tips

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系の学習解像度に合わせる)

画像前処理

  1. 解像度統一:1024×1024にリサイズまたはクロップ
  2. 重複・低品質画像の除去
  3. 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、元のプロンプトを引き継ぐ設定が標準
インストールURL: https://github.com/Bing-su/adetailer.git

2-2. Ultimate SD Upscale(タイル分割アップスケール)

  • 用途:img2imgのScriptとして動作するタイル分割アップスケーラー
  • 通常のSDアップスケールよりタイル間の継ぎ目が少ない
  • ADetailerと組み合わせると効果的

2-3. LayerDiffuse(透明背景生成)

  • GitHub:https://github.com/lllyasviel/sd-forge-layerdiffuse
  • 用途:透明背景(PNG with alpha)の画像を直接生成
  • キャラクター素材作成・合成用に最適。Forge作者本人が開発
インストールURL: https://github.com/lllyasviel/sd-forge-layerdiffuse.git

2-4. AnimateDiff(アニメーション生成)

  • GitHub(Forge専用版):https://github.com/continue-revolution/sd-forge-animatediff
  • 用途:生成画像をGIF/MP4アニメーションに変換
  • PyTorch >= 2.0.0 が必要(現環境の2.7.0で対応)
インストールURL: https://github.com/continue-revolution/sd-forge-animatediff.git

2-5. Regional Prompter(領域別プロンプト)

  • GitHub:https://github.com/hako-mikan/sd-webui-regional-prompter
  • 用途:キャンバスの特定領域に異なるプロンプトを適用
  • 複数キャラクターのシーン・背景と前景の独立制御に有用
インストールURL: https://github.com/hako-mikan/sd-webui-regional-prompter.git

2-6. Style Components(SDXLスタイル制御)

  • GitHub:https://github.com/gustproof/sd-webui-forge-style-components
  • 用途:参照画像からスタイルembeddingを抽出して適用
  • Illustrious等のSDXLアニメモデルとの相性を考慮して設計
インストールURL: https://github.com/gustproof/sd-webui-forge-style-components.git

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強度・ステップ数等をグリッド形式で一括比較できる。

例: X軸=LoRA weight(0.4/0.6/0.8/1.0)× Y軸=CFG(5/6/7)
→ 12枚の比較グリッドを一括生成

Prompt Matrix

| 区切りで複数プロンプトを自動展開。

1girl, sinon, |school uniform|casual outfit|swimsuit|, blue eyes
→ 3パターン自動生成

クイックリファレンス

初回生成の推奨設定(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

LoRA強度の目安

<lora:name:0.7>  ← 標準(スタイル参照しつつベースモデルの質感を保つ)
<lora:name:0.5>  ← 控えめ
<lora:name:1.0>  ← 強め(過学習LoRAは崩れやすい)
複数LoRA使用時は合計1.2以下を目安に