こんにちは!悠です!
今回は「Stable Diffusion WebUI」でプロンプトを作成する際に活用することができる、AND構文とBREAK構文の使い方について紹介していきます。
使う際には少し癖がありますが、適切にプロンプト内に混ぜることで、より上質なAIイラストを生成できるのでぜひ試してみてください!
トークン(Token)とは?
AND構文とBREAK構文を使う上で理解しておかなければならないのが、トークン(token)という言葉です。
トークンとは簡単にいうと、プロンプト内に存在する「意味のある文字列」のようなものです。
例えばポジティブプロンプトでよく使う「best quality」は、「best」と「quality」の2つのトークンから成り立っています。
「pink school uniform」なら、「pink」と「school」と「uniform」の3つのトークンからできています。
このように1つのプロンプトの中に複数のトークンが含まれているんですね。
プロンプト内に使われているトークンの数は、WebUIならプロンプト入力欄の右端で簡単に確認することができます。
75トークンまでしか使えないルールの撤廃
「Stable Diffusion」では、75個のトークンを超えたプロンプトは処理されることなく切り捨てられるというルールが存在します。
ですが、現在のAUTOMATIC1111製「Stable Diffusion WebUI」においては、この75トークン制限は撤廃されており、76個目以降のトークンもきちんと出力画像に反映されるようになっています。(下記は参考資料)
AND構文とは?
AND構文とは、上で紹介した75トークンルールを守りやすくするために開発された構文です。
例えば猫と犬のAIイラストを生成したい時に、
と入力すると「cat」、「,」、「dog」で3トークンになってしまいます。
しかしAND構文を用いて、
とすると3つのトークンを「cat AND dog」の1トークンにまとめることができるんですね。
こうやってトークン制限にかかりづらくするのがAND構文(参考記事)です。ただ、現在は75トークン制限が撤廃されているのでほとんど使うことはありません。
私が今まで試した限りでは、下記の記事で紹介している拡張機能「Latent Couple extension」くらいでしか使う機会はありませんでした。

BREAK構文とは?
WebUIにおいては75トークン制限は撤廃されたといいましたが、75トークン目と76トークン目ではプロンプトの効力に差があることが知られています。
76トークン目で使う方が効き目が強くなるんですね。
このことを利用して、絶対に反映したい要素が複数ある場合は、1トークン付近と76トークン付近に配置することで成功率を上げることができます。
ただ、トークンの数を調節するためだけに使わないプロンプトをたくさん採用するのは骨が折れますよね。
そこで活躍するのがBREAK構文です。BREAK構文を使うとその地点から75トークン区切りに達するまでの間を自動的に意味のない文字列で埋めてくれます。
例えば下記の27トークンのプロンプトを使って作成した画像をご覧ください。モデルにはAbyssHellVer3を使用しています。
スカートの色の部分が上手く反映されていませんよね。
ここでBREAK構文を使って下記のように区切って、green shirtの部分を76トークン目から、yellow skirtの部分を151トークン目から始めることで、
上記のように指定部位の色を反映させやすくすることができるんですね。
まとめ
以上が「Stable Diffusion WebUI」で、プロンプトを作成する際に活用することができる、AND構文とBREAK構文の使い方についての紹介でした。
BREAK構文による色移りの防止は絶対ではありませんが、多少なりとも打率を上げることができたりするので、ぜひ皆さんも試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント