Stable Diffusionで作成したキャラクターの顔を維持したまま、服装やポーズ、構図だけを変えたいという用途は多くあります。しかし、img2imgだけで変更しようとすると、元画像と似ていても顔つきが変化してしまうことがあります。この記事では、Stable Diffusionで同じ人物のまま別ポーズを生成するための方法や、顔が変わる原因、再現性を高める設定について詳しく解説します。
Stable Diffusionで同じ顔を維持するのが難しい理由
Stable Diffusionは画像を参考にしながら新しい画像を生成するAIであり、元画像をそのまま編集するソフトとは仕組みが異なります。
img2imgでは元画像の特徴を参考にして再生成を行いますが、顔の細かい特徴まで完全に固定されるわけではありません。そのため、ポーズや構図を大きく変更すると、AIが別の人物として解釈してしまうことがあります。
特に顔は画像生成AIが大きく変更しやすい部分で、髪型、目の形、輪郭などが少しずつ変化することがあります。
img2imgで顔を維持するための基本設定
img2imgで元の顔を残したい場合は、まずDenoising strength(ノイズ除去強度)の設定を調整します。
Denoising strengthが高いほど新しい画像への変化が大きくなり、低いほど元画像の特徴を維持します。
- 0.2〜0.4程度:顔や雰囲気を維持しやすい
- 0.5前後:構図変更と特徴維持のバランス型
- 0.7以上:大きく変化するが顔も変わりやすい
例えば同じキャラクターで立ち姿から座り姿へ変更したい場合は、まず低めの数値から試し、必要に応じて少しずつ調整すると安定しやすくなります。
ControlNetを使ってポーズだけ変更する方法
同じ顔のキャラクターに別のポーズを取らせたい場合、現在のStable Diffusion環境ではControlNetを利用する方法が非常に有効です。
ControlNetは、ポーズや構図など特定の情報をAIへ指定できる拡張機能です。特にOpenPoseを利用すると、人物の骨格情報を指定してポーズだけを変更できます。
例えば元画像のキャラクターを座らせたい場合、OpenPoseで座ったポーズを指定し、顔や服装の特徴は元画像から維持するといった生成が可能になります。
LoRAでキャラクターの顔を固定する方法
特定のキャラクターを何度も生成したい場合は、LoRAを利用すると再現性を高められます。
LoRAは追加学習データによって特定の人物やキャラクターの特徴をAIに覚えさせる仕組みです。
例えば自分で作成したキャラクター画像を複数枚用意してLoRAを作成すると、そのキャラクター専用のモデルとして利用でき、ポーズや背景を変更しても顔の特徴を維持しやすくなります。
顔だけを修正するFace系機能を利用する
一度生成した画像の顔だけが変わってしまった場合は、顔部分だけを修正する方法もあります。
Stable Diffusion Web UIでは、Inpaint機能を使って顔部分だけを再生成できます。
例えば体のポーズや服装は気に入っているが、顔だけ別人になった場合、顔部分をマスクして元画像の特徴を残すように修正すると自然な結果になりやすくなります。
生成時のプロンプトを工夫する
同じ人物を維持したい場合は、プロンプトにも一貫した特徴を入れることが重要です。
例えば以下のような特徴を毎回同じように指定します。
- 髪色
- 髪型
- 目の色
- 年齢や雰囲気
- 服装の特徴
ただし、文章だけで完全に同じ顔を作ることは難しいため、プロンプトだけではなくControlNetやLoRAなどの補助機能を組み合わせることが効果的です。
Stable Diffusion以外の方法について
同じ人物を維持した画像生成を目的とする場合、Stable Diffusionが向いていないというより、適切な機能を使う必要があります。
単純な画像生成では毎回違う人物になりやすいですが、LoRA、ControlNet、Inpaintなどを組み合わせることでキャラクター固定に近い制作ができます。
ローカル環境で自由度の高い画像生成を行いたい場合は、Stable Diffusion系の環境を拡張して使う方法が現在でも有力です。
まとめ
Stable Diffusionで元画像の顔を維持したまま別ポーズを作る場合、img2imgだけでは限界があります。
Denoising strengthを調整し、ControlNetのOpenPoseでポーズを指定し、必要に応じてLoRAでキャラクター特徴を固定すると、同じ顔のまま多様な画像を作りやすくなります。
顔が変わる問題はStable Diffusionの性能不足ではなく、生成方法や設定による影響が大きいため、目的に合った機能を組み合わせることが重要です。


コメント