こんにちは、ふじみやです。最近 Stable Diffusion で自分好みの画像を生成するのにはまっています。
以前、ローカル PC で 画像生成をするアプリとして NMKD Stable Diffusion GUI をご紹介しました。こちらは、.7z 形式のアーカイブファイルをダウンロードして解凍するだけで使えるというお手軽かつ便利なものでしたね。
とはいえ、色々なモデルを入れて画像生成をしてみようとしたところ「あれ?モデルが選べない」という経験をされた方もいらっしゃるのではないかと思います。
そういった方向けに、今回はちょっと導入に手間がかかりますがより高機能な Automatic1111 版 Stable Diffusion Web UI(以下「Web UI」と書きます)の導入方法をご紹介します。
なお、今回の導入方法は Windows をご利用されている方向けのものです。Linux や macOS をご利用されている方は、下記リンクよりインストラクションをご参照ください。
stable-diffusion-webui/README.md
ローカル PC で Stable Diffusion を利用できるようにするためにはグラフィックボードを搭載した PC を利用する必要があります。そういった PC をお持ちでない方は Google Colaboratory を使う方法もありますので、そちらの利用をご検討ください。
推奨スペック
NMKD Stable Diffusion GUI を利用する際と同一の推奨スペックを掲載しています
- OS:Windows 10または11(64bit版)
- メモリ:16GB(最小8GB以上)
- ストレージ:SSDに17GB以上の空き容量(最小10GB以上)
- GPU:8GB以上のVRAM搭載の2016年製以降のNVIDIA GPU
(最小4GB以上のVRAM搭載の2014年製以降のNVIDIA GPU)
概ねエントリー〜ミドルクラスのゲーミングPCであれば推奨スペックを充足するという感じかと思います。
事前準備
Web UI の利用には Python 3.10.6 と git がインストールされていることが前提となります。
Python 3.10.6 のインストール
Python の配布ページにアクセス後、CTRL + F にて検索ボックスを表示させ「3.10.6」と入力して検索をしてください。すると Python 3.10.6 のダウンロードリンクがあるところまで表示が飛びます。
ダウンロードリンクを見つけたら「Download Windows Installer (64-bit)」をクリックし、インストール用の .exe ファイルをダウンロードしましょう。
その後はインストーラーの案内にしたがって先に進み「Add Python to PATH」にチェックを入れてください。
インストールが完了したら、コマンドプロンプトにてpython --version
と入力し、Enter キーを押下しましょう。Python 3.10.6
と出てくればインストール成功です(以下の画像では違うバージョンが表示されていますが、こちらでも Web UI はちゃんと動いてくれています。)。
git のインストール
git に関しても Python のインストールと進め方は同様です。
公式の配布サイトにアクセスし記事タイトルの直下にある「Click here to download」と書かれているリンクをクリックし、インストーラーをダウンロードしましょう。
あとは同様にインストーラの案内にしたがって先に進んでください。
インストールが完了したら、先ほどと同様にコマンドプロンプトにてgit --version
と入力をしてみましょう。
以下のようにgit version 2.39.2.windows.1
と表示されればこちらもインストールは無事完了です(インストールをした時期によってバージョンは異なっている可能性があります。)。
WebUIのインストール
事前準備が完了したら、コマンドプロンプトに以下を入力しましょう。実行をすると、Web UI を動作させるのに必要なリポジトリのダウンロードが始まります。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
ダウンロードが完了したらC:\Users\<ユーザー名>
にstable-diffusion-webui
というフォルダが出来ているはずですので、フォルダを開いてください。
フォルダ内にあるwebui-user.bat
をダブルクリック(または ENTER キー押下)すると、再度コマンドプロンプトが起動し、何やら Web UI に必要なものをダウンロードしたりファイルの読み込みが行われたりしますので、しばらく待ちましょう。
以下の画像のように「To create・・・」という文字が表示されれば読み込み完了ですので、http://127.0.0.1:7860 と記載されている URL を CTRL キーを押下しながらクリックしましょう。このときコマンドプロンプトは閉じずにそのまま放置しておいてください。
すると Web ブラウザが起動しますので、プロンプトを入力し右側の Generate をクリックすれば画像が右下に表示されます。
なお、ここで表示された画像はC:\Users\<ユーザー名>\stable-diffusion-webui\outputs\txt2img-images
の中に日付毎に保存されますので過去の画像を参照したい場合や不要な画像を削除したい場合にはこちらのフォルダにアクセスしましょう。
webui-user.bat の編集
上記だけで動く方も多いかと思いますが、画像を生成しようとした際にOutOfMemoryError: CUDA out of memory
やA tensor with all NaNs was produced in Unet
といったエラーが出てくることがあります。
こういったことが起きることを極力避けるためwebui-user.bat
の内容を変更しておきましょう。また、Automatic1111 の Web UI はよくアップデートがされるようですので .bat ファイル実行時にアップデートをするようにもしておきましょう。
.bat ファイルを右クリックして編集(使用するエディタはメモ帳で十分です)し、内容を以下に張り替えてください。このとき、ファイルは上書き保存せずに違うファイル名(例えばupdate-webui-user.bat
等)に変更するようにしましょう。
元のファイルを残しておけば、何か問題があったときにはすぐに復元することができます。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers --precision full --no-half
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6, max_split_size_mb:128
git pull
call webui.bat
なお、ここではset COMMANDLINE_ARGS
の行にてA tensor with all NaNs was produced in Unet
の対処をし、set PYTORCH
にてメモリの割当をしています。またgit pull
がアップデートのためのコードです。
それでもメモリ不足となる場合
webui-user.bat
を編集しても Web UI にてメモリ不足となる場合には、.bat ファイルのCOMMANDLINE_ARGS
を次の通りに修正してみましょう。
set COMMANDLINE_ARGS=--xformers --precision full --no-half --medvram --opt-split-attention
この書き方は GitHub の Q&A を参考にしています。
PyTorch のバージョンが古いと出た場合
PyTorch のバージョンが上がると Stable Diffusion Web UI が動かなくなることがあります(最新版の PyTorch で動作させるようにエラーが出ます)。
この場合、コマンドプロンプト上に表示されている対処法をset COMMANDLINE_ARGS
の行に追記しましょう。
まとめ
私自身、まだまだ Web UI を使いこなしているとは言えませんが、導入に手間がかかる分 Web UI のほうが細かい設定が可能であったり最新のモデルを利用できたりとメリットを享受することも可能です。
サンプルとなるようなプロンプトも Web 上では数多く公開されていますので、皆さんもご自身の好みにあった画像を生成してみてください。
それではまた。
コメント