Stable Diffusion web UIを少し使ってみた

画像生成AIで話題のStable Diffusion web UIがどのようなものか確認するために使ってみました。 詳しい解説やインストール方法は他の方々が丁寧にまとめていらっしゃいますので、そちらを参考にしながら導入しました。 なのでメモ程度の内容となってます。

目次

インストール

github.com

公式ページのインストール手順に従って作業を進めます。

Automatic Installation on Windows

  1. Install Python 3.10.6, checking "Add Python to PATH"

  2. Install git.

  3. Download the stable-diffusion-webui repository, for example by running git clone

    https://github.com/AUTOMATIC1111/stable-diffusion-webui.git.

  4. Run webui-user.bat from Windows Explorer as normal, non-administrator, user.

手順1と2については既に導入済みだったためスキップ。

ダウンロード

C:\Projects\>git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 17106, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 17106 (delta 0), reused 1 (delta 0), pack-reused 17105
Receiving objects: 100% (17106/17106), 27.85 MiB | 820.00 KiB/s, done.
Resolving deltas: 100% (11962/11962), done.

ダウンロード時のコミットハッシュは、a9fed7c364061ae6efb37f797b6b522cb3cf7aa2 でした。

起動

一番最初はダウンロードやインストール処理が行われるため、私の環境では1時間程度かかりました。

C:\Projects\stable-diffusion-webui>webui-user.bat
Creating venv in directory C:\Projects\stable-diffusion-webui\venv using python "C:\Users\xxxxx\AppData\Local\Programs\Python\Python310\python.exe"
venv "C:\Projects\stable-diffusion-webui\venv\Scripts\Python.exe"
Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec  6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)]
Commit hash: a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
Installing torch and torchvision
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cu117
Collecting torch==1.13.1+cu117
  Downloading https://download.pytorch.org/whl/cu117/torch-1.13.1%2Bcu117-cp310-cp310-win_amd64.whl (2255.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 GB 411.8 kB/s eta 0:00:00
Collecting torchvision==0.14.1+cu117
  Downloading https://download.pytorch.org/whl/cu117/torchvision-0.14.1%2Bcu117-cp310-cp310-win_amd64.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 431.2 kB/s eta 0:00:00
Collecting typing-extensions
  Downloading typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting requests
  Downloading requests-2.28.2-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 91.0 kB/s eta 0:00:00
