1. はじめに
私の環境では Python のバージョン管理に pyenv-win を使用している。
この環境に Stable Diffusion を導入しようとしたが、一般的な手順では
- 公式インストーラ版を使用する
- PATH に Python を追加する(そのために、
pyenv globalを設定する)
といったグローバルな設定変更を前提としているものが多い。
しかし、一つの実行環境(Stable Diffusion)のためだけにデフォルト設定をするのは pyenv の思想と矛盾するのではないかと感じた。
そのため、pyenv-win + venv を使用し、global / PATH を設定せずに Stable Diffusion を実行する方法を記載する。
2. 前提条件
- OS: Windows 11 Pro 25H2
- Python: pyenv-win を使用
-
pyenv globalや PATH の設定はしない
3. 環境構築手順
本来の方法は下記リンクに記載されているが、少し手順が異なる。
3-1. pyenv-win のインストール
下記リンクに記載された方法でインストールする。
pyenv-win インストール後、推奨されているバージョンの Python をインストールする。
pyenv install 3.10.6
3-2. Git インストール
本来の手順同様、下記リンクから最新バージョンの Git をインストールする。
3-3. リポジトリのダウンロード
本来の手順同様、任意のディレクトリで、下記コマンドを実行してダウンロードする。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
3-4. 仮想環境の構築
ダウンロードフォルダ内で仮想環境を構築する。
cd stable-diffusion-webui
pyenv local 3.10.6
python -m venv .venv
ファイル構成が次のようになる。
stable-diffusion-webui/
├─ .venv/
├─ .python-version
...
└─ webui-user.bat
3-5. 仮想環境で実行するための設定
webui-user.bat をエディタで開き、下記のように変更する。
変更前:
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
変更後:
@echo off
set PYTHON=%~dp0.venv\Scripts\python.exe
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
set STABLE_DIFFUSION_REPO=https://github.com/joypaul162/Stability-AI-stablediffusion.git
set STABLE_DIFFUSION_COMMIT_HASH=f16630a927e00098b524d687640719e4eb469b76
call webui.bat
変更箇所の説明
set PYTHON=%~dp0.venv\Scripts\python.exe は、仮想環境の指定。%~dp0 は、自身のディレクトリを指す。
STABLE_DIFFUSION_REPO, STABLE_DIFFUSION_COMMIT_HASH は、下記リンクに記載されたバグ対応。
3-6. 初回起動
本来の手順同様、webui-user.bat を起動する。Web UIが表示されるはず。
4. おわりに
備忘録のため、個別の環境差異に関する問い合わせには対応できません。