khurata’s blog

khurata’s blog

非力で古い Windows マシンで Stable Diffusion Web UI 環境を構築する手順メモ

(2022/10/10 改稿:GFPGAN 手動インストール手順が不要なため削除)

 CPU も GPU も古く弱いマシン環境で「遅くても動く Stable Diffusion」の web UI 環境(ブラウザー画面による操作環境)を作る手順を示す。

 適応環境は Intel Core シリーズ CPU および NVIDIA 製の CUDA 搭載 GPU を持つ Windows 10 64bit の PC である。
 CPU については第4世代(Haswell)と第5世代(Skylake)で検証済みなので、それ以降であれば動作すると思われる。
 GPU については Quadro K620 と Quadro K2200 で検証済みだが、それ以外の GPU であっても、NVIDIA 製で CUDA コアを積んでいて3.項が実行できるものなら動作すると思われる。

 適応作業者は Windows 一般の操作ができて、コマンドプロンプトに抵抗を感じない人である。 コマンドプロンプトの扱いに不安がある人は、あらかじめ
https://atmarkit.itmedia.co.jp/ait/articles/1502/13/news147.html
などで学習しておくことが望ましい。

 また、本記事では Stable Diffusion の関連ファイルを C: ドライブにインストールするが、インストールには18ギガバイトほどの空き容量が必要であるため、C: ドライブに空きが無い場合は、他のドライブにインストールしても構わない(実行速度が遅くなるだけである)。
 ただし1.項から3.項までは起動ドライブに、つまり多くの場合 C: ドライブにインストールするのが良い。 ドライブを変えて良いのは4.項から6.項までである。

 なお、本記事で \ と表示されている記号(バックスラッシュ)は、日本語キーボードでは¥に相当する。 入力すると「¥」になるが、PC は「 \ 」として認識するので、¥のまま入力してもらって構わない。

 

1.スクリプト言語 Python の実行環境をインストール

 Stable Diffusion や、その関連ツールは、Python(パイソン)というプログラミング言語で書かれているため、Python をインストールしておく必要がある。
 なお、Stable Diffusion 以外にも Python は「使える」ので、「とにかくインストールしておいて損は無い」と言える。

 Python の公式サイト https://www.python.org/ にある「Downloads」をクリック、続けて [Download Python 3.10.7] ボタンをクリックし、
python-3.10.7-amd64.exe
というファイルを適当なところにダウンロードする(このファイル名は 2022/10/08 時点のものであり、最新のものは異なるバージョン・異なるファイル名である事がある)。

 これを実行してインストーラーを起動する。

 下部の「Add Python 3.10 to PATH」にチェックを入れる。 これは後からでも設定できるがここでやっておく方がラク

「Install Now」か、
「→ Customize installation」を選択する。

 「Install Now」を選ぶと、現在 Windows にログオンしているユーザーにのみ Python がインストールされる。 今回は全ユーザーに対してインストールしたいので(特に理由は無い)、「→ Customize installation」をクリック。

 「Optional Features」画面では、そのまま(多分すべてにチェックが入っている)[Next] をクリック。

 「Advanced Option」画面では、「Install for all users」にチェックを入れる。 すると必要なチェックが自動的に入り、「Customize install location」も自動的に設定されるので、[Install] をクリック。

 Windows のユーザーアカウント制御画面が出たら、[はい] をクリック。

 「Setup was successful」画面が出たら、「Disable path length limit」をクリックして、Windows のファイル名長さ制限を解除しておく。

 Windows のユーザーアカウント制御画面が出たら、[はい] をクリック。

 「Setup was successful」画面が出たら、[Close] をクリックしてインストーラーを終了。

 新規にコマンドプロンプトもしくは PowerShell を起動し、
python -V
と入力して(末尾で Enter キーを押す)、

Python 3.10.7

のように表示される事を確かめる(表示されるバージョン番号は 2022/10/08 時点の最新安定版のもの)。 表示されれば Python のインストールは完了している。

 

2.ソフトウェア管理ツール Git をインストール

 Stable Diffusion や、その関連ツールのプログラムは、Git と呼ばれる管理ツールで管理されているので、プログラムの取得や更新をするために Git が必要である。 なお、Stable Diffusion 以外にも Git が「使えると良い場面」は有るので、これも「とにかくインストールしておいて損は無い」。

 Git ツールの公式サイト https://git-scm.com/ にある [Download for Windows] ボタンをクリックして、「Standalone Installer」の 
