当ブログにはプロモーション、アフィリエイト広告が含まれます。

【Stable Diffusion】「Regional Prompter」の使い方!領域を分割してプロンプトを反映させる方法!

Stable Diffusion Web UIの便利な拡張機能紹介記事です。

今回はRegional Prompterという領域を分割して、それぞれにプロンプトを反映できる拡張機能を紹介します。

Regional Prompterとは?

Regional Prompterは、領域を分割して、それぞれの領域にプロンプトを反映できる機能です。

例えば以下のように左右に領域を分けて、異なる人物を生成することができます。

左に女性・右に男性を指定して生成した画像

領域の分け方が少し複雑ですが、使いこなせると好きな領域に好きな人物やオブジェクトを生成できるようになります。

Regional Prompterのインストール

Stable Diffusion Web UIを開き、Extensions→Install from URLに以下のURLを入力してinstallボタンを押してください。

https://github.com/hako-mikan/sd-webui-regional-prompter.git

インストール後にリスタート、または再起動すればインストール完了です。

Regional Prompterの使い方

基本は領域を分けて、その領域ごとにプロンプトを指定するだけです。

txt2imgに「Regional Prompter」が追加されているので開いてください。

Activeにチェックを入れると、Regional Prompterが使えるようになります。

基本の使い方

とりあえず1回デフォルトのまま使ってみましょう。

Main Splittingにある「visualize and make template」をクリックしてみてください。

クリックするとマトリックス図やtemplateが表示されます。

マトリックス図が分割した領域を視覚化したもので、templateは領域に対する「プロンプトの書き方」です。

「ADDCOL」を使ってプロンプトを区切ると、区切ったところまでが0の領域に反映されます。

例えば0の領域に黒髪の女性、1の領域に赤髪の女性を生成するには以下のように書きます。

2girls, black hair, ADDCOL
2girls, red hair

ADDCOL前のカンマはあってもなくてもいいそうです。

結果

なお、プロンプトはBREAKでも区切れます。

2girls, black hair, BREAK
2girls, red hair

領域を分割する方法(Main SplittingとDivide Ratioの設定)

Main Splittingは分割方法を指定、Divide Ratioで領域の割合や分割数を指定できます。

Main Splitting(分割方法)

Main Splittingは「Columns(垂直に分割)」「Rows(水平に分割)」「Random」の3つから選択可能です。

Columnsは垂直に分割できます。

Rowsは水平に分割できます。Rowsで分割した場合はプロンプトを「ADDROW」で区切ります。

RandomはColumnsと同じ分割になるため、現時点で具体的な使い方がわかりませんでした。

Divide Ratioの設定

Divide Ratioでは、「(,)カンマ」で分割数、数字で割合を指定できます。

例えば「2:1:1」の割合で3分割したい場合は、そのままDivide Ratioに「2,1,1」と入力します。

※Columnsなら垂直、Rowsなら水平に分割されます。

分割数を増やしたい場合は、そのままカンマで入力数を増やすだけです。

・1,1,1,1,1,1

また「(;)セミコロン」を使うと行列のマトリックス図が作れます。

Main SplittingはColumnsを選択しておいてください。

例えば公式に載っている「1,2,1,1;2,4,6」は、赤字が列を「1:2」の割合で区切り、青字が行をそれぞれ「2:1:1」「4:6」の割合で区切っています。

1.数字の大きさが割合
2.行はカンマで分割
3.列はセミコロンで分割
4.セミコロンを使うと最初の数字が列の割合になる

上記を覚えておけば、自由に分割が可能です。

なお、Rowsでマトリックス図を作る場合は、カンマとセミコロンを反転させる必要があります。

「flip "," and ";"」にチェックを入れると、向きを変えて分割できます。

領域に対してプロンプトを指定する方法

基本は領域を分割してからvisualize and make templateをクリックし、表示されたtemplate通りに書けばいいだけです。

