【Stable Diffusion】BREAK構文の使い方|breakの確認方法を実例で解説。使えない・機能しないときの対処法(チャンクとトークンは何か?カウント方法)

Stable diffusion stability ai |Photoone(フォトーン) stable diffusion

Stable Diffusionで意図した画像を作成するために覚えておくべきものにBREAK構文があります

BREAK構文は正しく記述しないと全く機能しません。ここではBERAK構文の使い方や、正しく適用されているかを見分けるポイントを実例で解説しています。


BREAK構文とは何か?

Stable DiffusionのBREAK構文とは画像生成AIにプロンプトを適切に伝えるための構文です。

例えば、プロンプトを記述するときに「1人の女性、白いシャツ、長いスカート、ピンク色のカーディガン」というように記述したとします。

するとAIといえど完璧ではないため、色の要素として「白」「ピンク」を理解し、それをシャツやカーディガンに適用することがあります。「白いシャツ」と指定したのに「ピンク色のシャツ」の画像が生成されてしまったりするわけです。

これを、完全に「白いシャツ」「ピンク色のカーディガン」と言葉を区切ってプロンプトが混ざりあうことを防ぐのがBREAK構文です。


BREAK構文の使い方

BRAK構文の使い方はとても簡単です。


使い方

プロンプトで区切りを入れたいトークン(単語)の部分に「BREAK」と記述するだけです。

トークンA,,,, BREAK トークンF,,,,

ワンラインでも改行してもOKです。(トークンはキーワードのことです)


ワンラインと改行ありの記述比較

best quality, ultra high res, 1girl, white shirt, (long skirt:1.1), neat, (black gray hair:1), looking at viewer, small breasts, not exposed, formal, kind, smile
BREAK pale pink cardigan

↑↓ 同じ

best quality, ultra high res, 1girl, white shirt, (long skirt:1.1), neat, (black gray hair:1), looking at viewer, small breasts, not exposed, formal, kind, smile
BREAK

pale pink cardigan


何度でも使える

プロンプトの中で何度でも使うことができます。

best quality, ultra high res, 1girl, white shirt
BREAK

 (long skirt:1.1), neat
BREAK

(black gray hair:1), looking at viewer
BREAK

small breasts, not exposed, formal, kind, smile
BREAK

pale pink cardigan



BREAK構文の注意点|上手く機能しないときの対処法

BREAK構文は正しく記述しないと機能しません。上手く機能しないときは他のプロンプトを適切に読み込めなくなる不具合も含んでいます。


大文字のみ。小文字はダメ

BREAKは大文字のみです。小文字を含むと機能しません。

✕ Break
✕ break

全て大文字で記述することで、トークン(キーワード)と区別しています。


BREAKの後にカンマは不要

BREAKを記述したあとにカンマは必要ありません。

✕ BREAK,

Stable DiffusionでBREAK構文として認識はされますが、生成する画像の制度が下がります。記述するときは BREAK pink cardigan, のように半角スペースを空けてトークンを記述します。


BREAKが正しく機能しているか確認する方法

BREAKが正しく機能しているか確認する簡単な方法があります。

それはプロンプトの右上の数字が150や225など、BREAKの数に応じて75倍ずつ増えているか確認することです。


(例1)BREAKが1つの場合


(例2)BREAKが2つの場合


(例3)BREAKが機能していない場合
小文字を入れたBreakを指定した場合、BREAK構文として認識されないため、ここが75の倍数で増加しません。



チャンクとトークンとは何か?

チャンクとは何か?

Stable Diffusionでは画像生成するためのプロンプトを75トークンごとにひとまとまりとしてとらえます。この75トークンのひとまとまりをチャンク(Chunk)と呼びます。

チャンクごとに画像生成AIに与えるプロンプトの文脈が区切られます。BREAKを使うと強制的にチャンクを区切ることで、明確にキーワード(トークン)を分けることができます。


トークンのカウント方法

例えば、promptに次のようにトークン(キーワード)を入力したとします。

3girl, long hair


このとき、私たち的には「3girls」「long hair」の2単語しか入れていないと感じますが、Stable Diffusionのプロンプトとしては次のように理解されます。

「3」「girl」「,」「long」「hair」の5トークンです。数値やカンマも1つのトークンとしてカウントされることに注意が必要です。

このため右上に表示された1チャンクあたりのトークン数は75となっています。


過去の経緯

その昔、プロンプトに入力できるトークンは75まででした。

75トークン以上は無視されてしまい、このためあまり多くのキーワードを処理することができませんでした。

それが今では改良され、75トークンをひとまとまりとして、次は76~150トークンを2つ目のチャンク、151~255トークンまでを2つめのチャンクとして認識できるようになりました。



実例:BREAKの有無による処理結果の違い

実際にBREAKありなしでどれぐらい処理結果が変わるかを見てみます。

入力するプロンプトは次のようなものです。promptの部分に色や服装を指定するキーワードとして「white shirt(白いシャツ)」「black gray hair(黒いグレーがかった髪)」「pale pink cardigan(淡いピンクのカーディガン)」が入っていることに注意してください。

特にカーディガンがピンクになっているかどうかを見るとわかりやすいです。

prompt

best quality, ultra high res, (photorealistic:1.4), 1girl, white shirt, (long skirt:1.1), neat, (black gray hair:1), looking at viewer, small breasts, not exposed, formal, kind, smile, pale pink cardigan

negative prompt

paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans, big breasts, huge breasts, exposed, (cleavage:1.2)


BREAKなしの場合

上記のプロンプトのままBREAKなしで画像を生成します。

prompt

best quality, ultra high res, (photorealistic:1.4), 1girl, white shirt, (long skirt:1.1), neat, (black gray hair:1), looking at viewer, small breasts, not exposed, formal, kind, smile, pale pink cardigan


白や黒のカーディガンになったり、ピンクのスカートになったり、そもそもカーディガンを着てなかったりと、全然意図した結果になっていません。成功率は0%です。



BREAKありの場合

ピンクのカーディガンを着ていることを画像生成AIに「pale pink cardigan(淡いピンクのカーディガン)」を伝えるためにBREAKを使用します。

prompt

best quality, ultra high res, (photorealistic:1.4), 1girl, white shirt, (long skirt:1.1), neat, (black gray hair:1), looking at viewer, small breasts, not exposed, formal, kind, smile
BREAK

pale pink cardigan


なんと生成したすべての画像がピンクのカーディガンを着ています。成功率100%です。


BREAK構文は地味ですが、かなりポイントとなるものなのでぜひ使いこなしてみてください。




コメント

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