社内LAN環境などでStable Diffusionを使う場合、プロキシサーバーの設定を行わないと正しく接続できず、Python等のインストール後に必須ライブラリをインストールできません。
そうなると Stable Diffusion WebUI が起動せず使えませんので、この記事ではSDWeb用にプロキシを設定する方法について紹介します。
※stable-diffusion webui (automatic1111) 最新版前提で以降は話を進めます。
1. pyファイルの修正
stable-diffusion-webui のリポジトリをクローンするかZipでDLしたあと、以下のフォルダにある launch_utils.py を開きます。
📁 stable-diffusion-master
→📁 modules
→📃 launch_utils.py
ここの import json と from functools … の間くらいに以下の記述を追記します。ここにプロキシサーバーの設定を追加してください。
launch_utils.py の設定
import os
...(中略)
import json
# ここから追記↓
os.environ['http_proxy'] = 'http://プロキシサーバーのURL:ポート/'
os.environ['https_proxy'] = 'https://プロキシサーバーのURL:ポート/'
os.environ['no_proxy'] = 'localhost, 127.0.0.1'
# 追記ここまで↑
from functools import lru_cache
▼ ※ここをクリックすると、折りたたまれた以前のバージョン向けの解説部分を展開します。以前のバージョンを対象としていますが、念のため残しておきます ▼
stable-diffusion webui配下にある launch.py, webui.py ファイルの import の後の行あたりに以下を追加します。
※注意 launch.py, webui.py はアップデートで内容が変わっていることがありますので、以前のバージョンでやっていたとしても、ファイルごと上書きは避けてください。
※launchの例
import os
...(中略)
import json
# ここから追記↓
os.environ['http_proxy'] = 'http://プロキシサーバーのURL:ポート/'
os.environ['https_proxy'] = 'https://プロキシサーバーのURL:ポート/'
os.environ['no_proxy'] = 'localhost, 127.0.0.1'
# 追記ここまで↑
これを launch.py, webui.py の2つのファイルに対して行います。
– – – – – –
2. webui-user.bat に追記
さらに webui-user.bat にも追記します。
webui-user.bat の内容
(前略)
rem 変更ここから↓
set COMMANDLINE_Args=--autolaunch --disable-nan-check
rem 必要に応じて --listen --share を追加(公開設定には注意)。 --disable-nan-check は必要に応じて(あったほうがモデルによってはいいです)。
rem もしモデル等を別のフォルダにしたいとき……例えば一個上のフォルダ階層に置くなら、 --ckpt-dir="..¥models" --embeddings-dir="..¥embeddings" を追加しておくと指定できます。
rem 変更ここまで↑
rem 追記ここから↓
set HTTP_PROXY=http://プロキシサーバーのURL:ポート
set HTTPS_PROXY=https://プロキシサーバーのURL:ポート
set NO_PROXY="localhost, 127.0.0.1"
rem 追記ここまで↑
call webui.bat
これで webui-user.bat から起動するとプロキシ設定が反映されるようになります。
※–ckpt-dir と –embeddings-dir を指定するとモデルとembeddingsのフォルダを指定できます。(管理がしやすくなるのでおすすめです。絶対パス指定時は “D:¥models”のように指定します。ちなみに絶対パス指定じゃないと、モデルは読み込めますがフォルダ分けしている場合は全部一緒くたになぜかなってしまうので、絶対パス指定ができる場合はしておいたほうがおすすめです。)
また、組織LAN環境なので当然ではありますがセットアップ前のPythonのDL時など、通常のブラウジングではOSのインターネット設定からプロキシをあらかじめ入れておくなどしておいてください。(たまに勝手に外れることがあるようです。)
※ちなみにSDWebが起動しないエラーのうち、GPUの検出に失敗して –skip-torch-cuda-test を入れるように促されたり、「Python 本体が見つからない(インストールしてるのに)」みたいなケースではほぼ100%仮想環境の構築に失敗していることがほとんどです。
そのためなんかわからんけど立ち上がらない、という場合は venv ディレクトリをリネームか削除してからもう一度 webui-user.bat を起動し、再セットアップするとすんなり行ったります。