「32-bit Git for Windows Setup.」
か、もしくは
「64-bit Git for Windows Setup. 」
をクリックする。 今回は 64bit 環境を例にするので、後者をクリックして、
Git-2.38.0-64-bit.exe
というファイルを適当なところにダウンロードする(このファイル名は 2022/10/08 時点のものであり、最新のものは異なるファイル名である事がある)。

 これを実行してインストーラーを起動する。

 Windows のユーザーアカウント制御画面が出たら、[はい] をクリック。

 「Information」画面で GNU General Public License を読んだら [Next] をクリック。

 「Select Destination Location」画面で、インストール先が選べるが、通常はそのまま [Next] をクリック。

 「Select Component」画面で、「Windows Explorer integration」と、配下の「Git Bash Here」および「Git Gui Here」をチェックして [Next] をクリック。

 「Select Start Menu Folder」画面ではそのまま [Next] をクリック。

 「Choosing the default editor used by Git」画面では、特に他の用途が無ければ「Use Notepad as Git's default editor」を選ぶが、VS Code がインストールされている環境ならば 「Use Visual Studio Code as Git's default editor」を選ぶのが良い。 どれかを選んで [Next] をクリック。

 「Adjusting the name of the initial branch in new repositories」画面では、通常はそのまま [Next] をクリック。

 「Adjusting your PATH environment」画面では、通常は「Git from the command line and also from 3rd-party-software」を選択して [Next] をクリック。

 「Choosing the SSH executable」画面では、通常は「Use bundled OpenSSH」を選択して [Next] をクリック。

 「Choosing HTTPS transport backend」画面では、通常は「Use the OpenSSL library」を選択して [Next] をクリック。

 「Configuring the line ending conversions」画面では、通常は「Checkout Windows-style, commit Unix-style line endings」を選択して [Next] をクリック。

 「Configuring the terminal emulator to use with Git Bash」画面では、初期設定のままではなく「Use Windowss' default console window」を選択して [Next] をクリック。

 「Choose the default dehavior of `git pull`」画面では、通常は「Default (fast-forward or merge)」を選択して [Next] をクリック。

 「Choose a credential helper」画面では、通常は「Git Credential Manager」を選択して [Next] をクリック。

 「Configuring extra options」画面では、通常は「Enable file system caching」にチェックを入れ、「Enable Symbolic links」はチェックせずに [Next] をクリック。

 「Configuring experimental options」画面では、通常は何もチェックせずに [Install] をクリック。

 「Completing the Git Setup Wizard」画面が表示されたら、「View Release Notes」をチェックせずに [Finish] をクリックしてインストーラーを終了。

 また別に新規のコマンドプロンプトもしくは PowerShell を起動し、
git -v
と入力して(末尾で Enter キーを押す)、

git version 2.38.0.windows.1

のように表示される事を確かめる(表示されるバージョン番号は 2022/10/08 時点の最新安定版のもの)。 表示されれば Git のインストールは完了している。

 

3.GPU 演算支援プログラミング環境 CUDA のインストール

 Stable Diffusion は、大量の計算処理を要するので、既定では GPU 演算の援用を想定している。 GPU を使わず CPU だけで画像生成する Stable Diffusion の fork(派生)もあるが、今回はノーマルの GPU 演算版を使うので、GPU 演算のための支援環境 CUDA をインストールする。

 NVIDIA DEVELOPER サイトの CUDA ダウンロードページ https://developer.nvidia.com/cuda-downloads にアクセスする。

 このページの直接リンクでない行き方はいくつか有る。
 たとえば、NVIDIA DEVELOPER サイト https://developer.nvidia.com/ の最下方にある「Popular SDKs」の「CUDA Toolkit/SDK」をクリックして CUDA ZONE ページに行き、
そこの [Download Now >] ボタンをクリックすれば https://developer.nvidia.com/cuda-downloads に行ける。
 または https://developer.nvidia.com/ の上方の「Downloads」をクリックして Developer Downloads ページに行き、「Download Centers」の「CUDA Toolkit」をクリックして CUDA Toolkit ページに行き、[Download Now] ボタンをクリックすれば https://developer.nvidia.com/cuda-downloads に行ける。

 「Select Target Platform」では「Windows」をクリック。
 「Version」は「11」をクリック。
 「Installer Type」は「exe [local]」をクリック。

 「Download Installer for Windows 11 x86_64」が表示されるので、「Download [3.0 GB]↓」をクリックして、
