画像生成 AI の Stable Diffusion WebUI ローカル環境導入
ローカル環境への Stable Difusion WebUI 導入の備忘録です。
再インストール時の備忘録的なもので、 初心者向けではありません。 ご留意ください。
1. 概要
先に導入すべき項目とその概要をまとめます。
- Stable Diffusion の WebUI:
- Stable Difusion を使うための ウェブインターフェース (UI)。
- いくつかバージョンがあるようですが、 AUTOMATIC1111 版を使用。
- UI ですが、本体もついてくるので、これだけ入れれば OK。
- モデル (チェックポイント):
- 原理をちゃんと分かっていないが、 Stable Difusion がニンテンドースイッチなら、 モデル (チェックポイント) はゲームソフトみたいなもの。
- Stable Diffusion にどんなモデルを入れるかで生成される画像が変わる。 モデルごとに実写系とかアニメ系等があるし、 同じアニメ系だとしても雰囲気が変わる。
- 拡張機能
- AUTOMATIC1111 の便利機能や、できることを増やすもの。
- AUTOMATIC1111 から簡単にインストールできるものと、 手順が多少複雑なものがある。
拡張機能は長くなるので、 ここでは本体導入時にやることだけまとめます。
2. WebUI のインストール
2.1. ダウンロード
ここの Code から HTTPS なり SSH なり好きな方法で git clone します。
git が使えない環境なら、 この辺 で zip をダウンロードできるかもしれません。
2.2. インストール前準備
まず、 clone したディレクトリを開きます。
webui-user.bat をエディタで開いて、 PYTHON 変数に python 3.10 のバージョンの exe を設定します。
@echo off set PYTHON="C:\...\Python310\python.exe" set GIT= set VENV_DIR= set COMMANDLINE_ARGS= call webui.bat
Windows で python をインストール済みの場合、
バージョンごとの exe の場所は py --list-paths で確認できます。
ちなみに、現在のバージョンは py --version で確認できます。
2.2.1. 補足1: Python インストール
Python のインストールは、 公式の Windows 用ダウンロードページ で公開されているインストーラーを使いましょう。
AUTOMATIC1111 公式の推奨は Python 3.10.6 です。
Python 3.10.11 以前のものはインストーラーが公開されています。 最新の 3.10.16 等はインストーラーすらないので注意。
chocolatey や Windows Store のものを使って 複数バージョン入れると環境がおかしくなります (なりました)。
2.2.2. 補足2: git インストール
「git とか PC セットアップ時に入れてるよね?」
「はい、そうですね」
戯言は置いといて。
GUI でやりたいなら https://github.com/apps/desktop というのがあるみたいですね。 *1
Windows なら chocolatey でインストールできます。 管理者権限に注意しましょう。
choco install -y git
逆に、同じターミナルで webui-user.bat を実行してしまって 管理者権限で WebUI 環境が構築されてしまわないように注意です (一敗)。
「git もまだなのに chocolatey 入れてるわけなんかないだろ」
「確かに」
このあたりで インストール用のコマンドをコピーして、 PowerShell コマンドを叩き込みましょう。
一応コピペしたものを置いておきます (2025/02/01 時点)。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
2.2.3. 補足3: webui-user.bat のやり直し
webui-user.bat を、 間違って内容を変更する前に実行してしまった場合、 インストールが始まろうとはしますが、 「python 3.10 へのパスが通ってません」 あるいは「python 3.xx は対応してません」 というエラーが出てきます。
この状態になってから、 改めて webui-user.bat を弄ってもどうにもなりません。 というのも、インストール過程で venv が勝手に実行されるので、 そのときに実行 python バージョンが固定されます。 指定なしの場合は Windows デフォルトのもので固定され、 それは大体 3.10 ではないので、エラーになります。
なので、もし実行してしまった場合は、 おとなしく venv ディレクトリを削除 してからやり直しましょう。
2.3. インストール
webui-user.bat を実行します。
webui.bat ではありません。 "user" のついている方を実行します。
あと、管理者権限も要りません。
時間がかかりますが、問題なく終わるはずです。
終わり次第、 WebUI が自動で起動します。
2.4. 追加のパッケージインストール
後でLoRA 学習用の拡張機能をインストールしたいので、 先に Python パッケージのインストールをしておきます。 もとい、バージョンの修正をしておきます。
powershell で以下を実行します。 終末の改行文字は解除してもいいです。
.\venv\Scripts\activate pip uninstall -y ` mediapipe ` wandb ` protobuf ` pydantic ` diffusers ` huggingface-hub pip cache purge pip install ` mediapipe ` wandb ` protobuf==3.20.3 ` pydantic<2 ` diffusers==0.25.0 ` huggingface-hub<0.26
ついでに改行を解除したものも置いておきます。
.\venv\Scripts\activate pip uninstall -y mediapipe wandb protobuf pydantic diffusers huggingface-hub pip cache purge pip install mediapipe wandb protobuf==3.20.3 pydantic<2 diffusers==0.25.0 huggingface-hub<0.26
2.4.1. 再インストール
後々起こりうるパッケージ回りのバグが起きた場合について、 小手先の変更でなんともならなさそうな事態に陥ったら、 基本的には venv を削除して webui-user.bat を再実行 すればいいです。
ただし、拡張機能のキャッシュ等が残っていてそれが悪さしている場合は、 extensions 中の拡張機能ディレクトリの削除と再ダウンロードが必要になるかもしれません。
いずれにせよ、本体ごと再インストールしたり、 venv 以外のディレクトリを削除しようとする場合、 設定ファイル・ログファイルやチェックポイント等のデータを削除 してしまわないように注意しましょう。
2.4.2. トラブルシューティング
Python パッケージ回りのトラブルシューティングに 役立ちそうな pip のコマンド等を整理しておきます。
.\venv\Scripts\activate: venv 環境を有効化する。無効化する場合は何もつけずにdeactivateを実行。pip index versions <package>: パッケージのインストール可能なバージョンの一覧。 バージョン指定で怒られた場合や、バージョン不一致が原因とみられる場合に使える。pip uninstall -y <package>: パッケージをアンインストールする。 -y を付けると確認を省略できる。pip cache purge: キャッシュを削除する。キャッシュが変に作用するとバージョン変更に失敗する。pip list: インストールされたパッケージの一覧を表示する。 バージョン確認に使える。pip list | Select-String "word1","word2",...: pip list だけだとすべてのパッケージが表示されるが、 Select-String を使えば任意のパッケージの情報だけを表示できる。
2.5. モデルダウンロード
この時点で UI を動かせそうに見えますが、何か作ろうとすると、 「モデルがありません」という趣旨のエラーが出ます。
初期状態ではモデルは何も入っていません。 clone したディレクトリの models というディレクトリにいろいろと入れる必要があります。 実際、中身を覗くと "Put XXX here.txt" とかいうファイルがあったりします。
ここは、好きなモデルをダウンロードしましょう。
注意点として、拡張子は ".safetensors" となっているものを選びます。 セキュリティ的に安全らしいです。
また、ファイルサイズが GB 単位なので注意です。
個人的に好きなアニメ系モデルを置いておきます。
- Milky Wonderland
- https://civitai.com/models/130417/milky-wonderland
- 2024年4月リリース。
- SD 1.5 (512x512 くらいの小さな画像用)
- Animagine XL 4.0
- https://civitai.com/models/1188071/animagine-xl-40
- 2025年1月リリース。
- SD XL (1024x1024 くらいの大きな画像用)
ダウンロードが完了したら、 モデルを "models/Stable-diffusion" ディレクトリに入れます。
"models" ではありません。 "models/Stable-diffusion" です。
そうしたら、 WebUI を再起動するか、 WebUI の一番左上にある 「Stable Diffusion checkpoint」 のリスト横にある更新ボタンを押しましょう。 そしたらモデルが読み込まれるはずです。
3. 追加設定
webui-user.bat で起動オプションを追加できます。
- 一覧: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings
起動オプションのうち、 使いそうなものを挙げておきます。
- 高速化のためのオプション
- アップデート関連:
--reinstall-xformers: xformers を有効にするとこれを入れた方がいい、みたいなことを言われます。 入れると起動は遅くなりますし、 一回アップデートしたらしばらくは必要ないと思います。--update-all-extensions: 拡張機能のアップデートをしてくれます。これも同上。
- コンソール系:
--disable-console-progressbars: ターミナルで「今何%です」みたいな感じのバーが消えます。
- アクセス方式:
--listen: LAN 内からのアクセス有効化。- ipconfig とかで IP アドレスを調べれば、 PC で動いている Stable Diffusion に スマホやタブレットからアクセスしたりできるようになります。
--shareというオプションもあります。 これは、 LAN の外からのアクセスを可能にする、らしいです。 言い換えれば、世界中のどこからでもアクセスできるようになります。 セキュリティリスク的に使うのは止めましょう。--enable-insecure-extension-access: listen を有効化すると拡張機能の設定ができなくなります。 絶対に悪意のあるアクセスが起きないという確証がある場合は、 このオプションを付けることで listen 中に (スマホ等から) 拡張機能を弄れます。
--api: API を有効化。
あと、各種設定ファイルやディレクトリは、 大体オプションで変更できます。
3.1. --listen と --share オプションについて
WebUI を、それを動作させている PC 外部からアクセスしたい場合、 --listen と --share の 2種類のオプションが見つかります。
上記では簡単に書きましたが、 公式には 以下のように書かれています。 (一部強調、意訳付与)
Running online
Use the --share option to run online. You will get a xxx.app.gradio link. This is the intended way to use the program in colabs. You may set up authentication for said gradio shared instance with the flag --gradio-auth username:password, optionally providing multiple sets of usernames and passwords separated by commas.
( オンラインで実行したい場合は --share オプションを使ってください。 xxx.app.gradio というリンクが発行されます。 これは、共同開発などでの利用を意図したものです。 gradio が発行した共有リンクに権限の設定を追加したい場合は、 --gradio-auth username:password というフラグを追加してください。 複数の権限を設定したい場合、 カンマ区切りで username:password を複数つなげることもできます。 )
Running within Local Area Network
Use --listen to make the server listen to network connections. This will allow computers on the local network to access the UI, and if you configure port forwarding, also computers on the internet. Example address:
http://192.168.1.3:7860Where your "192.168.1.3" is the local IP address.( --listen を使えば、サーバーがネットワーク接続を受け入れるようになります。。 つまり、ローカルネットワーク上の機器は WebUI にアクセスできます。 もしポートフォワーディングを設定すれば、 インターネット上のすべての機器からアクセスできるようにもできます。 例えば、あなたのローカル IP アドレスが "192.168.1.3" である場合、
http://192.168.1.3:7860という URL になります。 )Use --port xxxx to make the server listen on a specific port, xxxx being the wanted port. Remember that all ports below 1024 need root/admin rights, for this reason it is advised to use a port above 1024. Defaults to port 7860 if available.
(ポート設定の話につき略)
この説明を真に受けるなら、 --share オプションをつけると、 全世界からアクセス可能な web リンクが発行される らしいですね (?)
逆にそんなことを (無料で) してくれるとは信じがたい *4 のですが、 通常の人にとってはセキュリティリスクでしかないので止めましょう。
(ぐぐったところ、 「俺のつよつよ PC で Stable Diffusion をみんなに試してほしい!/みんなと遊びたい!」 みたいな人は一定数いるみたいなので、 そういう人向けかもしれません。)
逆に、 --listen だからといって、 「絶対に LAN 内のアクセスしか受け付けないようにセキュリティが施されている」 というわけではないわけではないので、 そちらはそちらで注意しましょう。 普通にローカルサーバーが立つだけです。 もしポートフォワーディングとかで出先からアクセスできるように 設定しようと思っている人がいたらご注意ください。
4. 簡単な使い方
4.1. 画像生成
左上のテキストボックス (txt2img タブの下) に、 生成したい画像の英単語を入力します。
そしたら右上の "Generate" ボタンを押しましょう。
右側に画像が表示されたら成功です。
そこから画像をダウンロードしてもいいですし、 デフォルトでは outputs ディレクトリ下に自動で保存されています。
4.2. 解像度
解像度は "Width/Height" のバーで調整できます。 ただし、これは罠です。
基本的にモデルごとに最適な画像サイズが決まっています。 先に挙げた SD 1.5 モデルは 512x512、 SD XL モデルは 1024x1024 です。
変に解像度を上げたり横長にしたりすると変な画像が生成されます。 どれくらいのサイズやアスペクト比に対応できるかは、 モデルのダウンロード元にある紹介文等を参考にしましょう。
解像度を上げたい場合は、Hire.fix タブを開いて、 そこの "Upscale by" を調整しましょう。
名前の通りここで指定された倍率で画像が大きくなります。
大きさに応じて実行時間が変わることにも注意しましょう。 単純に一辺が2倍になれば面積は4倍ですし、 それ以上の速度で計算時間が増えてる気がします。
4.3. プロンプトと設定の保存
プロンプトの保存は、 Generate ボタンの下にあるリストボックスのところでできます。
そこの鉛筆をたたくと 「Styles」 というウィンドウが出てくるので、 ここに登録したいプロンプトを入れて、名前を付けて保存します。
すると、リストボックスで登録されたスタイル名が選べるようになっているので、 それを選択すると、対応するプロンプトが入力されたのと同じことになります。
例えば、よく使うクオリティ設定・キャラ設定・場面設定とかを登録すると便利かもしれません。
また、画像に使用されたプロンプトや設定は、すべて画像中に保存されています。 PNG Info タブを開くと、画像をドロップする場所があるので、 そこに画像を D&D すると、その画像生成時に使ったプロンプトや設定を確認できます。
まとめ
ごちゃごちゃ書きましたが、 前提ソフトさえ揃っていれば、やることは 3 つだけです。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git- webui-user.bat の編集
- webui-user.bat の実行
そして、いろいろやって変になったら、 venv 削除でやりなおす。
あとは全部おまけです。
環境移行したい場合、 こうしてできた環境に設定ファイルやモデル、 extensions を叩き込めば基本動くはず、と思います。