例えば上記の「1,2,1,1;2,4,6」で分割した場合、以下のtemplateが表示されます。

ADDCOL
ADDCOL
ADDROW
ADDCOL

これに沿って書けば、上から順に対応する番号の領域にプロンプトが反映されます。

0の領域:prompt, ADDCOL
1の領域:prompt, ADDCOL
2の領域:prompt, ADDROW
3の領域:prompt, ADDCOL
4の領域:prompt

よくわからない場合は全部BREAKでも問題ありません。

BREAKで区切っても、プロンプトは上から順に番号の領域へ反映されます。

0の領域:prompt, BREAK
1の領域:prompt, BREAK
2の領域:prompt, BREAK
3の領域:prompt, BREAK
4の領域:prompt

その他パラメータの設定

Generation mode

Generation modeはそのまま生成モードの変更で、AttentionとLatentどちらかを選べます。

通常はAttentionのままで問題ありません。

各領域にLoRAを反映したい場合はLatentを使います。

使い方は同じで領域ごとにLoRAを指定するだけです。

Latentを選択した状態で、左側に線を強調するLoRA、右側に驚く顔のLoRAを指定すると以下のようになります。

2girls, <lora:hyperdetailer_v095:1>, ADDCOL
2girls, <lora:surprised_v100:0.7>

結果

Use base prompt・Base Ratio

base promptは、全ての領域に対して割合でプロンプトを追加できるものです。

Base Ratioでは割合を指定できます。

Use base promptにチェックを入れると、最初の行をbase promptとして使用できます。

smile, ADDBASE
2girls, balck hair, ADDCOL
2girls, red hair

上記のように書いてBase Ratioを0.2にした場合、各領域に対してsmileを20%追加するという意味になります。

smile,ADDBASE
smile(20%), 2girls, balck hair(80%), ADDCOL
smile(20%), 2girls, red hair(80%)

後述する「Use common prompt」と似ていますが、base promptは割合でプロンプトを追加するため、Base Ratioを1にするとsmileが100%となり、2girls, balck hairなどは反映されなくなります。

使いどころが少し難しいため、あまり使用する機会はないかもしれません。

Use common prompt・Use common negative prompt

こちらは各領域に共通して使用できるプロンプトです。

Use common promptにチェックを入れると、最初の行をcommon promptとして使用できます。

smile, ADDCOMM
2girls, balck hair, ADDCOL
2girls, red hair

上記のように入力した場合、実際は以下のようになります。

smile, ADDCOMM
smile, 2girls, balck hair, ADDCOL
smile, 2girls, red hair

base promptと違い、割合関係なくプロンプトを追加できるため、全体に同じ要素や画質などを指定する場合はcommon promptの方が便利です。

Use common negative promptは、チェックを入れなくてもネガティブプロンプトの入力は反映されるため、いまいち使いどころがわかりませんでした。

また他にもmask機能やPrompt-EXがありますが、現時点で具体的な使い方がわからなかったため、こちらは分かり次第追記します。

Regional Prompterの精度

非常に便利な機能ですが、精度についてはプロンプトやモデル次第といった印象です。

上記で紹介した画像も何度かガチャしたもので、髪色や人物の性別がうまく反映されない場合がありました。

便利な機能ではありますが、生成する内容次第によっては根気が必要かもしれません。

Regional Prompterの使い方まとめ

今回はStable Diffusion Web UIで使えるRegional Prompterをご紹介しました。

まとめ
  • Regional Prompterは領域を分割できる
  • 分割した領域にプロンプトを指定できる
  • 分割方法は少し難しい
  • 精度は生成内容による

各領域に要素を指定して生成できるため、思った通りの画像が生成しやすくなります。

もともとAIだと複数のオブジェクトや人物生成が難しいものでしたが、Regional Prompterを使うとそれが簡単に生成可能です。

精度は内容次第な部分もありますが、確実に画像生成の幅は広がるので、興味がある方はぜひ使ってみてください。

参考になれば幸いです。

コメント

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