SeaArtで遊ぶ第194回

第194回遊びのテーマ
「BREAK構文」

Stable DiffusionでのBREAK構文について勉強しに行きました。大まかに言うと3つの違う解説があり、なかなか難しかったです。
75トークン制限
1年以上前から2023年12月まで仕様そのものがたびたび変わっているようで、それだけでも大変です。Stable Diffusionではトークン数が表示されますが、SeaArtでは表示されないので、なかなか厳しいです。
トークンとチャント
75トークンごとに1つのチャント(ブロックのようなもの)を形成し、75トークンごとにチャントが増えていくそうです。
大雑把にとらえて
75トークン目にあたるプロンプトが76トークン目にまでまたがると、そのプロンプトはうまく機能できないそうです。そこで、75トークン目に意味のない文字列を挿入するとよいとのことです。しかし、何を言われても、そもそもSeaArtではトークン数がわかりません。ここで、少し振り返ってみると、長いプロンプトでうまく画像生成されない場合があったことを思い出します。何となくうまくいっていないプロンプトの前に、「BREAK」と入れれば、問題が解決する場合があるようです。
そしてまた1つ思い出します。それは、自動生成されたプロンプトに同じ言葉の繰り返しが見られたことです。もしかしてチャントまたぎを自動的に回避しているのでしょうか。別の解釈では、プロンプトに意味のない文字列を加えること自体が意味を持つようです。(※説明が難しいです。)
ここまでが、あるサイトの1つの解説でした。他に2つ解説があったのですが、画像生成して実際に説明した方が早いので、早速、進めてみます。

いつものようにお借りしてきます。
設定は変えずにシードもコピペして進めます。

ポスター , こどもの日, 遊園地で, 風船を持った小さな男の子, ジャンプしてる,

ポスター , こどもの日, 遊園地で, BREAK 風船を持つ小さな男の子, ジャンプしてる,
BREAKを入れると、
風船をしっかり持ちました。
リュックが正しく生成されました。
左手は少し悪くなりました。
全体的に水色プロンプトが強調されているようです。

ポスター , こどもの日, 遊園地で, 風船を持つ小さな男の子, ​BREAK​​ ジャンプしてる,
BREAKを入れると、
ジャンプ力が上がって、男の子が少し大きくなりました。
風船がハート型になりました。
左手側に物体が生成されました。

まとめ
「BREAK」を使うと、その後のプロンプトが強調されることがわかりました。トークン数を気にしなくても、少し長めのプロンプトの場合、大事なプロンプトの前に入れておくという手立てが考えられます。
解説によると、BREAKの乱発は良くないようです。最高でも5つまでと書かれていました。
BREAK構文に関しては、Stable Diffusionの達人の方でも未知の部分があると言っておられます。SeaArtでも同じように扱えるようですが、こちらも大変難しいです。

コメント

タイトルとURLをコピーしました