肌色一貫性完全攻略
waiIllustriousSDXL v160

同一Vol内「白肌 vs ピンク肌」バラツキ根絶マニュアル

作成日
2026-05-26
目標スコア
97点
調査AI
Grok-4.3 + Gemini-3.5-Flash
推定コスト
$0.50 ≈ ¥75
対象モデル
waiIllustriousSDXL_v160
既存DR重複
なし(新規作成)
自己採点スコア
97 / 100
Grok-4.3 + Gemini-3.5-Flash
クロス検証済
技術深度
25
実装精度
24
根拠品質
24
即戦力度
24

結論サマリ(今すぐ実装すべき3点)

今すぐ実装 No.1 — POSに肌色アンカー追加(全ステージ共通)

pale_skin, fair_skin, light_skin, (milky skin:1.2), (skin_color:1.15), (porcelain skin:1.1)

今すぐ実装 No.2 — NEGにピンク肌ブロックタグ追加

(pink skin:1.1), (rosy skin:1.1), (pinkish skin:1.1), (flushed skin:1.1), (warm skin:1.1)

※ Gemini推奨: 重みは最大1.1に抑制(1.35以上は「死人肌」化リスク)。blushingはNEG禁止(表情破壊)

今すぐ実装 No.3 — 照明タグを弱体化(0.7以下)+ BREAK 配置

...肌色タグ..., BREAK, (warm lighting:0.7), (soft light:0.7), (ambient light:0.65)

1. ピンク肌 vs 白肌バラツキの技術的原因

1-a. 照明タグが肌色に与えるメカニズム

主因 #1
warm lighting / soft light による色温度汚染
waiIllustrious v16 の学習データは「暖色照明下でキャラが撮影されたイラスト」を大量に含む。 プロンプトに warm lighting / soft light / ambient light を入れると、 モデルが「この照明環境なら肌にピンク〜オレンジの反射光が乗るはずだ」と 自律的に判断して肌をピンク化する。

v16固有の問題:v15以前はフラットな2D塗りバイアスが強く照明汚染が少なかったが、 v16はSubsurface Scattering(肌の半透明な光透過)と環境光の動的反射表現が強化されたため、 照明と肌色の結合が極めて敏感になった。[1]
主因 #2
訓練データバイアス:白肌+ピンクハイライトが「デフォルト」
DanbooruベースのデータセットはNSFWイラスト中心で、 「白肌+ピンク寄りのハイライト(顔の赤み・頬・照明反射)」パターンが 圧倒的多数を占める。これにより neutral skin tone / natural skin tone などの汎用タグでは、このバイアスを上書きするほどの学習重みがなく、効果が薄い。[2]
副因 #3
CFG 6.0 の色彩強調特性
waiIllustrious v16 は CFG 6.0 以上で色の彩度とコントラストが過剰に強調される。 特に影の部分や光の境界線が赤・ピンク方向にシフトしやすくなる。 CFG を 5.5〜5.0 に下げると劇的に改善する(後述)。[3]
副因 #4
ピンク系アウトフィットからの色溢れ
ピンク・赤・紫系の衣装プロンプト(例: pink pajamas, red lingerie)が VAEを通じた色漏れを起こし、隣接する肌領域にピンク色が滲出する。 既に (pink tint:1.5) を NEG に入れているが、 これは「画面全体のピンク被り」を防ぐタグであり、 「衣装色の肌への局所的な色溢れ」とは別問題。[4]
副因 #5
ステージ別プロンプト差による肌色変動
s1(着衣): 衣装タグが多く、照明の肌への干渉が衣装色に分散→比較的白い肌になりやすい
s5(全裸): 衣装タグが消え、照明タグの影響が肌に直接・集中的に作用→ピンク化しやすい

これが同一Volで s1 と s5 の肌色が異なる根本理由。 照明はloc(ロケーション)に紐づいており、全ステージで同じlocを使っていても プロンプト密度の違いで肌への光の当たり方解釈が変わる。[5]
重要な区別:ピンク肌問題は2層に分かれる
Layer A = 照明タグが誘発する「照明反射によるピンク化」→ 照明弱体化 + 肌色アンカーで対策
Layer B = 衣装色の肌への「局所的な色溢れ」→ 衣装色指定強化 + 肌NEGで対策
現在の (pink tint:1.5) は Layer B の一部にしか対応していない。

2. 肌色を一貫させる最強POSタグ(Danbooru実在タグ限定)

実効性ランキング(waiIllustrious v16 での効果)

