生成AIで色を安定させる方法【Stable Diffusionプロンプト解説】
生成AI(Stable Diffusion)で
「毎回髪色が変わる」
「指定した色にならない」
こんな経験はありませんか?
この記事では、プロンプトで色を安定させる具体的な方法を
実例付きで解説します
まず始めに色を指定しなかったら
こちらの画像をご覧ください

服装はジャージを指定していますが、キャラクターの情報としては
long hairとだけしか指定していません
そのため、同じ条件でもう一度出力を行うと

ロングヘアーではあるものの、髪の色が全く違いますね
ロングヘアーはこの色が多い、という学習があるのか何もしなくても
金髪キャラが生成されることが多かったですが
出力するたびに結果が変わることには変わりません
色を変えたい物の手前に色のプロンプトを置く
髪の毛の色を固定したい場合は、long hairの前に色を置きます
青髪にしたい場合は、blue long hairと指定すると

このように青髪ロングヘアーのキャラが出力されました
これが色指定の基本になり
ほかの物に対しても、色指定+アイテムの形で色を指定することができます
色を指定しなくても固定される場合

この画像はlong hairに加えてgyaruというプロンプトを追加して出力したものになります
髪の色を指定したわけではありませんが、出力されたキャラは金髪になります
おそらくモデルがギャルと言えば金髪、という感じで学習しているので
何もしなければ金髪キャラとして出力されます
blue long hairと指定しても、金髪または金髪+毛先が青で出力されました
ただしーー

long blue hairで出力すると、ごらんのとおり青いロングヘアーのキャラが出力されます
blue long hairは指定する髪の前にlongがある分かかりが弱く
long blue hairは直後にhairがあるので、より強く関連付けられて解釈されます
ちなみにblueの位置が気になるという人は
long hairとblue hairを分けても通ります
色指定しても通らないパターン
gyaruを使用して出力している画像は黒ギャルとして出力されています
これはこちらで指示したわけではなく
ギャル=黒ギャルみたいな感じで学習されているためでしょう
しかしギャルには白ギャルもいるので
色白の肌:fair skin
を指定して、この子は白ギャルだよ、と教えてあげると

このように白ギャルを出力してくれます
しかし、fair skinを指定した場合でも黒ギャルとして出力されることも多く
白ギャルもいるけど黒ギャルも多いからそっちにしよう
みたいな感じで、黒ギャルにされてしまいます
なので、この子は絶対白ギャル!と強く教える必要があります
そのために必要なのが強度指定で
(fair skin:1.4)
このような形で、プロンプト+数値で、プロンプトの強度を強くします
値を強くすればするほど強く判定されるために
これで白ギャルが出力されやすくなり、さらに強度を上げるとほぼ白ギャルになります
色指定の注意点
こちらの画像をご覧ください

髪型をサイドテールにして、シュシュを使ってまとめています
このシュシュに関しても、色指定をしていなければ
出力のたびに色が変わるため、シュシュの色を指定する必要がありますが
シュシュのプロンプトであるhair scrunchie
これに対して、long hairの時と同じようにblue hair scrunchieを指定すると
先頭にあるhairに対して青色だと解釈してしまい髪の方を青くしてしまいます
なのでシュシュを青くしたい場合、hair blue scrunchieと指定する必要があります
ここはlong hairの時と異なるので、少し注意が必要ですね

なお、こちらはただしく色を指定した画像になりますが
ご覧の通り髪の毛まで青くなっています
これはシュシュの色は指定したものの、髪の色は指定していなかったため
青が指定されてる場所があるから、ほかのところも青く塗っちゃおう
みたいな感じでモデルが解釈したようです

髪の毛は赤、と指定してあげれば
ごらんのとおり赤い髪に青いシュシュという、指定通りの画像が出力されました
どうしてもうまくいかない場合は要素を上位概念を避ける
今回で言うと髪の色や肌の色を変えてきたgyaruというプロンプトが上位概念になります
gyaruはこういうものだという学習がされているため
肌の色や髪の色を指定しても無視されることになるわけです
肌の色に関してはfair skinの強度をあげることで対処可能ですが
目の色なんかは強度を上げても無視されることもあったりします
gyaruを使いつつ安定させるのであれば、gyaruっぽい眼の色を選ぶことで安定させられますが
どうしてもその色を使いたい!というのであれば
要素を分解して自分でプロンプトを付け加える、という方法があります
たとえばギャルであれば、アイラインやネイルを指定することで
gyaruというプロンプトを使わずとも、ギャルっぽいキャラが作れるわけですが
まとめ
今回はプロンプトの色指定に関して検証しました
基本的には色指定+アイテムの形で色を反映させることができますが
上位概念を使用していればそれに引っ張られてしまったり
long hairのように形容詞付きのアイテムの場合、前につけると少し弱かったり
hair scrunchieのように、名詞+名詞で指定するアイテムに対しては
前の名詞に色を吸われてしまうなど気を付けなければならない点があります
しかし色指定はキャラクターを安定させるために必須の要素であり
またキャラクターの魅力に取って必要不可欠な要素でもあるので
うまく使いこなして理想のキャラを作るために役立させたいですね

