Stable Diffusionでキャラクターを生成していると、「服を着てほしいのにAIが勝手に脱がせてしまう」という場面に出くわすことがあります。

特にダウンジャケットやコートといった「前を閉じた厚着」は生成AIが苦手とするケースが多く、プロンプトで指定しても胸元を開いたり肩を露出させたりしてくることがあります。この記事では、その問題を実際に解決した方法をまとめておきます。

なぜAIは服を脱がせようとするのか

Stable Diffusionでは、画像の方向性がおおむね次の優先度で決まると感じています。

  1. 構図・学習バイアス
  2. プロンプト
  3. 元画像

そのため、プロンプトで衣装を指定しても、ControlNetで参照画像を渡しても、モデルが持つ「露出させたい」バイアスに引っ張られて修正されることがあります。

この問題を安定して抑える方法として有効だったのが、img2img+Denoising strengthの制御です。

解決の流れ

大きく2段階で進めます。

  1. まず服を着た画像をtxt2imgで生成する
  2. その画像をimg2imgに渡してキャラクターを再生成する

元画像に「衣装の形状情報」を持たせた状態でimg2imgをかけることで、AIが衣装を勝手に変更する余地を狭めるイメージです。

手順

① txt2imgで衣装のベース画像を作る

まず通常のtxt2imgで、コートやダウンジャケットを着たキャラクター画像を生成します。キャラクター情報はここでは不要で、衣装の形状が正確に出ていれば十分です。この画像が次のステップの土台になります。

② img2imgに画像を読み込む

img2imgタブに①の画像を読み込み、ここからキャラクター情報を追加して再生成します。

③ ポジティブプロンプトを設定する

キャラクター情報に加えて、衣装の情報も必ず記述します。衣装プロンプトを省くと、AIが服装を勝手に変更することがあります。

1girl, long black hair, oversized black puffer jacket,
white knit sweater, long skirt, winter outfit

④ ネガティブプロンプトで露出を阻止する

AIが肩や胸を開こうとする方向を、ネガティブプロンプトで抑えます。

bare shoulders, open jacket, cleavage, exposed chest

⑤ Denoising strengthを設定する

ここが最も重要な調整点です。

推奨値:0.45

効果
0.3元画像をほぼ維持
0.45衣装維持+キャラ調整のバランス
0.7以上衣装が崩れる可能性あり

0.45付近にすることで、元画像の衣装形状を保ちながらキャラクターだけを調整するバランスが取れます。この値より高くすると、AIが衣装に手を入れ始めます。

⑥ ADetailerで顔を補正する

最後にADetailer(face_yolov8n.pt)を有効にして顔を補正します。img2imgは顔が崩れやすいため、これを加えることで表情の破綻を防げます。

最終設定まとめ

ステップ内容
1txt2imgで服を着た画像を生成
2img2imgに読み込む
3キャラ+衣装プロンプトを入力
4ネガティブで露出を阻止
5Denoising strength = 0.45
6ADetailer(face_yolov8n.pt)を有効化

この方法が有効な場面

冬服・ダウンジャケット・コートのように「プロンプトだけでは維持できない衣装」に対して、特に効果を感じています。「80点の状態で安定して出す」ことを優先するなら、試してみる価値がある手順です。

使用環境や対象モデルによって挙動は変わりますので、Denoising strengthの値は手元で調整してみてください。