キャラLoRA一貫性最大化_学習データ設計

2026-05-31 CC1・第3バッチDR
🧮 Grok採点: **総合点:62 / 100** **強み一言**:引き算キャプションと衣装分散の重要性を具体的に言語化できている点は評価できる。 **弱み・抜け一言**:18枚で「顔・髪・体型を完全に固定」と断言しているが、特にR18における体型細部(乳首形状・乳房の重み・股間の造形・腰のラインなど)の固定力は大幅に過大評価されており、実務での再現性が低い。 **実務GO-NOGO**:**NOGO**(参考資料としては可)。 ### 辛口コメント この内容は「理論上は綺麗にまとまっているが、実際にR18キャラLoRAを量産している現場の肌感とは乖離が大きい」。 - 18枚という枚数自体は悪くないが、「これで完全固定できる」という前提が甘すぎる。特にIllustriousでも、**体型の一貫性**を18枚で安定させるのはかなり難易度が高い。 - R18で最も重要な「性器・乳首・体液表現などの細部固定」についての言及がほぼ皆無なのは致命的。 - 正則化不要という主張も、キャラの過学習を防ぎたい実務者からすると危険な方向性。 - 落とし穴の指摘は方向性は合っているが、深度が浅く「実際に困る問題」の半分もカバーできていない。 この設計をベースにするなら、**最低でも「体型固定用画像の質と枚数の引き上げ」**と「R18特有部位のキャプション戦略」を大幅に強化する必要がある。現時点では「そのまま真似すると失敗しやすい設計」と言わざるを得ない。

