プロンプトマトリックス(prompt-matrix)の挙動について(StableDiffusion)
気になる噂を小耳に挟んだので検証を進めながら記事を書いていたが、結論から言うと勘違いだった。折角なので機能の説明だけ残しておく。こんなnoteを読む人は既に知っているかもしれないが。
プロンプトマトリックス(prompt-matrix)とは
プロンプトマトリックスとは、StableDiffusionのhlky版フォーク(が開発者なのかは知らないが)に実装されている機能で、プロンプトを「|」で区切ると、区切られたパーツ同士の組み合わせ全てを出力してくれるという機能である。(最初のパーツは必ず使用される。)
ゆえに、例として提示されている
a busy city street in a modern city|illustration|cinematic lighting
というプロンプトは
a busy city street in a modern city
a busy city street in a modern city, illustration
a busy city street in a modern city, cinematic lighting
a busy city street in a modern city, illustration, cinematic lighting
という4つのプロンプトに変換されて画像を生成する。(シード値は固定され、「|」が「, 」(カンマとスペース)に置換されて結合される)
注意すべき挙動
プロンプトマトリックスモードは、WebUIにおいてはAdvancedタブのCreate prompt matrix~ にチェックを入れることで使用できる。このモードでは、前回記事で紹介したトークン上限超過のWarningが出力されない。
また、当初はバッチサイズ2で検証を進めていたのだが、マトリックスで生成した2番目以降の画像と手動でプロンプトを組み合わせて生成した画像の整合が取れなかった。これは既報のバグの影響の可能性がある。みんなもこまめにアップデートしようねぇ
言うまでもないがパーツを区切りすぎると2の累乗で組み合わせの数が増えていくので注意。Batch count(コマンドラインオプションで言えば--n_iter)は無視される。
この記事が気に入ったらサポートをしてみませんか?