8件の欠陥は個別のバグではなく、3つの共通根本原因に収束します。①SDXL/Illustrious系モデルが持つ「顔が小さい構図での顔検出・描画精度」と「色相の安定性」の構造的弱点[S1]、②プロンプト依存の識別子(キャラの顔・髪・体型・小物)がトークン飽和によってドリフトする限界[S6]、③KSampler単体ワークフローに品質保証段(FaceDetailer / Hires.fix)が欠落している運用上の欠落、です。トフィーさんの現行コードを実機確認したところ、まさに KSampler のみで Hires/FaceDetailer ノードが未接続でした。
これらが相互に連鎖するため、プロンプトをいくら修正しても再発します。顔が小さい全身構図では CLIP の attention が顔以外に分散し、latent 空間で顔の geometry(目鼻の配置)が不安定化します[S1]。色名タグ(pink/red など)の bleeding は SDXL の cross-attention 機構で周辺(肌)へ波及し、マゼンタ肌を生みます[S9][S10]。そして「固定 seed にすれば同じ子が出る」は神話で、seed はノイズ初期化にすぎず識別子はロックできません[S15]。
根本解決はキャラ LoRA ですが[S7]、LoRA を学習する前でも、ワークフロー改修(2段追加)とプロンプト規約化(キャラ別固定ブロック+BREAK分離+逆算順序の実装担保)だけで歩留まりは大幅に改善できます。本DRは「今すぐ効く応急策」と「30日での根治」を分けて提示します。
R18アニメ調CG集市場では Illustrious/Pony 系モデルによる量産が主流化しており、差別化要因は「枚数」から「キャラ一貫性・顔の精細さ」へ移っています。1Vol(数十〜100枚超)の中で顔・髪・体型・衣装・小物がブレると、購入者は「同じ子の連続シーン」として認識できず、CG集としての物語性・商品価値が直接毀損します(過去にトフィーさん自身が gallery 全否定の判定をされた経緯と一致)。ドリフトは採用率(歩留まり)を下げてリテイク工数を増やし、RTX3090 単体運用の生産効率も圧迫します。つまりドリフト解消は「品質改善」であると同時に「単位時間あたり売上の改善」です。
取りうる10手法を、トフィーさん環境(RTX3090・IPAdapter青グロー実証済NG)基準で比較します。
| 手法 | 効果 | コスト | RTX3090負荷 | 今すぐ可否 | トフィー環境適合 |
|---|---|---|---|---|---|
| プロンプト冗長化(タグ追加) | 中(すぐ飽和) | 低 | 低 | 可 | 適合だが限界あり[S6] |
| weight引き上げ(:1.4等) | 低〜中 | 低 | 低 | 可 | 盛りすぎ破綻に注意(実証) |
| seed固定 | 低 | 低 | 低 | 可 | 識別子はロックされない[S15] |
| BREAK によるchunk分離 | 中(色bleed抑制に有効) | 低 | 低 | 可 | 強く推奨[S9][S10] |
| FaceDetailer(Impact-Pack) | 高(顔・表情) | 中 | 中 | 可 | 最優先導入[S1][S2][S3] |
| Hires.fix(2pass latent) | 高(顔精細・手足) | 中 | 中 | 可 | 最優先導入[S3][S4][S12] |
| IP-Adapter FaceID | 高(顔ロック) | 高 | 高 | 条件付 | 汎用高weightは青グロー破綻=現状NG[S16] |
| ControlNet(pose固定) | 高(構図・体型) | 高 | 高 | 可 | 体型固定の補助に検討 |
| キャラLoRA(per-character) | 最高(根本) | 高(学習) | 中(推論時) | 30日内 | 根本解決[S7][S8] |
| Textual Inversion / Embedding | 中 | 中 | 低 | 可 | 顔の補助アンカー[S16] |
推奨は 3段構成です。現行の良い設定(clip skip2=CLIPSetLastLayer -2、milky/porcelain skin、amber lamp、SCENE_DIST逆算)は維持し、後段を足します。
R-ESRGAN 4x+ Anime6B を 1.5x、2pass目 steps20・denoise 0.35〜0.5(0.50未満で破綻防止、低すぎるとアーティファクト)[S3][S12]。WAI Illustrious では hires fix が手足・指を自動補正し、「detailed hands を連呼するより効く」と実証[S12]。顔が小さい全身構図のガビガビは、ここで顔のピクセル数が増えることが最大の効き目です。| ワークフロー段 | 主に解決する欠陥 | 根拠 |
|---|---|---|
| 第2段 Hires.fix | ①顔ガビガビ ④体型(全体の破綻減) 手足の崩れ | [S3][S12] |
| 第3段 FaceDetailer | ①顔崩れ ⑦表情(顔だけ再生成で締まる) ③男顔(facelessは別途NEGで顔を作らせない) | [S1][S2][S3] |
| 第1段 CFG/sampler調整 | ②マゼンタ肌(過飽和抑制) | [S11][S12] |
| プロンプト BREAK | ②肌色 ⑤小物色(色bleeding分離) | [S9][S10] |
※以下は実測前の試算であり、smoke後に再計測してください。現行採用率を仮に 40% とします。Hires.fix+FaceDetailer 導入で顔・手足由来の不採用が大きく減るため、65〜75% へ向上すると見込みます。
| 指標 | 現行(仮定) | 2段追加後(試算) |
|---|---|---|
| 1Vol生成枚数 | 120枚 | 120枚 |
| 採用率 | 40% | 70% |
| 採用枚数 | 48枚 | 84枚 |
| 1枚あたり生成時間 | 基準1.0 | 約1.6〜1.8倍(2段追加分) |
| 採用1枚あたり実コスト | 高(リテイク多) | 低(リテイク減で実質短縮) |
生成時間は1枚あたり増えますが、不採用枚の作り直しが減るため「採用1枚を得るための総工数」はむしろ短縮します。これがHires/FaceDetailerを「重いから入れない」と判断してはいけない理由です。
BREAK で分離[S9]。SCENE_DIST逆算(s5→s4→s3→s2→s1→s0)と露出度グラデ(s5=100%→s1=0%)をコードで強制(順序生成+stage別outfit上書き)。out of frame / cropped を強く入れると、「頭を画面内に収めよ=顔を描け」と引っ張り合い、男の顔が安定しません[S14]。facelessシーンでは out of frame をNEGから外すか弱める。pink lamp / red light 等を書くと光と肌に色が乗ってマゼンタ肌再発(過去のtoy_bedroom事案と同根)。amber / warm / soft 系のみ。(pink tint:1.4) 等の重み付き色NEGは、逆に色破綻を誘発するとトフィーさん環境で実証済。NEGの肌色対策は pink skin など重み無しシンプルで。現行コードの良い資産は維持します: (milky skin:1.2)(porcelain skin:1.1) pale_skin / (faceless:1.4) / amber bedside lamp:1.4 / CLIPSetLastLayer -2(clip skip2) / SCENE_DIST逆算。これらは正しい方向です。乗せる改修は3つだけ:
faceless male, (male head out of view), no male face 系で「顔を作らせない」方向に統一(out of frameは状況で抑制)。表情は s別にプール(s5=絶頂/快楽上限あり・アヘ顔は局所のみ、s1=平静)をローテーション[S18]。| 欠陥 | 技術的になぜ起きるか(出典) | 即効対策(LoRA無し) | 根本対策 | 生成後の目視確認 |
|---|---|---|---|---|
| ①顔ガビガビ | SDXLは顔が小さい構図で顔比率を正しく出せず、latentで顔geometryが不安定化[S1] | Hires.fix(Anime6B 1.5x)で顔ピクセル増+FaceDetailer(bbox1.3, denoise0.4)[S3][S12] | キャラLoRA+FaceDetailer | 200%拡大で睫毛・虹彩・鼻孔・口角の潰れ/溶けを確認 |
| ②ピンク肌 | 色名タグ・色光のbleedingがcross-attentionで肌へ波及+高CFGで過飽和[S9][S10][S11] | milky/pale skin POS、NEGはpink skin(重み無し)、背景はamber固定、CFG5.0、色名はBREAK分離 | 肌色スライダーLoRA[S5] | スポイトで頬・胸のRGBを採取し R が突出(マゼンタ)していないか |
| ③男の顔が変わる | facelessとout of frameが引っ張り合い顔が安定しない[S14] | NEGからout of frame除外/弱化、faceless male, no male face, male head out of view+男NEG(male hair, male head visible, male torso) | MALE_FIXED LoRA | 3seed以上で「顔が描かれていない/同じ隠し方」かを比較 |
| ④体型が変わる | プロンプト依存の体型識別子はタグ飽和でドリフト[S6] | キャラ別体型固定タグを冗長明示(胸サイズ・身長感・体格を1セット固定)+固定ブロック先頭配置 | キャラLoRA(体型エンコード)[S7] | 肩幅/腰幅/脚長の比率、胸サイズの一貫性を測定 |
| ⑤小物色が変わる | SDXLは小物が苦手+色tagが他要素へbleed[S9] | BREAKで小物の色tagを独立chunk化+小物色を固定タグで明示 | 小物込みLoRA | 小物単独でRGBを採取し指定色との乖離を確認 |
| ⑥髪型・髪長が変わる | 髪記述不足+識別子飽和で髪geometryがドリフト[S6] | 髪色/髪型/髪長を冗長明示(例 black hair, long straight hair, hair past waist)+キャラ別NEGで他髪色上書き+seedキャラ単位固定(補助) | キャラLoRA | 髪先端の到達位置・分け目・前髪形状を比較 |
| ⑦表情がいまいち | 表情タグの飽和+CLIP75トークン制限で末尾の表情指定が弱る[S18] | EXPRESSION_POOLをs別ローテーション、アヘ顔は局所のみ・快楽表情に上限、FaceDetailerで顔を締める(ただしHシーンはdenoise低め) | 表情LoRA/embedding | 目の開き・口の形・恍惚度がシーン段階に合っているか |
| ⑧絶頂逆算が未反映 | 順序がコードで強制されず、露出グラデがstageごとに崩れる(latentは順序を保持しない) | SCENE_DISTで s5→s4→s3→s2→s1→s0 を厳密生成、stage別にoutfit上書き(s5=nude〜s1=着衣)を強制実装 | シーン制御(将来はcontrolnet/LoRA) | Vol通しで露出度がs5(100%)→s1(0%)へ段階低下しているか全体レイアウトで確認 |