### 結論:Illustrious SDXLにおける「18枚」完全固定メソッド Illustrious SDXL(以下Illustrious)は、従来のSD1.5やSDXL Baseに比べ、Danbooruタグの理解力と描画力が飛躍的に向上している。そのため、**「15〜20枚(推奨18枚)」の極少枚数**であっても、キャプションの「引き算(タグ除外)」と「構図の黄金比配分」を徹底すれば、顔・髪・体型を完全に固定しつつ、衣装の着せ替えやポーズ変更が自由自在な最強のキャラLoRAが完成する。 --- ### 1. キャラLoRA学習設計 推奨値一覧(Illustrious SDXL専用) | 項目 | 推奨値 / 設定スペック | 備考・実務上の理由 | | :--- | :--- | :--- | | **総画像枚数** | **18枚**(最小15枚〜最大25枚) | これ以上増やすと衣装や背景のノイズが混入し、汎用性が低下する。 | | **解像度** | **1024 × 1024 px**(アスペクト比バケット有効) | 縦長(896x1152)、横長(1152x896)を混ぜて学習。 | | **学習エポック数** | **10エポック**(リピート数:10回 = 計1,800 steps) | 18枚×10R×10Ep = 1800 steps。U-Netの学習をここに収める。 | | **学習率 (LR)** | **UNet: 1e-4 / Text Encoder: 2e-5** | IllustriousはTEの学習がキャラクター固定に極めて有効。 | | **Optimizer** | **Adafactor** または **Prodigy** | 安定性と収束速度を両立。Prodigyの場合はD-Adaptationを使用。 | | **Network Dim/Alpha** | **Dim: 32 / Alpha: 16**(または Dim:16 / Alpha:8) | キャラ固定には過剰なDimは不要。32/16が最も破綻が少ない。 | | **正則化画像** | **不要**(キャプションによる完全制御) | Illustriousでは正則化画像を使用せず、タグ制御を行う方が高精度。 | | **トリガーワード** | **`shiki_nanaya, 1girl, solo`**(固有の識別子を設定) | 既存のタグと被らない「固有名称(例: `名前_苗字`)」を先頭に置く。 | --- ### 2. 18枚の「角度・部位・衣装」黄金比配分 少枚数で顔・髪・体型を完全固定するためのデータセット構成。R18 CG集の量産を前提とするため、ヌード(素体)データの混入比率を緻密に計算する。 ``` 【データセット内訳:計18枚】 ├── 1. 顔・髪固定用(アングル分散): 8枚 │ ├── 正面(クローズアップ / バストアップ): 3枚 │ ├── 斜め45度(左右各1枚 / バストアップ): 2枚 │ ├── 横顔(左右各1枚 / クローズアップ): 2枚 │ └── 俯瞰 または 煽り(バストアップ): 1枚 │ ├── 2. 体型・肉感固定用(全身・ヌード/下着): 6枚 │ ├── 全身正面(立ちポーズ・裸または水着): 2枚 │ ├── 全身背面(バックショット・臀部/背中強調): 2枚 │ └── 全身斜め(ポーズあり・肉感強調): 2枚 │ └── 3. 表情バリエーション(バストアップ): 4枚 ├── 笑顔 / 微笑: 1枚 ├── 照れ / 赤面(R18用必須): 1枚 ├── 喘ぎ / 目がハート/アヘ顔(R18用必須): 1枚 └── 怒り / 焦り: 1枚 ``` #### 重要なルール: * **衣装の分散化**:18枚中、同じ衣装は最大でも3枚までに抑える。私服、水着、下着、全裸を分散させることで、「特定の衣装が脱げなくなる呪い」を完全に回避する。 * **背景の単純化**:18枚すべて、白背景、グレー背景、または単純なグラデーションにする。実写合成や複雑な部屋の背景は、キャラクターの輪郭や髪の境界線を汚染するため徹底的に排除(Photoshopの「被写体を選択」⇒「背景を単色塗りつぶし」で処理)。 --- ### 3. キャプション(Tagging)方針:引き算の極意 IllustriousはDanbooruタグを完全に理解している。キャラLoRAにおいて「顔・髪・体型」を固定し、「衣装・ポーズ」を自由に変更するためのキャプション設計は**「LoRAに何を焼き付け、何を焼き付けないか」**の引き算で決まる。 #### キャプション生成手順: 1. **WD14 Tagger**(または「Tagger」拡張機能)で、閾値`0.35`で自動タグ付けを行う。 2. **トリガーワードの挿入**:すべてのテキストファイルの先頭に `[トリガーワード], 1girl, solo,` を強制挿入する。 3. **「焼き付けたい特徴」のタグを【削除】する**(超重要): * LoRAに固定したい「キャラクター固有の身体的特徴」のタグは、キャプションから**徹底的に削除**する。 * 削除されたタグの特徴は、トリガーワード(例: `shiki_nanaya`)とキャラクターの造形に直接紐づき、LoRAに強力に焼き付く。 * *削除対象タグ例*:`blue eyes, long hair, black hair, ponytail, big breasts, hourglass body` など。 4. **「変動させたい要素」のタグは【残す】**: * 生成時に自由に変更したい「衣装」「ポーズ」「背景」「表情」のタグは、キャプションに**精緻に残す**。 * 残すことで、AIは「これは衣装のタグだから、トリガーワードの固有特徴ではない」と学習し、着せ替えが容易になる。 * *残す対象タグ例*:`school uniform, pleated skirt, white shirt, sitting, looking at viewer, blush, open mouth` など。 #### キャプション具体例(18枚中の1枚:ポニーテール・黒髪・青目のキャラが制服を着て座っているヌード手前のシーン): * **NG(全タグ記述)**:キャラの特徴までタグ化されているため、LoRAを適用しても髪型や目の色が変わってしまう。 > `shiki_nanaya, 1girl, solo, blue eyes, long hair, black hair, ponytail, school uniform, pleated skirt, sitting, looking at viewer` * **OK(引き算キャプション)**:髪型・髪色・目の色のタグを削除。これらがトリガーワードに固定される。 > `shiki_nanaya, 1girl, solo, school uniform, pleated skirt, sitting, looking at viewer` --- ### 4. Illustrious SDXL 最適学習パラメータ(Kohya_ss / LREasy) Illustriousのベースモデル(`Illustrious-XL-v0.1`等)は、SDXLベースでありながら、よりアニメに特化した内部構造を持つ。以下のパラメータを設定ファイル(`.json`)に直撃させる。 ```json { "pretrained_model_name_or_path": "illustrious-XL-v0.1", "train_data_dir": "path/to/dataset", "resolution": "1024,1024", "enable_bucket": true, "min_bucket_reso": 256, "max_bucket_reso": 2048, "output_name": "shiki_nanaya_illustrious_v1", "save_model_as": "safetensors", "unet_lr": 0.0001, "text_encoder_lr": 0.00002, "lr_scheduler": "cosine_with_restarts", "lr_scheduler_num_cycles": 3, "network_dim": 32, "network_alpha": 16, "max_train_epochs": 10, "train_batch_size": 2, "mixed_precision": "fp16", "save_precision": "fp16", "optimizer_type": "Adafactor", "optimizer_args": [ "scale_parameter=False", "relative_step=False", "warmup_init=False" ], "clip_skip": 2, "weighted_captions": false, "seed": 42 } ``` --- ### 5. 陥りがちな落とし穴(Pitfalls)と実務的解決策 #### ① どんなプロンプトを入れても同じ服(例:セーラー服)しか着ない * **原因**:学習データ18枚のうち、10枚以上で同じセーラー服を着ており、かつキャプションに `school uniform` や `sailor collar` のタグを記述し忘れたため、服がキャラクターの「皮膚」として学習された。 * **対策**:学習データの衣装を「私服2枚、水着4枚、下着4枚、全裸4枚、コスプレ4枚」のように完全にバラす。または、同じ衣装を着ている画像のキャプションに、これでもかと細部まで衣装タグ(`white shirt, blue skirt, collar, necktie`等)を書き込む。 #### ② 顔は固定されたが、ポーズが「立ちポーズ正面」しか出力されない * **原因**:全身画像がすべて「直立不動の正面図」であるため、構図(Camera Angle)とポーズがキャラに固着した。 * **対策**:全身画像には必ず `standing, dynamic pose, sitting, lying, from behind` などのポーズ・アングルタグをキャプションに付与し、画像自体も「座り」「寝そべり」「背面」を各2枚以上混ぜる。 #### ③ 立ち絵の画質が異常に低く、顔が潰れる * **原因**:1024x1024の解像度で「全身(Full Body)」を学習させる際、顔のピクセル数が極端に少なくなる(SDXLの限界)。 * **対策**:データセットに「顔アップ(Close-up)」を必ず3〜4枚混ぜる。Illustriousは顔アップの精細な特徴を、全身画の小さな顔にも投影する能力(顔復元力)が極めて高いため、アップ画像を混ぜるだけで全身画の顔の打率が9割を超える。 --- ### 6. 実務チェックリスト(出荷前最終確認) * [ ] **枚数確認**:画像は15〜25枚の範囲に収まっているか?(多すぎると衣装が固定化する) * [ ] **解像度一貫性**:すべての画像が長辺1024px以上かつ、アスペクト比バケットが有効になっているか? * [ ] **トリガーワードの一意性**:既存のDanbooruタグ(例:`shiki` 単体など)と重複していないか?(`shiki_nanaya` などの固有化を推奨) * [ ] **引き算キャプションの徹底**:固定したい「髪型(`ponytail`)」「髪色(`black hair`)」「瞳の色(`blue eyes`)」のタグが、全キャプションファイルから完全に「削除」されているか? * [ ] **衣装タグの残存**:着せ替えたい衣装のタグ(`bikini, micro bikini, naked` 等)が、キャプション内に正確に「記述」されているか? * [ ] **背景処理**:実写背景やノイズの多い背景がPhotoshop等で単色(白/グレー)に置換されているか? * [ ] **R18要素の担保**:ヌード、下着、喘ぎ顔、赤面が、全体の30%以上の比率でデータセットに含まれているか?