トークンの話
トークンとかチャンクとかBREAKとか、その辺のお話だよ
長いよ😇
- - - -
SDで画像生成する時、プロンプトの先に書いたタグが強く、後に書いたタグが弱く影響するのはみんなも知ってるよね
でも実はこれ、必ずしもそうじゃない事があるって知ってた?
2枚目の画像では右上の数字が 75/75 になってるよね
ここで更にタグを追加すると、3枚目みたいに 87/150 になったね?
実は、この分母が大きくなるタイミングで影響度の例外が出てくるよ
SD内部ではタグの分量を「トークン」という単位で管理してるんだけど、75トークンをひとつの区切りとして「チャンク」と呼んでるんだってさ
ということは、チャンクの先頭側がより強く生成結果に影響するってことだね
つまり3枚目の例では、最初のチャンクを超えた76トークン目の large breasts が強めに効いちゃうってことだね
このままだと想定外にデカいナニかが生成されちゃうよ…!(; 'ω')✨
でもチャンクの境界を意識してプロンプトを組むとか無理じゃない?私には無理だよ…!( ´ᾥ` )
そんな時に便利なのがBREAKキーワード!
これは「現在のチャンクを無効なトークンで埋める」といった効果があるもので、生成結果に影響を出さずに次のチャンクが使えるようになるよ👍
4枚目の画像の通り、各チャンクで75トークンを埋めきってなくても 225/225 になってるよね
これを使えば想定外のタグが強く効くようなことは避けられると思うよ
他にも、同チャンク内のタグはそれぞれ影響し合うって話もあるから、余計な影響を避けたい時にもBREAKが使えそうだよね👀
ひとつ注意したいのが、BREAKはたぶん予約語だから「BREAK」の形のまま書かなきゃ効果が無いよ
たまにbreakとかBreakって書いてる人をみかけるけど、使う時はプロンプト欄右上のトークン数に注目してみると良いかもだよ👉️
- - - -
1枚目のイラストは例に挙げたプロンプトでいつも通りに仕上げたやつ
4枚目はBREAKを使っていつものテンプレとかに書き換えて、同シードで生成したやつ
※この投稿はあくまで私の理解を書き出したものだから、正確な事が知りたい時はStabilityAIの公式ドキュメントとかを読んでね!
呪文
呪文を見るにはログイン・会員登録が必須です。
イラストの呪文(プロンプト)
イラストの呪文(ネガティブプロンプト)
- Steps 30
- Scale 5.5
- Seed 3602494475
- Sampler Euler A Turbo
- Strength
- Noise
- Steps 30
- Scale 5.5
- Seed 3602494475
- Sampler Euler A Turbo