ローカルで動く生成AI、LM Studioを使って楽しんでいる
LM Studioは素晴らしいが画像の生成はできない。
そこで、別のローカルで動く生成AI「Stable Diffusion」を入れてみた。
この記事の要約
Stable Diffusion を入れるには python が必要だが既に入っている python があるとバージョン問題でうまくいかない。
結論から言えば、Pythonのバージョンを下げたくなければAnacondaを使いつつ、webui-user.batを起動するときにvenvを無効にすれば良い。
Stable Diffusionのインストールでトラブル
以下の記事を参考にインストールをした。
(とてもわかりやすい記事に感謝!)
上記の記事を参考にして途中まで順調だったが、「webui-user.bat」を実行すると以下のエラーが出てしまった。
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cu121
ERROR: Could not find a version that satisfies the requirement torch==2.1.2 (from versions: 2.2.0, 2.2.0+cu121, 2.2.1, 2.2.1+cu121, 2.2.2, 2.2.2+cu121, 2.3.0, 2.3.0+cu121, 2.3.1, 2.3.1+cu121, 2.4.0, 2.4.0+cu121, 2.4.1, 2.4.1+cu121, 2.5.0, 2.5.0+cu121, 2.5.1, 2.5.1+cu121, 2.6.0, 2.7.0, 2.7.1, 2.8.0, 2.9.0, 2.9.1)
ERROR: No matching distribution found for torch==2.1.2
Traceback (most recent call last):
メッセージ前後をよく読むと、「python 3.10で検証しているから、python 3.10で実行してね」と書いてあった。
私の環境で python のバージョンを確認すると
python -V
Python 3.12.8
私の環境のバージョンが違う。「Stable Diffusion」で推奨されるバージョンより新しいv3.12.8なのでエラーになっているようだ。
私が参考にさせてもらった記事にもちゃんと「Python 3.10.6のインストーラーを」と書いてあるので、守らなかった私が悪い。
Python をダウングレードせずにAnaconda Promptで頑張る
Python 3.12 を削除して Python 3.10をインストールすれば解決する話だが、それだと既にPython 3.12で構築した環境にも影響が出るかもしれない。
そこで、「Anaconda Prompt」を使って仮想環境を作る
https://www.anaconda.com/download
上記のサイトからWindows用の「Miniconda Installers」をダウンロードする。(ファイル名は「Miniconda3-latest-Windows-x86_64.exe」でした)
ダウンロードできたら「Yes」とか「Next」を押して初期値でインストールを完了する。
Anaconda Promptの起動、環境設定
インストールが終わったら、「Anaconda Prompt」を起動する

コマンドプロンプトのような画面が開くので「Stable Diffusion」を置いた場所に移動して仮想環境を作る。
例えば「D:\stable-diffusion-webui」に置いたとすれば以下のコマンドを実行する。
cd /d D:\stable-diffusion-webui
conda create -n sd python=3.10
1行目はStable Diffusionをインストールしたフォルダ。
2行目の「sd」は好きな名前で良い。
※「Do you accept the Terms of Service (ToS)」(利用規約に同意するか?)と聞かれたら「a」(Accept/受諾)を押す。
ここでさらにトラブル
condaでv3.10の環境を作ったぞ~と思って、あらためて「webui-user.bat」を実行したが、前と同じエラーが出る。
よくメッセージを読んでいると、「webui-user.bat」は自分で仮想環境venvを作成しているようだ。
そこで、仮想環境を作らないように環境変数で指示をする
以降のコマンドも「Anaconda Prompt」で実行してください。Windowsのコマンドプロンプトではありません。
cd /d D:\stable-diffusion-webui
conda activate sd
set SKIP_VENV=1
webui-user.bat
3行目の「set SKIP_VENV=1」がポイント。
webui-user.bat(厳密にはその中から呼ばれている webui.bat)の中で「SKIP_VENV」の環境変数に1が設定されていればvenvを作らない設定があらかじめ入っているので、これで conda で作った環境で動くようになる。
ここでさらに、さらにトラブル
私の環境では以下のエラーがさらに出た
stderr: ERROR: Could not install packages due to an OSError: [WinError 1] : 'R:\\Temp\\pip-install-a4b17296\\jsonmerge_2cb8f6b0996147adb1391be51d85e0d9'
私の環境ではメモリの一部を「R」ドライブとして認識させてTEMPディレクトリとして使っていた。(RAMドライブ、というやつです)
インストールの時だけ、以下のコマンドを追加してTEMPディレクトリをSSD上の別の場所にしたら大丈夫だった。
※上記の「set SKIP_VENV=1」の後に以下のコマンドを入れてから、最後に「webui-user.bat」を実行した。
set TEMP=D:\Temp
set TMP=D:\Temp
起動と使い方
起動できると自動的にWebブラウザで以下のURLが開かれる
http://127.0.0.1:7860/
上の入力欄に文字を入れるとそれに沿って画像が生成される
下の例だとこんなプロンプト
rabbit, jumping, snow, deep white, springy leap, fluffy tail, playful expression, winter landscape, bright light, energetic pose, fresh snowfall, crisp air, joyful movement
最初から入っているモデルだと4秒くらいで画像を生成できた。
※後編に続きます