Collecting pillow!=8.3.*,>=5.3.0
  Downloading Pillow-9.4.0-cp310-cp310-win_amd64.whl (2.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 3.4 MB/s eta 0:00:00
Collecting numpy
  Downloading numpy-1.24.2-cp310-cp310-win_amd64.whl (14.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 1.5 MB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading https://download.pytorch.org/whl/idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 219.2 kB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading https://download.pytorch.org/whl/certifi-2022.12.7-py3-none-any.whl (155 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.3/155.3 kB 142.9 kB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.1/97.1 kB 1.8 MB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.15-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.9/140.9 kB 2.1 MB/s eta 0:00:00
Installing collected packages: urllib3, typing-extensions, pillow, numpy, idna, charset-normalizer, certifi, torch, requests, torchvision
Successfully installed certifi-2022.12.7 charset-normalizer-3.1.0 idna-3.4 numpy-1.24.2 pillow-9.4.0 requests-2.28.2 torch-1.13.1+cu117 torchvision-0.14.1+cu117 typing-extensions-4.5.0 urllib3-1.26.15

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: C:\Projects\stable-diffusion-webui\venv\Scripts\python.exe -m pip install --upgrade pip
Installing gfpgan
Installing clip
Installing open_clip
Cloning Stable Diffusion into C:\Projects\stable-diffusion-webui\repositories\stable-diffusion-stability-ai...
Cloning Taming Transformers into C:\Projects\stable-diffusion-webui\repositories\taming-transformers...
Cloning K-diffusion into C:\Projects\stable-diffusion-webui\repositories\k-diffusion...
Cloning CodeFormer into C:\Projects\stable-diffusion-webui\repositories\CodeFormer...
Cloning BLIP into C:\Projects\stable-diffusion-webui\repositories\BLIP...
Installing requirements for CodeFormer
Installing requirements for Web UI
Launching Web UI with arguments:
No module 'xformers'. Proceeding without it.
Downloading: "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors" to C:\Projects\stable-diffusion-webui\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors

100%|███████████████████████████████████████████████████████████████████████████████████████████████████████| 3.97G/3.97G [1:31:24<00:00, 778kB/s]
Calculating sha256 for C:\Projects\stable-diffusion-webui\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors: 6ce0161689b3853acaa03779ec93eafe75a02f4ced659bee03f50797806fa2fa
Loading weights [6ce0161689] from C:\Projects\stable-diffusion-webui\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors
Creating model from config: C:\Projects\stable-diffusion-webui\configs\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Downloading (…)olve/main/vocab.json: 100%|██████████████████████████████████████████████████████████████████████| 961k/961k [00:01<00:00, 493kB/s]
Downloading (…)olve/main/merges.txt: 100%|██████████████████████████████████████████████████████████████████████| 525k/525k [00:01<00:00, 303kB/s]
Downloading (…)cial_tokens_map.json: 100%|███████████████████████████████████████████████████████████████████████████████| 389/389 [00:00<?, ?B/s]
Downloading (…)okenizer_config.json: 100%|███████████████████████████████████████████████████████████████████████████████| 905/905 [00:00<?, ?B/s]
Downloading (…)lve/main/config.json: 100%|███████████████████████████████████████████████████████████████████████████| 4.52k/4.52k [00:00<?, ?B/s]
Applying cross attention optimization (Doggettx).
Textual inversion embeddings loaded(0):
Model loaded in 18.6s (calculate hash: 3.1s, create model: 12.7s, apply weights to model: 0.7s, apply half(): 0.6s, move model to device: 0.7s, load textual inversion embeddings: 0.7s).
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
Startup time: 5515.8s (import gradio: 5.2s, import ldm: 1.1s, other imports: 3.6s, list SD models: 5486.0s, load scripts: 0.7s, load SD checkpoint: 18.9s, create ui: 0.2s).

使ってみる

UI操作

webui-user.bat実行後に表示される 「Running on local URL: http://127.0.0.1:7860 のURLにブラウザでアクセスすると Stable DiffusionのUI画面が表示されます。

画像生成

生成したい内容や条件を「プロンプト」に入力、除外したい内容や条件を「ネガティブ・プロンプト」に入力します。

まずは、どんな画像が出てくるか確認したいので「プロンプト」に「best quality, park whith cherry blossoms, white cat」と入力して、「Generate」をクリックすると下記のような画像が出力されました。AIが描いたって感じですね(自分より断然上手いですw)。

「Seed」値の "-1" はランダムを意味するため、「Generate」をクリックするたびに毎回異なった画像が生成されるとのこと。 画像生成後に画面下部に表示される「Seed」値を -1 の代わりに使用すると画像が固定される。

クオリティアップ

学習モデル追加

学習モデルはいっぱいあってよくわからないので、取り急ぎ、2次元アニメ調のイラストに特化したAnythingをインストールしてみました。

huggingface.co

上記にアクセスし、「Files and versions」タブをクリック。

「anything-v4.0.ckpt」と「anything-v4.0.vae.pt」をダウンロード。

ダウンロードしたファイルを下記フォルダに移動させてインストール完了です。

stable-diffusion-webui\models\Stable-diffusion

EasyNegative導入

ネガティブプロンプトのキーワードに「EasyNegative」と入力するだけで画像のクオリティをアップさせてくれる機能を導入します。

huggingface.co

上記にアクセスし、「Files and versions」タブをクリック。

「EasyNegative.safetensors」をダウンロード。

ダウンロードしたファイルを下記フォルダに移動させてインストール完了です。

stable-diffusion-webui\embeddings

画像生成

「anything」と「EasyNegative」を使って画像生成してみました。学習モデルに「anything」を使う場合、右上の「Stable Diffusion checkpoint」にて「anything-v4.0.ckpt」を指定します。

2次元アニメに特化した学習モデルなので当然ながらアニメ風ですね。

クオリティ高いです!! (よく見ると少し怪しい描画になってますが。。。)

あとがき

AIが生成した画像については著作権的にグレーな部分がありますが、私のように絵が下手な人にとっては魔法の筆を手に入れた気分です (^^)

ぼちぼちと他の学習モデルも試してみたいと思います。