Stable Diffusion
前回、Stable Diffusionのモデル(チェックポイント:checkpoint)のダウンロードとインストールの仕方を紹介しました。

今回は前回インストールしたblue_pencil-XLというチェックポイントを使って、テキスト(文字列)から画像を生成する方法(txt2img)を紹介します。
またその際に必要なプロンプトとネガティブプロンプトに関しても紹介していきます。
それでは始めていきましょう。
Stable Diffusion Web UIのおさらい
まずはStable DiffusionのWeb UI(AUTOMATUC1111)の画面を今回必要なところだけ解説します。
Web UIの起動はターミナルを起動して、AUTOMATIC1111をインストールしたフォルダ(stable-diffusion-webui)に移動、そして下のコマンドを実行する、でした。
./webui.sh
起動をするとこんな画面がブラウザに表示されます。

今回使っていくのは、左上のチェックポイント選択のプルダウンメニューとその下にある機能選択メニュー、その下の「Prompt」とその下の「Negative prompt」、最後に右側のオレンジ色の生成実行ボタンです。
チェックポイント選択のプルダウンメニューでは、インストールしてあるチェックポイントから今回使用するチェックポイントを選択します。
今回は「bluePencilXL_v700.safetensors[cff5a50dde]」を選択します。
そしてその下の機能選択メニューでは「txt2img」、これがテキストから画像を生成する機能で今回はこちらを使っていきます。
「Prompt(プロンプト)」では生成したい画像を表現したテキストを英語で羅列します。
その際、文章的に書いてもいいようですが、単語ベースで「,(カンマ)」で区切って書く方が主流のようです。
「Negative prompt(ネガティブプロンプト)」は逆に画像に加えて欲しくないことをテキストで記載します。
ただ「Prompt」も「Negative prompt」も絶対的なものでなく、生成された画像で使われないこともあることに注意してください。
また基本的に前の方に記載したテキストの方が強く表現されるとのことです。
ちなみにテキストの順番だけでなく、強く表現してほしいことや逆に注目度を下げたいことの書き方はあるのですが、それはまた別途紹介します。
ということでPromptとNegative promptを色々書いてみてどんな画像が生成されるか試してみましょう。
私のような初心者に向けて…
とは言ってもプロンプトやネガティブプロンプトに何を書けばいいのか、私のようなStable Diffusion初心者にとってはさっぱり分かりません。
そんな時に参考になるのが、使用するチェックポイントの生成例です。
例えば今回使用しようとしている「blue_pencil-XL」のCivitalのページではこのチェックポイントを使って生成した画像がいくつか例として記載されています。
そのうちの一つをクリックするとその画像を生成した際のプロンプトやパラメータを見ることができます。
例えばこの夕焼けや緑をバックに緑色のドレスを着た女性の画像をクリックしてみます。

移動したページの右下に「Prompt」という欄があり、この画像を生成した際のプロンプトを見ることができます。

ちなみにこの画像の場合、こんな感じのようです。

人物の情報、背景の情報、最後に画像のクオリティの情報なんかが書かれています。
同じような画像を生成したければこのプロンプトを基本として修正していくのがいいでしょう。
ただ今回お話ししないパラメータもかなり生成する画像の種類やクオリティに左右しますので、その点お忘れなく。
とりあえず一度、全く同じプロンプトを入れて、画像を生成してみた結果がこちらです。

かなり似通った画像が生成できていますが、先ほどの例と比べるとクオリティは格段に落ちています。
なのでプロンプトだけでなく、パラメータも重要だと言うことが分かってもらえたと思います。
少しずつプロンプトを足していってみる
ここからは少しずつプロンプトを足していってみて、どんな感じで変化するのか見てみましょう。
まずは「1girl」だけで画像を生成してみます。
プロンプト:1girl

たった1語でこれだけの画像を生成してくれるなんて、凄い技術だなと素直に感動してしまいました。
ここではどこかの家の中っぽくなっているので、学校に移動してもらいましょう。
プロンプト:1girl, school

素直に学校に移動してくれました。
文字がおかしかったりしますが、なかなか文字まで完璧に生成するのは難しいようなので、今回は無視します。
ここで女の子の髪を茶色のロングにしてみましょう。
学校よりも優先して欲しいので先に書きます。
プロンプト:1girl, long hair, brown hair, school

かなりプロンプトに忠実に画像を生成してくれています。
ここでネガティブプロンプトも試してみましょう。
目の色を茶色以外にして欲しいと言うことで、ネガティブプロンプトに「brown eyes」を入れてみます。
プロンプト:1girl, long hair, brown hair, school
ネガティブプロンプト:brown eyes

目の色が茶色以外ということで青になりました。
ただ全体的にビビットな色合いとなってしまいました。
ここからはblue_pencil-XLの例でよく使われているプロンプトを足してみます。
よく使われるのはプロンプトの最初に「anime」、最後に「masterpiece」と「best quality」です。
まずは「anime」を足してみます。
プロンプト:anime, 1girl, long hair, brown hair, school
ネガティブプロンプト:brown eyes

うん、なんかアニメっぽくなったような、なっていないような。
続けて「masterpiece」(傑作)を最後に追加してみます。
プロンプト:anime, 1girl, long hair, brown hair, school, masterpiece
ネガティブプロンプト:brown eyes

画風が一気に変わった感じがしますがいかがでしょうか。
最後に「best quality」を追加してみます。
プロンプト:anime, 1girl, long hair, brown hair, school, masterpiece, best quality
ネガティブプロンプト:brown eyes

「best quality」を追加して何度か生成してみたのですが、これまでよりも目に力が無くなったように感じられます。
「masterpiece」を追加したときもよく見てみると目がちょっとおかしい気がします。
ここら辺を綺麗に修正していくというのも今後必要となっていくかなと思います。
ということで今回はプロンプトを中心に見てきましたが、次回はStable DiffusionのパラメータとしてSampling method、Schedule type、Sampling stepsを見ていきましょう。
ではでは今回はこんな感じで。
コメント