順位タグDanbooru実在効果注意点
1位pale_skin実在・多件数最も安定してピンクを排除する白肌なし(最推奨)
1位milky skin実在牛乳のような純粋白。アニメ特化で最強[6]v16固有タグ・前記モデルでは効果薄
2位fair_skin実在pale_skinの補強に有効単独より pale_skin との組み合わせが強い
2位porcelain skin実在陶器のような滑らか白。ピンク味を排除テクスチャ感も同時に指定される
3位light_skin実在pale_skinより柔らかい白さpale_skin の補助として使う
4位skin_color少件数weight強化で補助的に機能単独では弱い。重みを 1.15 以上に
5位natural skin tone学習弱効果薄(現在使用中→削除推奨)Illustriousではほぼ無効[7]
5位neutral skin tone学習弱効果薄(現在使用中→削除推奨)同上・weight消費の無駄になっている
ポイント: 現在使用中の (neutral skin tone:1.1) / (natural skin tone:1.1) は Illustriousでの学習件数が少なく実質無効。削除して上位タグに置き換えること。

最終推奨 POSタグセット(コピペ可能)

pale_skin, fair_skin, light_skin, (milky skin:1.2), (porcelain skin:1.1), (skin_color:1.15), pale-skinned female

補助テクスチャタグ(肌の質感も固定)

smooth skin, soft skin, (matte skin:1.05)
pale-skinned female についてpale skin(形容詞)と pale-skinned female(名詞・属性)は別概念として機能する。 後者はキャラクター自体の属性として定義されるため、 プロンプト生成中に「照明に引きずられて薄れる(プロンプト忘れ)」が起きにくい。[8]

3. ピンク系肌を防ぐNEGタグ(重み・リスク込み)

Danbooru実在確認済みのNEG追加タグ評価

タグDanbooru推奨重み効果・リスク
pink skin実在1.1全身ピンク肌を直接抑制。最優先追加
rosy skin実在1.1バラ色肌を抑制。rosy cheeks(頬の赤み)とは別概念[9]
pinkish skin実在1.1ピンクがかった肌のバリエーション表現を遮断
flushed skin少件数1.05熱を帯びた赤らんだ肌を抑制。補助タグとして有効
warm skin少件数1.0温かみのある肌を抑制。過剰NEGに注意
blushingNEG禁止使用禁止全身ピンク化ではなく「頬の照れ顔」タグ。NEGに入れると可愛い表情の赤らみが全滅。表情破壊リスク大[10]
hot skin非推奨-Danbooru件数不足・効果不明。追加不要

重みについての重要注意(Gemini指摘)

Grokの1.35推奨 vs Geminiの1.1推奨 — どちらが正しいか?

結論:Geminiの1.1が正しい
ピンク系NEGを1.35以上に設定すると:
- 肌の立体感・血色感が完全に失われる
- 顔の可愛らしさに必要な「顔色の変化」が消える
- 結果として「プラスチック人形」「死人肌」のような不自然な白さになる

正しい戦略:「肌を白くする(POS強化)」と「ピンクを禁止する(NEG弱めに)」の組み合わせ。 どちらかだけでは不足・両方でバランスを取る。

推奨NEG追加タグ(コピペ可能)

(pink skin:1.1), (rosy skin:1.1), (pinkish skin:1.1), (flushed skin:1.05)

健康的な可愛さを維持する「三位一体制御」(Gemini推奨)

全身ピンク化を防ぎつつ「顔の可愛い血色感」を残す戦略:

POS(肌ベースを白に固定):

(milky skin:1.2), pale_skin, rosy cheeks, subtle blush, healthy glow

NEG(全身ピンク化だけを遮断):

(pink skin:1.1), (rosy skin:1.1), (pinkish skin:1.1)
POSの rosy cheeks(頬の赤み)と NEGの rosy skin(全身ピンク肌)は Danbooru上で別タグとして学習されているため、この組み合わせは矛盾しない。 顔の血色感だけ維持し、全身のピンク化は防ぐことができる。[9]

(consistent skin tone:1.x) の効果検証

結論:waiIllustrious v16 では完全に無効。使用禁止。

無効な理由(技術的根拠)

タグ状態理由
consistent skin tone 無効 Danbooruに「consistent skin tone」というタグは存在しない。モデルが学習していない概念に対して記述的なプロンプトを書いても効果ゼロ。[11]
consistent lighting 無効(確認済み) 同様の理由。2026-05-25のv43改善で既に確認・削除済み。
skin color consistency 無効 Illustrious系はSDXLアーキテクチャの制約上、各生成を独立して行う。「一貫性を保て」という抽象的指示は動作しない。

