筆者はStable Diffusion web UIをローカル環境にインストールしています。
インストール初日は、安定していたものの、2~3日したくらいから、なぜか通信が安定せず起動しない、起動しても通信が切れて画像生成できないというトラブルに見舞われました。
常時TLS(HTTPS)化することで、解決できたのでその流れを説明します。
突然起動しないトラブル発生
インストール初日こそ特にトラブルなく使用できていたのですが、2~3日したくらいからトラブルが発生しました。
・PC電源ON→Windowsログインの直後にStable Diffusion web UIを起動すれば立ち上がるが、通信が不安定
・Windowsログインから時間が経過すると、Stable Diffusion web UIが起動しなくなる
何が原因なのかわからず、再インストールなど色々試しましたが、解決せず。しばらくは、だましだまし使っていました。
【筆者の環境】
OS | Windows 11 Home 64-bit |
CPU | AMD Ryzen 5 5600X |
RAM | 32GB |
GPU | ZOTAC RTX 3070 Twin Edge OC (VRAM:8GB) |
SSL(HTTPS)化で解決
英語でgithubや海外サイトを検索して、あれこれ試してみました。結果、TLS(HTTPS)化で解決できました。
日本語で検索しても答えにたどり着かないことって多いのですが、英語で検索すると世界中の知恵を拝借できるので、英語は偉大だと改めて感じました。(英語の学習方法についても解説した記事があるので、興味ある方はご覧ください。)
SSL(HTTPS)化とは
Stable Diffusion web UIのローカル版は、初期設定では、pythonの仮想環境venvにローカルサーバーを構築しlocalhost(127.0.0.1)にてアクセスする方式になっています。この時、通信はHTTPで暗号化されていない状態です。
HTTPだと、そもそも生成した画像が流出してしまうリスクがあるのでセキュリティ上良くない状態です。
さておき、なぜ筆者の環境において、HTTPでStable Diffusion web UIの起動、通信が不安定なのか、原因は特定できていません。筆者の理解では、使っているインターネットの環境(プロキシ設定)、セキュリティ対策状況(セキュリティソフト、ファイアウォール設定等)等のいずれかが、暗号化されていないHTTPのリスクを考慮し、接続をブロックしているのではないかと考えています。
そこで、HTTP通信をTLSにて暗号化されたHTTPS通信に切り替えれば解決するということになります。
TLS(HTTPS)化の手順
今回は、Stable Diffusion web UIのAuto TLS-HTTPS Extension を使います。
Stable Diffusion web UIを起動し、Extensions→Install from URL のタブに切り替えます。
URL for extension’s git repositoryに https://github.com/papuSpartan/stable-diffusion-webui-auto-tls-https.git を入力し、インストールします。
Extensions→Installedに stable-diffusion-webui-auto-tls-https が追加されれば完了です。
次回のStable Diffusion web UIの起動から、通信はTLSにて暗号化されたHTTPSに切り替わります。
使用するブラウザによりますが、例えばChromeの場合は、下記のように証明書エラー/警告が出ます。
Stable Diffusion自体の通信は、TLS暗号化されているので、問題ないとのことです。
どうしても警告が気になる方は、SAN付の自己証明書(通称:オレオレ証明書)を作成して、インポートすれば、解決できるらしいので、チャレンジしてみても良いと思います。
まとめ
同じ症状のトラブルに見舞われた方がどのくらいいるかはわかりませんが、参考になればと思います。
今後も生成AI関連の情報を発信しますので、ぜひご覧ください。