cuda_11.8.0_522.06_windows.exe
というファイルを適当なところにダウンロードする(このファイル名は 2022/10/08 時点のものであり、最新のものは異なるファイル名である事がある)。

 これを実行してインストーラーを起動する。 起動にはしばらく時間がかかるので待つ。

 Windows のユーザーアカウント制御画面が出たら、[はい] をクリック。

 「CUDA Setup Package」ダイアログでは、そのまま [OK] をクリック。

 「CUDA Setup」ダイアログの進捗グラフが完了するまで待つ。

 NVIDIA インストーラーが起動したら、[同意して続行する(A)] をクリック。

 インストールオプションは「高速 (推奨)(E)」を選択して [次へ(N)] をクリック。

 「CUDA Visual Studio Integration」は「I understand, and wish to continue the installation regardless」にチェックを入れて [NEXT] をクリック。

 「Preparing for installation」の進捗グラフが完了するまで待つ。

 「インストールが進行中です」の進捗グラフが完了するまで待つ。

 「Nsight Visual Studio Edition Summary」は、そのまま [次へ(N)] をクリック。

 「NVIDIA インストーラーが終了しました」で [閉じる(C)] をクリック。

 また別に新規のコマンドプロンプトもしくは PowerShell を起動し、
nvcc -V
と入力して(末尾で Enter キーを押す)、

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

のように表示される事を確かめる(表示されるバージョン番号などは 2022/10/08 時点の最新安定版のもの)。 表示されれば CUDA のインストールは完了している。

 

4.Stable Diffusion web UI ファイルの配置

 Stable Diffusion は、元々はコマンドプロンプトなどでコマンド文字列を打ち込んで使うツールなのだが、より使いやすくするためにブラウザー画面から操作できるようにした web UI があるので、今回はそれをインストールして使う。

 Stable Diffusion は実行時に数ギガバイトの巨大なデータファイルを参照するので、インストールするディレクトリ(フォルダー)は、できれば高速なドライブが良い。 近年の Windows PC は C: ドライブが高速な SSD である事が多いので、今回は C: ドライブ直下に \stable-diffusion-webui ディレクトリを置いて、そこにインストールしてみる。

 コマンドプロンプトを起動し、
C:
cd \
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
と入力する(各行とも末尾で Enter キーを押す)。

 数秒から1分ほどで GitHub から Stable Diffusion web UI のファイル群(22メガバイトほど)のロードが終了する。

 C:\ 直下に stable-diffusion-webui というディレクトリが作られていることを確認する。

 C:\stable-diffusion-webui ディレクトリ直下に、
log
というディレクトリを作成しておく。

 C:\stable-diffusion-webui\log ディレクトリ直下に、
images
というディレクトリを作成しておく。

4.1 セーフティーフィルターの解除

 Stable Diffusion は、既定では18禁となるようなエロ・グロ画像を生成しない設定になっている。 それでは自由な画像生成ができないので、今回はその設定を解除するために、C:\stable-diffusion-webui\modules ディレクトリ直下の safety.py ファイルの内容を変更する。

 変更する前に、そのディレクトリ内で safety.py をコピーして safety - コピー.py を作っておく。

 元からあった safety.py ファイルをメモ帳で開き、39行目あたりにある

   x_checked_image, has_nsfw_concept = check_safety(x_samples_ddim_numpy)

を、

    x_checked_image = x_samples_ddim

に書き換えてセーブする。 行頭の空白の文字数もきちんと維持すること。 空白1字たりとも間違えてはならない

4.2 性能不足のグラフィックボードが使えるよう指定を変更

 もともと Stable Diffusion は、潤沢なメモリーを持つ高価な NVIDIAGPU 用だが、古い・安い GPU を使うよう設定変更ができる。 そのために今回は C:\stable-diffusion-webui ディレクトリ直下の webui-user.bat ファイルを変更する。

 変更する前に、そのディレクトリ内で webui-user.bat をコピーして webui-user - コピー.bat を作っておく。

 元からあった webui-user.bat ファイルをメモ帳で開き、6行目あたりにある

set COMMANDLINE_ARGS=

を、

set COMMANDLINE_ARGS=--precision full --no-half --lowvram --opt-split-attention

に書き換えてセーブする。 空白の箇所やハイフンの個数を間違えてはならない

 