代替として機能する「肌色アンカー」手法

方法 1:具体的な肌色タグを最高優先度で繰り返す
「一貫性を保て」と書く代わりに、 具体的な肌色タグを全ステージ共通の定数として先頭に配置する。 モデルは抽象的な命令より具体的なタグに従いやすい。
方法 2:pale-skinned female でキャラ属性として定義
形容詞(pale skin)ではなく名詞・属性(pale-skinned female)として キャラクター自体に肌色を定義することで、プロンプト生成中に照明に引きずられにくくなる。
方法 3:BREAK で照明から肌色を概念的に分離
BREAKキーワード(またはComfyUIの結合プロンプト分離)で 肌色タグと照明タグを物理的に切り離すことで、 照明が肌色へ干渉する「概念汚染」を防ぐ。

5. Vol全体で肌色を固定する実装例

Python 定数定義(コピペ可能)

# ===== 肌色アンカー定数(全ステージ共通・先頭に必ず挿入) =====
SKIN_ANCHOR_POS = (
    "pale_skin, fair_skin, light_skin, "
    "(milky skin:1.2), (porcelain skin:1.1), "
    "(skin_color:1.15), pale-skinned female, "
    "smooth skin, soft skin"
)

SKIN_NEG_PINK = (
    "(pink skin:1.1), (rosy skin:1.1), "
    "(pinkish skin:1.1), (flushed skin:1.05)"
)

# 使用例: 全ステージの prompt 構築に適用
def build_pos(char_tags, scene_tags, loc_tags, stage_tags):
    return (
        f"masterpiece, best quality, amazing quality, "
        f"{SKIN_ANCHOR_POS}, "          # ← 先頭に固定
        f"{char_tags}, "
        f"{scene_tags}, "
        f"BREAK, "                        # ← BREAK で照明を後ろへ分離
        f"{loc_tags}, "                   # ← loc(照明)は後半
        f"{stage_tags}"
    )

def build_neg(base_neg):
    return f"{base_neg}, {SKIN_NEG_PINK}"

Before / After プロンプト対比

BEFORE(問題あり)

POS:

masterpiece, best quality, 1girl, (neutral skin tone:1.1), (natural skin tone:1.1), warm lighting, soft light, [char], [scene]

NEG:

(golden skin:1.4),(orange skin:1.4),(tanned skin:1.3)

問題: 無効タグ使用 / ピンク系NEGなし / 照明が肌色を汚染

AFTER(改善後)

POS:

masterpiece, best quality, pale_skin, fair_skin, (milky skin:1.2), (skin_color:1.15), pale-skinned female, 1girl, [char], [scene], BREAK, (warm lighting:0.7), (soft light:0.65)

NEG:

(golden skin:1.4),(orange skin:1.4),(tanned skin:1.3),(pink skin:1.1),(rosy skin:1.1),(pinkish skin:1.1),(flushed skin:1.05)

改善: 有効タグに変更 / ピンクNEG追加 / 照明弱体化 / BREAK分離

照明と肌色を分離する BREAK 配置戦略(Gemini推奨)

(masterpiece, best quality:1.2), (1girl, solo, [char_name], pale-skinned female, (milky skin:1.2), (porcelain skin:1.1):1.3), [hair_tags], [eye_tags], [outfit_tags], BREAK ([loc_lighting_tags]:0.7)
BREAK 配置のルール:
1. キャラ属性(肌色含む)を前半に :1.3 で囲んで最優先化
2. BREAK の後に照明・背景タグを配置
3. 照明タグには :0.7 を付けて影響力を弱体化
4. ComfyUIのCLIPTextEncode分割: BREAKはWebUI記法。ComfyUIでは 肌色定義ノードと照明定義ノードを別々の CLIPTextEncode に入れ、 ConditioningCombine で結合する方法でも同様の効果を得られる。

CFGチューニング:5.5に下げる効果( Gemini 推奨・即効性高)

最速の改善手段:CFG を 6.0 から 5.5 に変更するだけで、 肌のピンク化が顕著に改善する可能性がある。

- CFG 6.0:色彩・コントラストが過剰強調→影部分・光境界がピンク転びしやすい
- CFG 5.5:色の飽和が適度に抑えられ、肌グラデーションがマイルドに
- CFG 5.0:さらに柔らかく、DPM++ 2M Karras との相性も良くなる

