今回は、Stable Diffusion Web UIの機能である「X/Y/Z Plot」をご紹介します。
SDWebUIでイラストを生成している時に、少しだけプロンプトを変えて比較したい!や、ちょうどいい強調の強弱を探したい!と思ったことはありませんか?
毎回比較したい箇所の設定を変えて生成するのは少し面倒ですが、そこで便利な機能が「X/Y/Z Plot」です。
よくTwitterなどで見かける下のような画像はこの機能で作成されています。使いこなすととても便利に比較検証ができますので、ぜひ習得しましょう!
X/Y/Z Plotの項目説明
X/Y/Z Plotはインストールが不要で、最初から使うことができます。
SDWebUIのt2iやi2iの画面下部に「Script」からプルダウンで「X/Y/Z Plot」を選択すると設定項目が出てきます。
type:X/Y/Z軸の種類を選択。stepsやサンプラーなど比較する要素。
valies:X/Y/Z軸の値を入力する。書式などが決められているものもある。
Draw legend:比較表に見出しを表示するかどうか。
Keep -1 for seeds:ランダムシード値で比較を行う。
Include Sub Images:比較結果のサブ画像が生成できる。(が、よくわからない)
Include Sub Grids Grid margins(px):比較表の画像と画像の間に余白を入れられる機能。
各軸でどう比較ができるか?
X/Y/Z Plotでは3軸まで指定して比較を行うことができます。
それぞれでどのような比較画像が生成されるかのイメージをご紹介します。
▼X軸を設定
1段の比較表を生成できます。1つの要素を比較できるのでよく使える形です。
▼X/Y軸を設定
マトリックス表で比較することができます。2つの要素で比較できるのでこちらもよく使えます。比較数が増えるので生成時間が少々長くなってしまうことが難点
▼X/Y/Z軸を設定
マトリックス表を3つ目の要素別に生成してくれます。表が分かれてしまうのであまり使うことは少ないかもしれません。また生成時間もかなり長くなってしまう。
比較できる要素
X/Y/Z Plotで比較できる要素の一覧をご紹介します。
ここでは代表的なよく使う要素を抜粋してます。なお、ControlNetなど拡張機能をインストールしている場合は、その要素も比較できますのでお試しください。
Seed:シード値
Steps:ステップ数
Hires steps:ハイレゾ化のステップ数
CFG Scale:スケール数
Prompt S/R:プロンプト
Sampler:サンプラー
Checkpoint name:モデル
Clip skip:クリップ数
Denoising:ノイズ除去濃度
Hires upscale:アップスケーラー
VAE:VAE
値の入力について
各軸の値の入力では、書式が決められていてそれに従う必要があります。
基本的には、半角カンマで区切って入力し、カンマを含む文字列はダブルクォーテーション「” ”」で囲うということを覚えれば大きく困ることはないです。
値を効率良く入力する方法
複数の値を指定する時に、省略して簡単に入力する方法があります。
▼値の範囲
最小値と最大値の間にハイフン「-」を入力すると、範囲内の値が適用されます。
例)1-10 = 1,2,3,4,5
▼範囲内の増減を指定
値の範囲指定の後ろに( )で増減数を入力すると、範囲内の値が増減数に対応して適用されます。
例)1-10(+2) = 1,3,5,7,9
例)10-1(-2) = 10,8,6,4,2
▼抽出数を範囲内に指定
値の範囲指定の後ろに[ ]で個数を入力すると、範囲内の値で個数に応じて適用されます。
例)1-10[5] = 1,3,5,7,10
Prompt S/Rでの値について
プロンプトを比較したい場合には「Prompt S/R」を使います。最初に指定したキーワードを2番目以降に置き換えて比較表を生成します。
例)
プロンプト:masterpiece, a cute girl, smile, red hair, short hair, school uniform,
Prompt S/R:red, blue, brown
プロンプトに入力されている「red」の部分が「blue」→「brown」という順番で入れ替わっていきます。高画質化プロンプトの効果検証などでよく使われていますね。
X/Y/Z Plotを実際に使ってみる
ステップ数の違いによる生成結果を比較することを例に手順をご紹介します。
①基準となるイラストを決める。
プロンプト、サンプラー、サイズなど通常の入力を行います。今回は次のイラストを用いてご紹介します。
parameters
masterpiece, a cute girl, smile, red hair, short hair, school uniform,
Negative prompt: (easynegative:1.0),(worst quality,low quality:1.2),(bad anatomy:1.4),(realistic:1.1),nose,lips,adult,fat,sad, (inaccurate limb:1.2),extra digit,fewer digits,six fingers,(monochrome:0.95)
Steps: 30, Sampler: DPM++ SDE Karras, CFG scale: 7.5, Seed: 3865889947, Size: 512x512, Model hash: ded0c94f95, Model: ShiratakiMix-fixed, Denoising strength: 0.3, Clip skip: 2, Hires upscale: 1.4, Hires upscaler: SwinIR_4x
②「Script」から「X/Y/Z Plot」を選択する。
➂「X type」から「Steps」を選択する。
④「X values」に値を入力する。
今回は「5,10,20,30,40,50」で比較を行います。
⑤「Generate」をクリック
今回の検証結果として、
筆者のモデルでは、Steps:5や10ではイラスト崩壊や色が不安定さが見られた、20以降で絵柄が安定することがわかりました。
終わりに
Stable Diffusion Web UIの機能である「X/Y/Z Plot」をご紹介しました。この機能を使いこなせば、簡単に比較検証を行うことができるようになります。より好みのイラストを生成するために時には立ち止まって研究を行うのも1つかもしれませんね。