5.モデルデータの取得

 Stable Diffusion が使用するモデルデータを取得する。 実写系画像を生成したい場合は5.1項のデータを、萌え系画像を生成したい場合は5.2項のデータを要するが、
いずれのデータも、取得するには AI 関連コミュニティサイト Hugging Face のアカウントが必要なので、まずは適当なアカウントを作る。

 https://huggingface.co/ にアクセスし、右上のハンバーガーメニューをクリックして、「Sign Up」をクリック。

 「Join Hugging Face」画面で、自分に届くメールアドレスと、適当なパスワード(英大文字・英小文字・数字・英数記号が必要で12文字以上)を入力して [Next] をクリック。

 「Complete your profile」画面で、「Username」と「Fullname」を適当に入力し、「I have read and agree with the Term of Service and the Code of Conduct」にチェックを入れて、[Create Account] をクリック。

 発信者「hugging face」から「[Hugging Face] Confirm your email address」というメールが届くので、その中の確認リンクをクリック、もしくはリンクアドレスをコピーしてブラウザーのアドレス欄に貼り付ける。

 ブラウザーに「Join an organization」と表示されればアカウント作成は完了している。

5.1 実写系モデルデータの取得

 Hugging Face サイト上部の検索窓に
stable-diffusion-v1-4-original
と入力すると、候補に「CompVis/stable-diffusion-v1-4-original」が出てくるので、それを選択する。

 「I have read the License and agree with its items」にチェックを入れて「Access repository」をクリックすると、

Download the weights
・sd-v1-4.ckpt
・sd-v1-4-full-ema.ckpt

と表示されるので、sd-v1-4.ckpt をクリックして
sd-v1-4.ckpt
というファイルを適当なところに、出来れば C: ドライブのどこかにダウンロードする。 これは約4ギガバイトあるのでダウンロードにはしばらく時間がかかる。

5.2 萌え系モデルデータの取得

 Hugging Face サイト上部の検索窓に
hakurei
と入力すると、候補に「hakurei/waifu-diffusion」が出てくるので、それを選択する。

 「Original Weights」リンクをクリックすると、

Waifu Diffusion v1.3
Waifu Diffusion is a latent text-to-image diffusion model that has been conditioned on high-quality anime images through fine-tuning.
・Float 16 EMA Pruned
・Float 32 EMA Pruned
・Float 32 Full Weights
・Float 32 Full Weights + Optimizer Weights (For Training)

と表示されるので「Float 32 Full Weights」をクリック。

「↓download」をクリックして
wd-v1-3-full.ckpt
というファイルを適当なところに、出来れば C: ドライブのどこかにダウンロードする。 これは約7ギガバイトあるのでダウンロードにはしばらく時間がかかる。

 

6.モデルデータの配置

 5.1項で取得した sd-v1-4.ckpt か、5.2項で取得した wd-v1-3-full.ckpt を、C:\stable-diffusion-webui\models\Stable-diffusion ディレクトリ直下に移動させる。 両ファイルをそこで共存させても良い。

 使いたいモデルデータのいずれかを、
model.ckpt
に名称変更しておく。

 

7.Stable Diffusion web UI の初回起動と終了

 C:\stable-diffusion-webui ディレクトリ直下の webui-user.bat を実行する。

 自動的にコマンドプロンプトが起動して、Stable Diffusion web UI および関連プログラムのインストールと起動が自動的に進行する。 初回起動はインストール動作が多く、全部で数分から数十分ほどかかるが、完了まで放置しておいて構わない。

 Installing torch and torchvision と表示されて、なかなか動かないが、いずれ動くので気長に待つ
 Installing gfpgan と表示されて、なかなか動かないが、いずれ動くので気長に待つ
 Cloning Taming Transformers into repositories\taming-transformers... と表示されて、なかなか動かないが、いずれ動くので気長に待つ
 Installing requirements for CodeFormer と表示されて、なかなか動かないが、いずれ動くので気長に待つ
 Installing requirements for Web UI と表示されて、なかなか動かないが、いずれ動くので気長に待つ

 しばらく放置していると、そのうち、

Running on local URL: http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

のように表示されて、初回起動が完了する。

 ブラウザーのアドレス欄に、上記コマンドプロンプトで表示されている http からの文字列を打ち込む。 この場合は
http://127.0.0.1:7860
である。 すると、ブラウザー画面に Stable Diffusion web UI が表示される。

 Prompt 欄に、たとえば