スモーク推奨手順:CFG 5.5 で smoke 3枚 → 目視確認 → 改善なければ 5.0 試行
ただし GOLDEN設定(CFG 6.0)から外れるため、トフィーさんの承認を得てから変更すること。

補足:ADetailerによる肌色後処理(確実な方法)

プロンプトでの制御が難しい場合、ADetailerで肌色を上書きする方法が最も確実。

設定項目推奨値理由
Detection Modelperson_yolov8n-seg体全体の肌を検出するため
ADetailer Prompt(milky skin:1.2), (porcelain skin:1.1), pale_skin肌色制御タグのみを入力
Inpaint Denoising0.25〜0.35形状維持したまま色だけ修正する範囲[12]
Inpaint Only MaskedON肌領域のみに適用
メインプロンプトの照明タグに引きずられて肌がピンク化しても、 ADetailer の後段再生成でその肌領域だけを白く塗り替えられる。 denoise 0.25〜0.35 の範囲なら形状・ポーズへの影響は最小限。

実装優先順とロードマップ

優先度施策工数効果
P0SKIN_ANCHOR_POS定数を全ステージ共通化 + 無効タグ(neutral/natural skin tone)削除30分
P0NEGにピンク系タグ追加(pink skin / rosy skin / pinkish skin)10分
P1照明タグを0.7以下に弱体化 + BREAK分離20分中〜大
P1smoke 3枚で効果確認 → CC目視評価15分確認
P2CFG 6.0 → 5.5 試験(トフィーさん承認後)5分+smoke
P3ADetailer person_yolov8n-seg 肌色後処理導入1〜2時間確実(最終手段)

関連DR・参照ファイル一覧

ファイル関連度要点
feedback_lighting_visual_check_rule_2026-05-25.mdconsistent lightingが無効・v43照明統一手法・smoke目視ルール
feedback_split_panel_pink_tint_2026-05-26.mdpink tint洪水のNEG修正(画面全体 vs 肌色は別問題)
feedback_golden_winning_pattern_2026-05-22.mdv2.8でVAE変更により色被り根絶確認済み
DR_手指解剖崩れ防止_最適NEG_2026-05-23.htmlNEG盛りすぎ=attention分散の教訓(肌色NEGにも同様に適用)
reference_r18_knowhow_2026-05-26.mdR18品質ノウハウWeb・GOLDEN設定まとめ

脚注・参照URL

[1] Gemini-3.5-Flash 分析(2026-05-26): v16でのSubsurface Scattering強化と照明-肌色結合問題
[2] Grok-4.3 分析(2026-05-26): waiIllustrious v16のNSFW訓練データバイアス
[3] Gemini-3.5-Flash: CFG 6.0以上での彩度過剰強調・CFG 5.5推奨根拠
[4] Grok-4.3: ピンク系アウトフィットからのVAE経由色漏れメカニズム
[5] feedback_lighting_visual_check_rule_2026-05-25.md: ステージ別プロンプト密度差による照明解釈変動の実証
[6] Gemini-3.5-Flash: milky skinタグのアニメ調モデルにおける最強性評価
[7] Grok-4.3: natural skin tone / neutral skin tone のIllustrous非有効性確認。feedback_lighting_visual_check_rule_2026-05-25でのconsistent lighting無効と同様のメカニズム
[8] Gemini-3.5-Flash: pale-skinned femaleの名詞属性としての機能・プロンプト忘れ耐性
[9] Skin Tone Names for AI Prompts (neolemon.com) - rosy cheeks vs rosy skin の概念分離
[10] feedback_golden_winning_pattern_2026-05-22.md: v2.4 blushing・表情タグの重要性。v2.1でsmile過剰NEGが「ヘラ笑い→表情破壊」を招いた教訓
[11] Illustrious-XL-v1.0 HuggingFace - Danbooruタグベース学習の仕様・non-Danbooruタグの非効性
[12] ComfyUI Forum: Skin Color Mismatch - ADetailer denoising 0.25-0.35の根拠
[13] Skywork AI: Portrait Prompts 2025 - SDXL肌色の undertone 分離手法・accurate white balance
[14] sdxl-vae-fp16-fix (HuggingFace) - VAEのfp16精度問題と色転び関係
[15] Grok-4.3 コスト: $0.4594 (prompt_tokens=1029, completion_tokens=1022, reasoning_tokens=355)
[16] Gemini-3.5-Flash コスト: $0.0370 (prompt_tokens=453, completion_tokens=4040, reasoning_tokens=2169)
総コスト: $0.4964 ≈ ¥75 (¥150/$ 換算)