Neutral Prompt を利用する - AND_PERP, AND_SALT, AND_TOPK の使用 - Stable Diffusion

Neutral Prompt を利用して、どのような効果が出るのかを確認します。

概要

ほかの生成事例のプロンプト内で、AND_PERP, AND_SALT, AND_TOPK といったキーワードを見かけることがあります。 これらのキーワードは、Neutral Prompt の機能で使われるキーワードになります。Neutral Prompt を利用すると、 生成画像に対して、別の要素を合成したり、先に生成した要素を否定して上書きする機能が利用できます。
この記事では、Neutral Promptの利用方法や動作を紹介します。

事前準備

Neutral Promptを導入します。WebUIでの導入手順はこちらの記事を参照してください。

AND_PERP : 直交化処理 (orthogonalization process)

矛盾する概念を否定することで、AND_PERP の後ろで指定したプロンプトを強調できます。書式は以下です。
AND_PERP (キーワード or タグ):(重み)

記述例

AND_PERP black shirt:0.5

実行例

以下のプロンプトで実行して画像を生成します。広角の街並みと飛行機を描画します。
モデルはAnimagine XL 3.1 サンプリングメソッドは Eular a を利用します。
Prompt
Prompt: wide view, airplain, city scene, masterpiece
Negative prompt: worst quality, low quality

生成結果は下図です。
街並みと飛行機が描画できています。が、もっと飛行機を大きく画面に入れたいです。飛行機が大きめの画像はありますが、 平均すると、画像中に飛行機が風景の一部として小さめに入っている画像のほうが多い状況です。


飛行機を大きくしたいと思い、"airplane" のタグの重みを強調して画像生成します。
Prompt
Prompt: wide view, (airplane:1.2), city scene, masterpiece
Negative prompt: worst quality, low quality,

画像生成結果は下図です。飛行機は描画できていますが、大きくは描画されません。メインが飛行機になるぐらいの画像を作成したいです。


Neutral Prompt の AND_PERP を利用します。次のプロンプトに変更して画像を生成します。
AND_PERP airplane:1 の記述により、直行プロンプトで airplane の重みを 1 で強調して実行します。
上記のプロンプトでは、wide view がプロンプトに含まれているため、飛行機が小さく描画される傾向にあると推測されます。 AND_PERPを利用して wide viewの要素を否定して、airplaneを強調して大きく描画できるのではないかとの想定です。
Prompt
Prompt: wide view, city scene, masterpiece, AND_PERP airplane:1
Negative prompt: worst quality, low quality,

生成結果は下図です。飛行機がメインといってもいいほど、かなり大きく描画できている画像が複数生成できました。


重みを強くした結果が下図です。2まで上げると、airplaneが強くなりすぎ、airplane以外の要素はほとんど無視されてしまいます。 3まで上げると画像の崩れが顕著です。
Prompt
Prompt: wide view, city scene, masterpiece, AND_PERP airplane:2
Negative prompt: worst quality, low quality,


Prompt
Prompt: wide view, city scene, masterpiece, AND_PERP airplane:3
Negative prompt: worst quality, low quality,

AND_SALT : 顕著性を意識したブレンディング (Saliency-aware blending)

AND_SALT の後ろで指定したプロンプトをテクスチャや詳細描画として設定できます。書式は以下です。
AND_SALT (キーワード or タグ):(重み)

記述例

AND_PERP cloud:0.5

実行例

以下のプロンプトで実行して画像を生成します。広角の森林とみかんを描画します。
モデルはAnimagine XL 3.1 サンプリングメソッドは Eular a を利用します。
Prompt
Prompt: forest, wide view, orange fruit, masterpiece,
Negative prompt: worst quality, low quality,

生成結果は下図です。森にみかんがある画像が描画できました。


みかんは地面に落ちているものがほとんどで、みかんが樹木に実っている状態はかなり控えめです。 AND_PERP を指定して、画面全体にみかんが描画されるような画像を生成します。 以下のプロンプトで実行します。
Prompt
Prompt: forest, wide view, masterpiece, AND_PERP orange fruit:1
Negative prompt: worst quality, low quality,

結果は下図です。画面全体にみかんが描画されたり、画面全体がオレンジ色になるものもあります。 一方でみかんが空中を浮遊したり、大きなみかんが描画されたりする場合もあります。 森林(forest)でない部分にみかんが合成されるロジックの画像生成となるため、森の特徴が弱い部分にみかんが描画され、下図の結果になります。


重みを0.5に下げて実行します。
Prompt
Prompt: forest, wide view, masterpiece, AND_PERP orange fruit:0.5
Negative prompt: worst quality, low quality,

生成結果は下図です。画面全体に程よくみかんが点在して描画される画像が生成できました。幹に実っていたり空中浮遊しているみかんもありますが。


実行例 (別版)

