はじめに
こんにちは、最近StableDiffusionでイラストを出すのにはまっているねぎまぐろです。
私はよくノートパソコンからGPUを積んでいるマシンにリモートアクセスして使うので、今回のWebUIもGPUマシンで起動しておいてノートパソコンから遊ぶつもりでした。が、同じローカルネットワーク内にも関わらず、表示されたポートにアクセスしても接続が許可されない旨のメッセージが表示されました。
どうやらlocalhost以外のアクセスが弾かれるようです。このあたりの根本的な解決策が分からなかったので、とりあえず応急処置的に対応してみました。
webui側で用意されている方法で妥当なものを教えていただいたので2番目に追記しました。
解決法1: --share
オプションを使う
これは簡単で、WebUIが標準で用意してくれている機能のようです。
$ ./webui.sh --share
これを使うと、インターネット経由でアクセス可能なリンクが発行されます。
欠点としては、ローカルにアクセスするのにインターネットを経由するので、画像の読み込みなどがやや遅くなります。
解決法: --listen --port <port>
オプションをつける
コメント欄で教えていただきましたが、起動オプションに--listen
をつけるとローカルネットワーク内からアクセス可能になるようです。同時に、--port <port>
をつけると特定のポートで待受されるようになります。
$ ./webui.sh --listen --port 5555
この方法であればインターネットを経由しないので画像の読み込みも高速に行われます
参考
- Command Line Arguments and Settings · AUTOMATIC1111/stable-diffusion-webui Wiki
- Stable Diffusion Web UI(AUTOMATIC1111版)を導入したのとWaifu DiffusionやTrinArtのモデルを使ってみたのと【AI画像生成】
解決法2: redirでポートフォワードする
localhostでしかアクセスできないポートの原理は分かりませんが、redirを使って7860を適当なポートにフォワードしてやるとアクセスできることが分かりました。
$ ./webui.sh & redir --cport=7860 --lport=5555
これならばインターネットを経由しないので画像の読み込みも高速に行われます。
おわりに
もし根本的な解決を知っている方がいらっしゃったら教えていただけると幸いです。
@ko3n さん教えていただいてありがとうございました!
みなさん良いAIお絵描きライフを!