重み付きプロンプトなど便利機能&活用法 [NMKD Stable Diffusion GUI]

画像生成AIの「Stable Diffusion」をコマンド操作不要で使えるソフト「NMKD Stable Diffusion GUI」で利用可能な便利機能をまとめました。

プロンプト中の語句に数値で重み付けできたり Creativeness (Guidance Scale) の値だけ少しずつ変更させながら画像を複数枚自動出力できたり、画像生成に有志が作成したアニメイラスト特化モデルを代わりに使ったり…

色々な機能や活用法がまだまだたくさんあるのでそれらを一つずつ説明していきます。

※基本的な使い方や機能・各設定項目はこちらに記載しています。まだご覧になっていない方は先にこちらをご確認ください。

基本機能・設定

入力したテキストから画像を生成したり、自分が描いた落書きに説明テキストを加えれば思い通りの絵に変えたりできるAI「Stable Diffusion」 ↑a sleeping cat in the hot spring (温泉で眠る[…]

以下、説明は NMKD Stable Diffusion GUI 1.3.0 の画面で行います。(最新版でも同様に利用可能です)

必要に応じて バージョン 1.4.0 のダウンロード・更新方法 をご参照ください。

重み付きプロンプト

プロンプト中の語句に数値を指定することで、その語句がプロンプトに中でどれほど重要か指示することができます。(重み付け)

NMKD Stable Diffusion GUIで重み付きプロンプトを使用して生成した写真の比較

これら3枚の画像はそれぞれ以下のプロンプト(呪文)で生成されています。

cat:0.7 fox:0.3
cat:0.5 fox:0.5
cat:0.3 fox:0.7

このようにプロンプト中の語句に半角コロン「:」と数値を付けることで、語句に重要度(重み)を付けることができます。

cat 7割 の状態は「きつね色のもふもふにゃんこ」な感じですが、fox の割合を増やしていくことでだんだんキツネさんに近づいています!

上記画像の各種生成時設定 (クリックして表示)
"cat:0.7 fox:0.3" -s50 -W512 -H512 -C7.5 -Ak_euler_a -S1950087389
"cat:0.5 fox:0.5" -s50 -W512 -H512 -C7.5 -Ak_euler_a -S1950087389
"cat:0.3 fox:0.7" -s50 -W512 -H512 -C7.5 -Ak_euler_a -S1950087389

↑プロンプトの数値指定以外は全て同じ設定で画像を生成させました。(シード値も全部同一)

重み付けの仕様

many strawberries:0.6 green apples:0.4 on a plate

のように複数単語を含む語句に重み付けすることも一応可能ですが、要素を追加しすぎるとまともにプロンプト通りの画像が生成されなくなります。

重み付けしない言葉と同居させることも可能であり、また3語以上に重み付けすることもできます。

数値の合計が 1 になるように調整しなくても大丈夫なようです。(参考)

マイナスの重みで指定要素を排除 (Negative Prompt)

重みにはマイナスの値も指定可能で、その場合はマイナス値を指定した言葉が含まれないような画像が生成されます。

4枚は同一シード・設定で生成させましたが、cloudsにマイナスの重みをつけると雲量が確かに減っています。

ただ注意点として、負の値を大きくしていくとだんだん画像中の要素が変な色・形になりまともな画像が生成しなくなっていきます

上記画像も clouds:-0.4 では雲が消えきる前に色調や形状がおかしくなり始めています。

-0.3辺りを超えるとおかしくなり始める印象なので、それを超えないくらいの軽めの値から調節を始めるのが良いと思います。

 

生成画像からプロンプトや設定値を読み取り

NMKD Stable Diffusion GUI で生成した画像には生成時に使用したプロンプトや各種設定値がデータとして埋め込まれているので、後からそれを読み取ることができます

方法

まず、生成した画像をソフトにドラッグ&ドロップしてください。

すると次のようなポップアップメッセージが表示されるので「Yes」を押してください。

(※なお同時に今読み込んだ画像が img2img 用の画像としてセットされます)

画面左下のログ表示ボックスに、今読み込んだ画像の設定データが表示されます。(赤線部)

NMKD Stable Diffusion GUIでは生成時に使用したプロンプトや各種設定値がデータとして埋め込まれる

"cat:0.7 fox:0.3" -s50 -W512 -H512 -C7.5 -Ak_euler_a -S1950087389
データ文字列の意味
"プロンプト文章" -s(ステップ数) -W(幅) -H(高さ) -C(Creativeness値) -(使用Sampler) -S(Seed値)

ソフトを閉じたり別の画像生成に移ってしまったりしても、後から画像生成時のプロンプトや設定を調べられるので非常に便利です。

 

設定値を複数指定して画像を複数枚自動生成

Creativeness (Guidance Scale) と img2img の Init Image Strength (Influence)設定値を複数指定して画像を一括で生成させることができます

NMKD Stable Diffusion GUI:設定値の複数指定機能

赤枠で囲った設定値ボックスに入力します。

値の複数指定

例えば Init Image Strength のところのボックスに「0.2, 0.4, 0.6」と指定すると、 1回の実行で Init Image Strength の設定が 0.2、0.4、0.6 の画像を生成してくれます

複数の設定値で生成される画像を比べたいときにとても便利です。

(Init Image Strength の例で説明しましたが、Creativeness の方のボックスでも同様に指定可能です)

値の段階的増加指定

例えば Creativeness に「7 > 10 : 0.5」と指定すると、「7から10まで、0.5刻みで」値を設定して画像を生成します。(7, 7.5, 8, 8.5, 9, 9.5, 10)

開始値 > 終了値 : 増加幅

という指定書式です。

 

別のモデルの読み込み (.ckpt)

Stable Diffusion本家のモデルとは異なるモデルも有志により作成され配布されているので、それらを代わりに読み込んで画像生成に利用できます

ゆるキャラやマスコットキャラみたいな動物キャラクターに特化したモデルがいつか配布されたらいいな~😺

 

モデル (.ckpt)

Waifu Diffusion

二次元イラストで再訓練されたモデル。キャラクター向け。(人間以外の動物キャラも頑張ればうまく生成できそう!)

※良くない絵 (age≧2×3²) も生成されてしまう可能性があるので注意。(幸いにも動物キャラ生成時には変な良くない絵が混入したことは無かったので意外に大丈夫かも)

ダウンロード(9/8 最新版 v1-2):wd-v1-2-full-ema.ckpt

ダウンロード(旧版):wd-full-ema.ckpt

Waifu Diffusion の詳しい情報共有場所はこちら。→ reddit リンク

 

trinart_stable_diffusiontrinart_stable_diffusion_v2

アニメ・マンガ絵用に再訓練されたモデル。

ダウンロード (v2):trinart2_step115000.ckpt

ダウンロード:trinart_stable_diffusion_epoch3.ckpt

 

furry_epoch4.ckpt

動物キャラクター (furry・ケモノ)のイラストで再訓練されたモデル。

※良くない絵 (age≧2×3²) も生成されてしまう可能性があるので注意。

ダウンロード (9/28時点):furry_epoch4.ckpt

情報源はこちら

 

(Latent Diffusion Models)

内容未確認。Stable Diffusion の開発版?

 

別モデルの読み込み

Stable Diffusion本家のモデルとは異なるモデルも NMKD Stable Diffusion GUI で使用可能です

バージョン 1.3.1 以降では公式にモデル切り替え機能が追加され、簡単に画像生成モデルを変更できるようになりました!

Ver. 1.3.1 以降での画像生成モデル切り替え

設定画面の項目「Stable Diffusion Model File」から簡単に読み込むモデルを切り替えられます。

  1. 画面右上の歯車ボタンから Settings(設定)画面を開く
  2. 設定項目「Stable Diffusion Model File」のところにある Open Folder ボタンを押し、開かれたフォルダ画面に別モデルの .ckpt ファイルを入れる
  3. 一度 Settings 画面を閉じて、再度開く (モデル一覧を更新させるため)
  4. モデル名が表示されているボックスをクリックすると、先ほどフォルダに入れた .ckpt ファイルが選択肢に表示されるようになっている

Ver. 1.3.0 以前での画像生成モデル切り替え

既存の「stable-diffusion-1.4.ckpt」をリネームし、代わりに導入したいモデルをその場所に置いて「stable-diffusion-1.4.ckpt」にリネームして差し替えれば使えます。

例えば NMKD Stable Diffusion GUI のインストール先が「G:\AI\StableDiffusionGui-v1.3.0」なら、

モデルは「G:\AI\StableDiffusionGui-v1.3.0\Data\models

の中に入っています。モデル (stable-diffusion-1.4.ckpt) は適当な場所に退避させるかリネームして別の名前にして、この場所にダウンロードしてきた別モデルを入れます。

入れたモデルの名前を「stable-diffusion-1.4.ckpt」にすれば差し替え完了です。

後はそのままソフトを起動すれば今入れたモデルでの画像生成が可能になります。

各モデルのファイル名 (忘れた時用)
モデル ファイル名
Stable Diffusion (本家) stable-diffusion-1.4.ckpt
Waifu Diffusion (v1-2) wd-v1-2-full-ema.ckpt
Waifu Diffusion (旧版) wd-full-ema.ckpt
trinart_stable_diffusion trinart_stable_diffusion_epoch3.ckpt

 

Waifu Diffusion 試してみた

(後日、情報追記予定。ねこちゃんがアニメキャラ風に😹 でも人間以外のキャラもちゃんと作れるみたいで良かった!)

Stable Diffusion で生成させた猫キャラクターのイラスト(img2imgで一部修正)

 

プロンプトを工夫すればいけめそねこくんも出てくることがある!😻
(動物キャラクターやいわゆるケモノ絵を生成するためのプロンプトのコツを後でまとめ予定です)

Stable Diffusion で生成させた猫キャラクターのイラスト(イケメン、ケモノ系)

プロンプト (クリックして表示)
model:Waifu Diffusion (v1-2)
prompt:anime cat, furry, style of anime, anime eyes, japanese, pixiv, no humans, animal
Steps:50
Guidance Scale:7.5
Sampler:k_euler_a
Seed:353022354
size:512x512

 

ファインチューニングで生成したモデルの読み込み

Textual Inversion.ptファイル / .binファイルをソフトで読み込んで利用する方法です

Textual Inversion により Stable Diffusion をファインチューニングすれば、例えば絵のキャラクターや画風を追加で学習させてそれを基に Stable Diffusion で画像生成を行うことができます。

(利用イメージはこちらを参照)

※ただしこの Textual Inversion 自体は NMKD Stable Diffusion GUI で実行することはできず、それどころかGUI操作でファインチューニングが行えるソフトは現時点で無いようです

2022/9/23 追記:バージョン1.4.0 から .pt に加えて .bin 形式のモデルを読み込めるようになりました

 

.pt / .bin ファイルの読み込みと画像生成

Textual Inversion で作成した訓練ファイル (拡張子 .pt / .bin) を読み込むには、ソフト画面の「Load Concept」ボタン(v1.4.0以降)または「Load Embedding」ボタン(v1.3.1以前)を押してください。

ファイル選択画面で訓練で生成させた .pt ファイルを開きます。

例えば好きなキャラクターで訓練して生成させた.ptファイルを読み込ませたとして、そのキャラクターが立っている絵を生成させたかったら

a standing *

というプロンプトを入力します。

アスタリスク「*」が読み込ませた訓練ファイルが表すもの(今回はキャラクター) を指すので、プロンプト中の好きな部分で言葉の代わりに「*」を使用してください。

あとは通常通り画像を生成させればOKです。img2img でも使えます。

詳しい使い方と利用イメージ

色々な人が作ったファインチューニングファイルがまとめて公開されている場所があるので、そこからモデルをダウンロードして NMKD Stable Diffusion GUI で使う方法について以下のページに記載しました。

他の人がファインチューニングで生成した独自モデルを読み込む (.pt/.bin ファイル)」の項をご覧ください。

みんなのモデルを使ってみる

画像生成AIの「Stable Diffusion」をコマンド操作不要で簡単に使えるソフト「NMKD Stable Diffusion GUI」が 2022/09/20 に大型アップデートしました! 現在の最新版がバージョン 1.4.0[…]

 

みんなが作った .pt ファイル

自分で Textual Inversion が使える環境でなくても、他の人が作った .pt ファイルを読み込んで画像生成を楽しむことができます。

上記リンク先で説明した .bin ファイル以外にも、個人で自前で Textual Inversion を実行して .pt ファイルを作成している方もいるので以下にまとめます。

※なかなか .pt ファイルを共有してくれている人を見つけられません😿
作ったよ! という方や作成事例を見かけたことのある方は教えていただけるとありがたいです。

飼い猫の Buzz くんでファインチューニング

リンク:画像例 / 本人のコメントや作成時の設定・工夫など(reddit)

.ptファイルのダウンロード先:https://github.com/simcop2387/textual_inversion_sd/raw/master/embeddings_gs-14499.pt

↑Textual Inversion はなかなか訓練が難しいのですが、こちらの方はにゃんこを結構綺麗に学習させることができています。

 

dream.py コンソール でコマンド操作

コンソールの起動

NMKD Stable Diffusion GUI から、コマンド操作ができるコンソールを起動可能です。

dream.pyコンソールの起動

右上のコンソールボタンから起動できます。

 

dream.pyコンソールの入力画面

dream>

と表示されたら準備完了です。

「dream>」の横にコマンドを入力します。

コマンドについて

コマンドの一覧や使い方はこちらに記載されています。

リンク:InvokeAI: A Stable Diffusion Toolkit

実は NMKD Stable Diffusion GUI は、この Stable Diffusion Dream Script によるコマンド操作をGUIで行えるようにしたツールです。(つまり中身はこれ)

ソフトへの機能追加も、Stable Diffusion Dream Script の開発進行に合わせて行われている形です。

コマンドの使い方は上記リンクの他、「-h」と入力してヘルプを表示させることでも確認できます。

コンソールのみで実行できる機能 (バージョン 1.3.0 時点)

★ ファイルからのプロンプトの読み取り

テキストファイルに1行ごとプロンプト・各設定を記載してそのテキストファイルを読み込ませることで、複数のプロンプトと設定を順次読み込んで画像を自動生成できます。

コンソールで実行できる機能の中では一番強力かも。

詳しい使い方はこちらをご参照ください。

img2img を 指定回数反復適用するための -v オプションがある

使い方:リンク

アップスケーリングの強度指定がコマンドからなら可能
-U : <upscaling_factor> <upscaling_strength>

↑強度はデフォルト0.75。おすすめされている値は0.5~0.8

使い方:リンク

その他

使えるのは Stable Diffusion Dream Script のコマンドのみで、この画面から conda環境に移動してあれこれやることはできなそうです…。

(色々できたら嬉しい…! 何か方法は無いのかな…?)

パソコン相談も受付中(*・ᴗ・*) よろしければフォローお願いします(懇願)