(18-21 years old:1.4) youthful adult、NEGに(haniwa:1.5)(clay face:1.5)(mature woman:1.4)とchild,toddler,infant(幼児化=BAN回避)を併記。networkDim=32 / networkAlpha=16 で表現力と汎化性能を両立させ、min_snr_gamma=5 でノイズを安定化、save_every_n_epochs=1 で全epochを保存して「崩れる直前の最良モデル」をピンポイントで回収する[1][2][8][17]。FaceDetailer(Impact Pack)を使い、denoise=0.42(許容範囲0.40〜0.45)、face_margin=1.6、feather=16-32、LoRA強度 0.8-1.0 の多段(2段)構成で処理し、若さ制御タグと強力な老け防止ネガティブを併用して美少女顔を固定する[11][13][16]。Illustrious系モデルにおいて、顔が崩れる(埴輪化、粘土化、左右非対称、おばさん化、別人化)原因の優先度付きマップと実務的影響は以下の通りである。
【優先度】 高 [1. 学習データの品質・構成] ──> 解決:1:1顔cropの2〜3割混入、低品質・極端角度の排除[6][15] │ 中 [2. ステップ数・TE過学習] ───> 解決:TE学習の早期停止、全epoch保存からの最適エポック選択[1][2] │ 中 [3. ハイパーパラメータ設定] ──> 解決:dim32/alpha16、min_snr_gamma=5、適正LR設定[5][7][17] │ 低 [4. 推論時設定(CFG/VAE)] ──> 解決:FaceDetailerによる多段修正、若さ制御タグの適用[11][16]
dim が高すぎると過学習を起こしてポーズが固定化し、低すぎると顔のアイデンティティ(目元の特徴など)を認識できない。dim=24 のような中途半端な非対称・非2進数設定や、検証なしの量産は、モデルの表現力の限界値を予測できず、全滅の直接原因となる[5][7]。過去に dim24・検証なしで99体を量産し、おばさん化・埴輪顔・別人化で全滅した致命的メカニズムを解剖する。
【過去の失敗スパイラル】
[dim24 / 検証なしで一括学習]
│
├──> 原因A:dim24という中途半端な次元数(2の累乗ではない)による学習の不安定化[5]
├──> 原因B:検証用サンプルを出力せず、限界突破(Overbaked)に気づかない[1][8]
└──> 原因C:Illustriousの基本アセット(若年層)に対し、年齢制御なしで学習が引っ張られる[16]
│
└──> 結果:顔が「粘土状(clay)」に歪み、シワやたるみが発生して「おばさん化」[1][8][16]
dim24 による「次元の不整合」と表現力不足dim24 を指定したことで、テンソル計算の効率が低下し、顔の微細なニュアンス(二重の幅、瞳のハイライト)を保持する容量が不足した[5][7]。結果として、特徴を無理に圧縮しようとしたLoRAが「平均的なのっぺりした顔(=埴輪顔)」を出力した。Illustrious系モデルに特化した、顔崩れを絶対に起こさないための学習設定パラメータ群である。本命案、保守案、攻め案の3パターンを提示する。
| 設定項目 | 本命案(バランス型) | 保守案(公式準拠・低容量) | 攻め案(ディテール重視) | 実務的根拠(1行) |
|---|---|---|---|---|
| 対象モデル | Illustrious-XLベース | Illustrious-XLベース | Illustrious-XLベース | 基礎モデルの構造に最適化するため。 |
| Network Dim | 32 | 8 | 64 | 顔特徴を捉えつつ訓練ポーズを丸暗記しない最適値[5][7]。 |
| Network Alpha | 16 | 1 | 32 | alpha=dimは無効化、alpha > dimは品質劣化を招くため[7]。 |
| UNet LR | 4e-4 (0.0004) | 3e-4 | 5e-4 | 高すぎるとノイズや色破綻、低すぎると学習不足になる[8]。 |
| TE LR | 4e-5 (UNetの1/10) | 5e-5 | 5e-5 | TEは全体への影響が大きく、高すぎると即座に過学習する[2][9][10]。 |
| TE学習停止 | 学習全体の50%で停止 | 50%で停止 | 70%で停止 | TE過学習によるプロンプト固定化と顔の歪みを防ぐ[2]。 |
| Optimizer | AdamW8bit | Adafactor | AdamW8bit | 安定した勾配更新とメモリ節約を両立するため。 |
| Scheduler | cosine | cosine | cosine | 終盤に向けて学習率を滑らかに下げ、収束を安定させる[10]。 |
| Warmup Ratio | 10% (0.1) | 10% | 10% | 初期ステップでの急激な勾配変化による顔崩壊を防ぐ[10]。 |
| Max Epochs | 16 (1エポック毎保存) | 10 | 20 | 各epochのLoRAを残し、崩れる直前の最良エポックを選ぶ[1][2][8]。 |
| Target Steps | 3072 steps | 1500 steps | 4000 steps | 3000step付近がIllustriousの収束目安であるため[1][3][9]。 |
| Min SNR Gamma | 5.0 | 5.0 | 5.0 | 収束を安定させ、ノイズが少ない画像の学習ブレを抑制する[17]。 |
| Caption Dropout | 0.05 | 0.05 | 0.08 | 5%の確率でタグをドロップし、LoRAの汎用性を高める[17]。 |
| Noise Offset | 0.035 | なし | 0.05 | 暗部と明部のコントラストを適正化し、顔の白飛びを防ぐ。 |
| Clip Skip | 2 | 2 | 2 | IllustriousおよびSDXLアニメモデルのデファクトスタンダード[10]。 |
| Grad Checkpoint | ON | ON | ON | VRAM消費を抑え、バッチサイズを確保して学習を安定化[17]。 |
「Garbage In, Garbage Out(ゴミを入れればゴミが出る)」を徹底排除するための、データセット構築基準である[15]。
| 項目 | 規定値・基準 | 実務的根拠(1行) |
|---|---|---|
| 推奨総枚数 | 20〜30枚(厳選された超高品質画像) | 枚数より品質を揃え、ポーズや角度に多様性を持たせるため[6][15]。 |
| 画像解像度 | 1024x1024基準(混在可、ただしアスペクト比を考慮) | SDXLのネイティブ解像度で学習し、ボケや歪みを防ぐ。 |
| Bucket設定 | bucket_no_upscale=True / step_size=64 | 1024基準で64の倍数にバケット化し、端数による歪みを防ぐ[6][14]。 |
| 顔Crop画像比率 | 全体の20%〜30%(例: 25枚中5〜7枚) | 顔特徴の再現性を劇的に向上させ、埴輪化を防止する[6]。 |
| 顔Crop切り出しルール | 1:1正方形、頭部中心、肩を少し含む | 顔単体ではなく、首元や肩との境界線を学習させて接合部を安定化[6]。 |
| 構図配分 | 顔アップ(Crop): 30% / バストアップ: 40% / 全身: 30% | 全身ポーズの汎化性能を保ちつつ、顔のディテールを確保する。 |
| 表情・角度配分 | 正面: 40% / 斜め(3/4): 40% / 横顔・極端な角度: 20% | 特定の角度への過学習を防ぎ、あらゆるカメラワークに対応するため。 |
| 低品質排除基準 | 解像度1024未満、圧縮ノイズ、ボケ、透かし、複数被写体は即除外 | 訓練素材の欠陥にLoRAが張り付き、出力画像を汚染するのを防ぐ[15]。 |
| FaceDetailer前処理 | 原則禁止(手動レタッチ、Waifu2x等による高画質化のみ許可) | 前処理でDetailerをかけると、AI特有の不自然なパターンまで学習するため。 |
生成時に顔崩れを完全に補正し、かつLoRAのキャラクター性を100%維持するための、ComfyUI Impact Pack (FaceDetailer) を中心としたノード構成パラメータである[11]。
【ComfyUI 2段(多段)FaceDetailer パイプライン】 [KSampler (本体生成)] ──> [FaceDetailer (1段目: 骨格・大枠補正)] ──> [FaceDetailer (2段目: ディテール微細化)] - CFG: 5.0 - 6.5 - BBOX Detector: face_yolov8n - BBOX Detector: face_yolov8n - Steps: 28 - 35 - Denoise: 0.42 (バランス)[11] - Denoise: 0.25 (微修正)[11] - LoRA Strength: 0.85 - Feather: 32 (境界ぼかし)[11] - Feather: 16 (シャープ)
| ノード名 / パラメータ名 | 設定値 | 実務的根拠(1行) |
|---|---|---|
| KSampler: CFG Scale | 5.0〜6.5 | Illustrious系はCFGが高すぎると線が太くなり、顔が粘土化するため。 |
| KSampler: Steps | 28〜35 steps | 描画ステップ数が不足すると、顔のパーツが未収束で非対称になる。 |
| KSampler: Sampler / Scheduler | euler_ancestral / normal または ddim | アニメ調の滑らかなグラデーションと、シャープな輪郭線を両立する。 |
| Hires.fix: Upscaler | 4x-UltraSharp または RealESRGAN_x4plus_anime_6B | 拡大時のボケを排除し、FaceDetailerに送る前段階で高精細化する。 |
| Hires.fix: Denoise | 0.30〜0.35 | 元の構図や顔の配置を破壊せず、解像度だけを向上させるため。 |
| FaceDetailer: BBOX Detector | face_yolov8n.pt (Ultralytics) | アニメ顔の検出率が最も高く、横顔や傾いた顔も正確に捉える。 |
| FaceDetailer: SAM Model | sam_vit_b.pth (Segment Anything) | 顔の輪郭をピクセル単位で正確にセグメンテーションし、はみ出しを防ぐ。 |
| FaceDetailer: Denoise (1段目) | 0.42 (許容範囲: 0.40〜0.45) | 0.40-0.50はポーズを崩さず、顔の崩れを完全に描き直す黄金値[11]。 |
| FaceDetailer: Denoise (2段目) | 0.25 (許容範囲: 0.20〜0.30) | 多段構成の2段目で極小denoiseをかけ、1段目のアーティファクトを消す[11]。 |
| FaceDetailer: Face Margin | 1.6 | 顔の周囲1.6倍のエリアを確保し、髪の生え際や顎のラインを自然に繋ぐ[11][13]。 |
| FaceDetailer: Feather | 32 (1段目) / 16 (2段目) | 境界を滑らかにぼかし、元画像と修正領域の「色不一致」を完全に防ぐ[11][13]。 |
| FaceDetailer: LoRA Strength | 0.85 (許容範囲: 0.80〜1.0) | 生成時LoRA強度をわずかに下げることで、過学習による顔の歪みを回避[11][13]。 |
| 多段(Cascade)接続の有無 | 有(2段構成を推奨) | 1段で強修正(0.55以上)すると顔が浮くため、中・低denoiseの2段で処理[11]。 |
| 色不一致(Color Drift)対策 | Color Match ノード挿入、または feather を48に拡張 | 修正領域のライティングや肌の色調が、体とズレる現象を根絶する[11]。 |
Illustrious系の強力な表現力を制御し、幼児化を防ぎつつ、20代前後の「若く美しい顔」に固定するためのプロンプト・ネガティブプロンプト設計である[16]。
(18-21 years old:1.4), youthful, (teen:1.3), youthful adult, masterpiece, best quality, highly detailed face, symmetrical eyes, perfect anime eyes, soft lighting, smooth skin
(18-21 years old:1.4) と youthful adult を組み合わせることで、15才未満の「幼児化・児童想起」を完全に回避しつつ、25才以上の「おばさん化・加齢による陰影」をシャットアウトし、最も需要の高い18〜20才のビジュアルに固定する[16]。(haniwa:1.5), (clay face:1.5), (deformed face:1.4), (mature woman:1.4), (milf:1.3), (old woman:1.5), wrinkles, crow's feet, laugh lines, saggy skin, beard, mustache, stubble, child, toddler, infant, cherub, lowres, bad anatomy, bad hands, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
(haniwa:1.5)、(clay face:1.5):LoRAの過学習時に発生する、のっぺりとした平坦な顔立ちと、境界線が溶けた粘土質の質感をダイレクトに拒否する。(mature woman:1.4)、(milf:1.3)、wrinkles、saggy skin:Illustrious特有の「過剰な肉感・陰影表現」が引き起こす、ほうれい線やおばさん化を強力に抑制する[16]。beard, mustache, stubble:男性的な特徴や、肌のざらつき(無精髭と誤認されるノイズ)を排除し、美少女の滑らかな肌を維持する[16]。child, toddler, infant, cherub:幼児化をネガティブで拒否し、法的リスク(児童ポルノ規制等)を完全に回避する[16]。(age_slider_v20:-1.0) または (old_age:1.5) を指定する。過学習(Overbaked)は、画像を歪め、使用不能にし、訓練素材のポーズに完全に張り付いて汎化性能を失わせる[8]。これを防ぐため、全エポックを保存し、以下の基準で「崩れる直前のエポック」を厳密に採用する[1][2][8]。
【エポック別・品質と過学習の推移イメージ】 Epoch 1-3 : 学習不足(顔がベースモデルのまま、LoRAのキャラに似ていない) Epoch 4-6 : 収束期(キャラの特徴が出て、汎化性能も高い。★ベストエポック候補) Epoch 7-9 : 飽和期(顔が徐々に「粘土状」になり、ポーズが固定化し始める[1][8]) Epoch 10+ : 過学習・崩壊(プレビューが歪む、左右非対称、おばさん化、使用不能[1][8])
1. 粘土(clay)化・プレビューの歪み:生成された画像の肌の質感が、陶器や粘土のようになり、ハイライトが不自然にギラつく[1][8]。
2. 後半epochでの「別人化・崩れ」:学習が進むにつれてキャラクターに似るはずが、後半(例: 12epoch以降)になると逆に顔が歪み、不細工化、またはおばさん化する[1][8]。
3. プロンプト無視(ポーズ固定):standing(立位)を指定しているのに、訓練データに多かった sitting(座位)しか出力されなくなる。
毎エポック出力されたテスト画像を、以下のチェックリストで採点する。
| 採点項目 | 配点 | 合格基準(実務GOライン) | NOGO(不合格・即リジェクト) |
|---|---|---|---|
| 1. 同一人物性 | 3点 | 3点:訓練データのキャラと一目で同一人物と判別できる。 | 1点以下:ベースモデルの顔に負けている、または別人。 |
| 2. 肌の質感(粘土化防止) | 3点 | 3点:滑らかなアニメ調の肌。境界線がシャープ。 | 1点以下:肌がザラつく、または粘土状にうねっている[1][8]。 |
| 3. 左右対称性・パーツ崩れ | 2点 | 2点:両目の大きさ・位置が対称。瞳のハイライトが一致。 | 0点:片目が潰れている、二重のラインが不自然に歪む。 |
| 4. 年齢感(おばさん化防止) | 2点 | 2点:18〜20才前後の若々しい顔立ち。シワやたるみがない[16]。 | 0点:ほうれい線が見える、目元が窪んでいる(おばさん化)。 |
量産現場で「顔のクオリティ」と「同一人物性(キャラクターの固定)」を100%維持するための、ComfyUIにおけるノード結合とプロンプトの組み合わせ技法である。
【同一人物性固定化パイプライン】 [同一Seed(固定)] ──> [固有識別タグ(冗長化)] ──> [LoRA強度(0.85)] ──> [FaceDetailer(LoRA同一適用)]
shiranui_mai)だけでなく、キャラクターの特徴を言語化した「冗長タグ」をプロンプトに常時固定する。shiranui_mai, 1girl, brown ponytail, brown eyes, red sleeveless kimono, forehead protectorFaceDetailer 内部の Inpaint KSampler にも、同一のキャラLoRAを強度 0.80〜0.85 で適用する。Seed を完全に固定(Fixed)した状態で、表情プロンプト(例: open mouth, blushing)や衣装プロンプトのみを変更する。実務量産において、エンジニアが陥りやすい技術的・法的な落とし穴とその回避策である。
mature などを強く入れすぎると、出力が「ロリ(幼児・児童)」に寄り、プラットフォームの審査(実在・非実在児童保護規則)に抵触して作品ごとBANされる。(18-21 years old:1.4) および youthful adult を指定し、ネガティブに child, toddler, infant を徹底して入れることで、「若いが、法的に完全に成人(18才以上)である骨格・肉体」を維持する[16]。denoise 設定が高すぎる(例: 0.55以上)と、LoRAのキャラクター性が完全に消去され、AIが描きやすい「ありふれた美少女の顔」に置き換わる[11]。denoise は最大でも 0.42 に抑え、かつFaceDetailerのノードに同一LoRAを接続して、キャラクターの遺伝子(特徴)を強制的に注入し続ける[11][13]。dim=128 や alpha=64 などの巨大な設定で学習すると、訓練データのポーズや背景、ライティングまでLoRAが丸暗記(Overfitting)する[5][7]。生成時にプロンプトでポーズを指定しても一切動かなくなる。dim=32 / alpha=16 が汎化性能と表現力の限界バランスである[5][7]。これ以上は上げず、顔のディテールはデータセット内の「1:1顔crop画像」の品質と比率で担保する[6]。sdxl_vae.safetensors)を強制適用すると、色調が濁り、肌がくすんだ粘土のような色(埴輪化)になる。量産プロジェクトを安全かつ高速に軌道に乗せるための、30日間マイルストーンおよび実務的な撤退(やり直し)基準である。
【30日間実装ロードマップ】
[Day 1-5: 開発環境構築] ──> [Day 6-12: 1-2体プロトタイプ検証] ──> [Day 13-15: 採点ゲート(GO/NOGO)]
│
┌────────────────────────────────────┘
├──> 【GO】 ──> [Day 16-30: 99体スケール量産]
└──> 【NOGO】 ─> [撤退・再設計(データセット見直し)]
1. 元画像から、ボケている画像や極端な逆光画像を3枚以上排除する[15]。
2. 1:1の顔crop画像を、全データセットの30%(例: 20枚中6枚)になるよう手動で切り直して再投入する[6]。
3. UNetの学習率(LR)を 4e-4 から 3e-4 に引き下げ、過学習の発生を遅らせる[8][9]。
本書に記載された各技術的論点と、実務におけるソース・検証結果の対応リストは以下の通りである。
alpha と dim の関係性。alpha=dim による無効化および alpha > dim による品質劣化の回避。denoise の各数値(0.25-0.35微修正、0.40-0.50バランス、0.55-0.70崩れ、0.75+再生成)の影響度、多段接続によるアーティファクト回避、および色不一致対策。face_margin 1.6、feather 16-32、LoRA適用強度 0.8-1.0 の最適値。(teen:1.3)、youthful adult と、老け防止ネガティブ (mature woman)、beard/mustache、およびAge Sliderのネガティブ適用による年齢制御。min_snr_gamma=5 による収束安定化、caption_dropout=0.05、および gradient_checkpointing による学習の最適化。