aokirozin.com

ただの雑記帳

AIで絵を描く

Stable Diffusion

入力したテキストから画像を生成 (txt2img) したり、自分が描いた落書きの絵と説明テキストから思い通りの画像を生成したり (img2img) することができるソフトが2022年の8月に公開され話題になりました。

NMKD Stable Diffusion GUI

とはいえ、公開されたものを使って画像を生成するにはそれなりにプログラミング知識が必要なので、一般人にも扱えるようなしたソフトが NMKD Stable Diffusion GUI になります。他にも類似のソフトはありますが、代表的なものとしてこれを取り上げます。

インストール方法

システム要件

  • 64bit Windows 10/11
  • NVIDIAGPU (できればRTXシリーズ)
  • 16 GB RAM 以上
  • 3 GB VRAM 以上 (slow low-memory mode を利用する場合) または 6 GB VRAM 以上
  • 11 GB 以上のディスク空き容量 (できればSSD)

NMKD Stable Diffusion GUI のダウンロード

以下のサイトからダウンロードできます。

nmkd.itch.io

ページ上部にある「Download Now」をクリックします。

開発者さんの支援画面になります。金銭的支援をしたい場合は支払い設定に進みますが、ここでは一旦「No thanks, just take me to the downloads」をクリックしてダウンロードページに進みます。

「Download」を押してダウンロードします。

NMKD Stable Diffusion GUI のインストール

ダウンロードしたファイルは .7z ファイルなので、.7z ファイルを解凍するためのソフトを別途インストールします。ここでは7-zipというソフトを使います。

7-zip のインストール

以下のサイトから、7-zipをダウンロードしてきます (自分のWindowsに合うものをどれか1つ)。

www.7-zip.org

ダウンロードしてきた .exe ファイルを実行し、指示通りにインストールします。特にインストール時に変更する点はないです。すべてデフォルトの設定でOKです。

.7z ファイルの解凍

インストール先に直接解凍しますが、日本語のフォルダ名だったり、階層の深すぎるフォルダだったりするとエラーが起きる可能性があるので、ドライブ直下にインストールするのがよいと思われます。今回はSSDということもあり、Cドライブの直下に解凍を行います。

ダウンロードした NMKD Stable Diffusion GUI の .7z ファイルを「Shift + 右クリック」で開き、「7-Zip」→「開く」を選びます。「展開」を選びます。

コピー先 (展開先) を選びます。「...」を押して、Cドライブを選びます。コピー先が「C:\」になっていることを確認します。

「OK」を押します。

初回起動

展開先にある「StableDiffusionGui.exe」を起動します。

次の画面が表示されるので「OK」を押します。

インストーラーが表示されます。そのままで問題ないので、「Install」を押してインストールします。

インストールが終わるまで待ちます。インストーラーの画面ですべてにチェックが入った状態になればインストール完了です。インストーラーは右上の❌で閉じます。

動作確認

「Prompt (AI Inputs)」の入力欄に生成したい画像の説明を入力します。ここでは試しに「a sleeping brown indoor dog」(眠っている茶色の室内犬) と入力します。入力したら、「Generate!」を押して、画像を生成してみます。最初に生成するときは少し時間がかかります。犬の画像が生成できればうまく動作しています。

ちなみに、改行で区切って2つのプロンプトを入力すると2つの別の画像がそれぞれ出力されます。

設定項目の説明
Amount Of Images To Generate

生成枚数です。

Detail (Steps)

画像生成に費やすステップ数で多いほど結果が良くなりやすいです。当然多いほど生成に時間がかかります。初期値25。おすすめは50~100。

Creativeness (Guidance Scale)

大きいほどPromptのテキストの指示に忠実になります。大きすぎると絵にまとまりがなくなりとんでもないことになったり、小さすぎると関係のない要素が含まれやすくなります。また、この値が大きいと絵が落ち着くのに必要なステップ数 (前述) が多く必要になります。初期値9。おすすめは7.5。

Seed (Empty = Random)

Promptや各パラメータの値が同じでもSeedが異なれば異なった画像が生成されます。画像の種になる数字。空欄にしておけばランダムな値を使ってくれます。

Resolution (Width x Height)

生成画像の解像度。縦512ピクセル、横512ピクセルが初期値であり推奨値です。VRAMが8GB以下の場合は初期値よりも大きくしない方がよいです。

Sampler

画像生成は無限回ステップをこなせば最終的にはどのSamplerを使っても同じ画像になるようですが、そこに至るまでの途中経過はSamplerによって多少異なります。初期値は k_euler_a。

生成された画像の保存先

「StableDiffusionGui.exe」があるフォルダの「Images」以下になります。

生成された画像の画像データの確認

生成された画像を NMKD Stable Diffusion GUI のメイン画面にドラッグ&ドロップすると画像生成時のPromptや各種パラメータの値を確認できます。

2次元絵特化モデル (Waife Diffusion) を使う

絵を描くAIは「モデル」というたくさんの絵を学習したものを元に絵を生成します。デフォルトではいろいろな絵や写真の画像を生成できるモデルが使われるようになっているのですが、2次元の絵をたくさん学習して、2次元の絵を生成することに特化したモデルというものが世の中にはあり、それを使うこともできます。

huggingface.co

上記のページから「Float 32 Full Weights」をダウンロードしてきます。ダウンロードした ckpt ファイルを「StableDiffusionGui.exe」があるフォルダの「Data」→「models」の中に置きます (すでに既存の ckpt ファイルがあると思います)。

NMKD Stable Diffusion GUI のメイン画面の右上の歯車アイコンから「Settings」画面を開き、「Stable Diffusion Model File」から、さっき置いた ckpt ファイルを選択します。右上の❌を押して設定画面を閉じます。

「Prompt (AI Inputs)」の入力欄に生成したい画像の説明を入力します。ここでは試しに「a cute cat ear maid」(かわいい猫耳メイド) と入力します。入力したら、「Generate!」を押して、画像を生成してみます。最初に生成するときは少し時間がかかります。