みかんの結果を受けて、以下のプロンプトの結果を比較します。光の粒を画面内に描画するプロンプトです。
Prompt
Prompt: forest, wide view, masterpiece, many growing particle
Negative prompt: worst quality, low quality,

生成結果は下図です。光の粒が画面に描画できましたがやや控えめです。


AND_PERP を利用したプロプトで実行します。
Prompt
Prompt: forest, wide view, masterpiece, AND_PERP many growing particle:1.2
Negative prompt: worst quality, low quality,

生成結果は下図です。光の粒がたくさん描画されるとともに、 画面全体のカラーが光の粒の色に合わせて変化している様子が確認できます。

AND_TOPK : TOP-K フィルタリング (TOP-K filtering)

AND_TOPK の後ろで指定したプロンプトを詳細描画として設定できます。生成されたイメージに対してよりターゲットを絞った効果を与えられます。書式は以下です。
AND_TOPK はAND_PERP と似た動作ですが、AND_PERPが元のピクセルに追加してブレンドする動作に対し、AND_TOPK は元のピクセルを破棄して、置き換えてしまう動作の違いがあります。
AND_TOPK (キーワード or タグ):(重み)

記述例

AND_TOPK ice:1.2

実行例

はじめに基準となる画像を作成します。以下のプロンプトで画像生成を実行します。
Prompt
Prompt: 1girl, breastplate, middle skirt, masterpiece
Negative prompt: worst quality, low quality,

生成結果は下図です。


次に、AND_TOPKを利用したプロンプトを作成します。以下のプロンプトを用意します。
abrasionを追加して、傷だらけにする画像を生成します。
Prompt:AND_TOPK なし
Prompt: 1girl, breastplate, middle skirt, abrasion, masterpiece
Negative prompt: worst quality, low quality,
Prompt:AND_TOPK あり
Prompt: 1girl, breastplate, middle skirt, masterpiece AND_TOPK abrasion:1
Negative prompt: worst quality, low quality,
それぞれのプロンプトの生成結果は下図になります。
違いが分かりづらいですが、「AND_TOPK なし」の場合は、キャラクターの表情が痛がっている感じが出ており、頬も赤みが強いです。 一方で、「AND_TOPK あり」の場合は、元の生成画像の表情から変化が少なく、傷ついても気丈な表情のままの傾向があります。
これは、「AND_TOPK なし」の場合は、擦り傷のある状態を含めた全体のプロンプトで画像生成をしているのに対し、 「AND_TOPK あり」の場合は、元の1girl, breastplate, middle skirt, abrasion, masterpiece のプロンプトで画像を生成し、 abrasionの擦り傷の画像と合成しているため、キャラクターの表情は元の画像生成の状態を反映していると考えられます。
AND_TOPK なし
AND_TOPK なし

AND_TOPK あり
AND_TOPK あり

実行例2

以下の2つのプロプトで比較します。青い刺繍が入ったドレスの少女を描画するプロンプトです。
Prompt:AND_TOPK なし
Prompt: 1girl, white dress with blue embroidery pattern
Negative prompt: worst quality, low quality
Prompt:AND_TOPK あり
Prompt: 1girl, white dress, AND_TOPK (blue embroidery pattern dress:1.0):1.2
Negative prompt: worst quality, low quality

生成結果は下図です。
こちらも違いが分かりにくいですが、「AND_TOPK なし」の場合は、青い刺繍のドレスを着た少女の「少女」よりも、青い刺繍のドレスのほうがフォーカスが強い印象を持ちます。 刺繍のドレスがキャラクターより存在感があり、悪目立ちしている印象を若干受けます。 一方「AND_TOPK あり」の場合は、キャラクターのほうにフォーカスがあり、青い刺繍のドレスは衣類として悪目立ちしない印象があります。一方で、合成されているため、 「AND_TOPK あり」では皮膚に刺繍の模様が合成されタトゥーのように描画されてしまうケースがあります。
AND_TOPK なし
AND_TOPK なし

AND_TOPK あり
AND_TOPK あり

ネストする場合の書式

ネストする場合には以下の書式を利用します。
AND_PERP,AND_SALT,AND_TOPK の後ろを [ ... ] で囲み、内部にプロンプトをさらに記述します。
(プロンプト)
(AND_PERP or AND_SALT or AND_TOPK) [
 (プロンプト)
 (AND_PERP or AND_SALT or AND_TOPK) (プロンプト)
 ...
 (AND_PERP or AND_SALT or AND_TOPK) (プロンプト)
]
...
(AND_PERP or AND_SALT or AND_TOPK) [
 (プロンプト)
 (AND_PERP or AND_SALT or AND_TOPK) (プロンプト)
 ...
 (AND_PERP or AND_SALT or AND_TOPK) (プロンプト)
]

記述例

penguin, glacer
AND_PERP [
 airplane
 AND_SALT flower pattern
]
AND_SALT [
 ship
 AND_SALT fruite pattern
]
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2024-04-29
iPentec all rights reserverd.