illustration of a beautiful girl
を入力し、
Negative prompt 欄に、たとえば
mutated hands and fingers, text, title, deformed, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limb, ugly, poorly drawn hands, missing limb, floating limbs, disconnected limbs, malformed hands, out of focus, long neck, long body
を入力し、
[Generate] ボタンをクリックすると、画像生成が始まる。

 画像生成中は、web UI を起動したコマンドプロンプトと、web UI(ブラウザーの画面)の両方で進捗グラフが表示される。 第6世代 Skylake CPU と Quadro K620 という古い PC で、上記 Prompt を設定して Generate すると、3分ほどで「キレイなお姉さん風」の画像が生成された。 最近の PC だと1分以内、速ければ数秒で生成されるだろう。

 Prompt とは、いわゆる「呪文」であり、生成したい画像の特徴や様子や属性を英単語テキストで指定する。 スペースで区切った複数の単語は、それ全体が1つの属性と見なされるらしい。 カンマで区切れば複数の属性が書けるようだ。 また1つの属性を半角カッコで囲むと、その属性が強調される。 カッコの数を増やすとさらに強調される。

 Negative prompt も「呪文」だが、こちらは生成する画像に「望まない」特徴や属性をテキストで指定する。 指定の方法は Prompt と同じである。 Negative prompt に関しては https://w.atwiki.jp/memeplex/pages/137.html などが詳しい。

 web UI の [Save] ボタンをクリックすると、生成した PNG 画像が C:\stable-diffusion-webui\outputs\txt2img-images ディレクトリに保存される。 後は Prompt や Negative prompt や他の設定を変更して Generate を繰り返せばよい。

 他のボタンや設定、使い方については https://note.com/npaka/n/nc8b0e9a91d97https://gigazine.net/news/20220913-automatic1111-stable-diffusion-webui-img2img/ などが詳しい。

 終了するには、ブラウザーの web UI ページを閉じ、web UI を起動したコマンドプロンプトをクリックしてから ctrl+C を押す。

バッチ ジョブを終了しますか (Y/N)?

と表示されるので、
y
Enter キーを入力する。 コマンドプロンプトが閉じて、Stable Diffusion が終了する。

 

8.Stable Diffusion web UI の2回目以降の起動

 C:\stable-diffusion-webui ディレクトリ直下の webui-user.bat を実行する。

 自動的にコマンドプロンプトが起動して、Stable Diffusion web UI の準備が自動的に進行する。 初回起動ほど時間は掛からない。 
そのうち、

Running on local URL: http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

のように表示されて、起動が完了する。

 ブラウザーのアドレス欄に、上記コマンドプロンプトで表示されている http からの文字列を打ち込む。 この場合は
http://127.0.0.1:7860
である。 すると、Stable Diffusion web UI が表示されて使えるようになる。

 終了方法は初回と同じである。

 

9.Stable Diffusion web UI のアップデート

 Stable Diffusion web UI が終了している状態で、C:\stable-diffusion-webui フォルダーを右クリックし、Git Bash Here をクリック。

 コマンドプロンプトのようなウインドウが開くので、そこに
git pull
と入力して Enter キーを押す。 更新があれば、

13 files changed, 58 insertions(+), 29 deletions(-)

のように表示されて終わる(表示される内容・数字は環境によって異なる)。

 このウインドウを閉じるには
exit
と入力して Enter キーを押す。

 ただし、動作に問題がある、とか、更新しなければセキュリティに問題がある、という場合以外は、更新する必要は無い。

 なお、更新すると、4.1項や4.2項で行った書き換えが無効になってしまう事があるため、更新後は両方とも確認すること。

 

参考サイト

https://ch.dlsite.com/matome/218813
https://gigazine.net/news/20220903-stable-diffusion-safety-filter/
https://gigazine.net/news/20220907-automatic1111-stable-diffusion-webui/ここの説明では管理者権限コマンドプロンプトを使っているが必ずしも要しない
https://w.atwiki.jp/memeplex/pages/137.html
https://w.atwiki.jp/memeplex/pages/151.html
https://twitter.com/harulu_t2/status/1574007270782140416
https://note.com/npaka/n/nc8b0e9a91d97
https://gigazine.net/news/20220913-automatic1111-stable-diffusion-webui-img2img/
https://github.com/TencentARC/GFPGAN/
http://cedro3.com/ai/gfpgan/
https://ossan-gamer.net/post-82301/ここの説明では GFPGAN 用データを手動で設置しているが自動設置されるので不要
https://huggingface.co/
(以上)