Stable Diffusionに外出先からアクセスして画像生成

stable diffusion web uiはブラウザでアクセスできます。というわけで外出先から自宅のPCに起動しているStable Diffusionにアクセスできるようにします。WindowsやLinuxをリモートする方法もありますが、ブラウザだけを使用してアクセスします。まずは、LAN内にある別のPCやスマホから確認します。今回は、Stable DiffusionをWindowsで起動します。その時、コマンドプロンプトには以下のメッセージが表示されていると思います。WSL上やDockerを使用すると、この限りではありません。

http://127.0.0.1:7860

この状況では、起動しているパソコン以外からはアクセスできません。そこでバッチファイル(webui-user.bat)をメモ帳などで編集します。コマンドの意味は公式ページに記述してあります。

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings

下記は、どこからでもアクセスを許可し、ポート番号を初期値の7860から80に変更した例です。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers --listen --port 80

call webui.bat

上書き保存をして、Stable Diffusionを再起動します。コマンドプロンプトをみると、URLの内容が変わっていることがわかります。

この場合、Stable Diffusionが起動しているパソコンでは、URLは以下になります。

http://localhost

これで、LAN内の、ほかのパソコンやスマホからアクセスできます。Stable Diffusionが起動しているWindowsパソコンのIPアドレスを確認しておきます。ipconfigなどで確認できます。

Windows環境でローカルコンピューターのIPアドレスを確認する際にipconfigコマンドを使用するのは非常に一般的な方法です。ipconfigは、コマンドプロンプトやPowerShellから実行できるコマンドで、ネットワーク接続に関する詳細な情報を提供します。

このコマンドを使用すると、以下のような情報が表示されます:

  • IPアドレス: コンピューターがローカルネットワーク上で識別されるためのアドレス。
  • サブネットマスク: ネットワークのどの部分がローカルで、どの部分が外部であるかを識別するためのアドレス。
  • デフォルトゲートウェイ: 通常はローカルネットワークのルーターのIPアドレス。

ipconfigは、基本情報を簡単に確認するのに便利です。さらに詳細な情報や、特定のネットワークアダプタに関する情報が必要な場合は、ipconfig /allのような追加のオプションを使用することもできます。

さらに、Windowsのファイアウォールで、ほかのデバイスから受信できる設定を行います。セキュリティが強化されたwindows defender ファイアウォールの受信の規則に追加します。


Windows Defender ファイアウォールで他のPCからアクセスできるように規則を追加するのは、よくある使い方の一つです。このような設定は、特定のアプリケーションやサービスがネットワーク経由で他のコンピュータと通信する必要がある場合に行われます。例えば、ファイル共有、リモートデスクトップ接続、特定のゲームやアプリケーションのオンライン機能などがあります。

こうした規則を追加する際は、セキュリティを維持するために次のことに注意することが重要です。

  1. 必要最小限の設定:不必要に多くのポートやアプリケーションを許可しないようにします。必要なものだけに絞りましょう。
  2. 信頼できるアプリケーションのみ許可:信頼できないアプリケーションやサービスにアクセスを許可することは避けましょう。
  3. 定期的な確認と更新:設定した規則は定期的に見直し、不要になったものは削除することが重要です。

このように、セキュリティを維持しながら必要な通信を許可するために、ファイアウォールの規則を適切に設定することが一般的な使い方です。

規則の種類はポートです。特定のローカルポートには、先に変更した80を入力します。

LAN内(同じルーターのWIFIを使用したデバイス)のUbuntu Desktopとスマホからアクセスすることができました。画像も生成することができました。生成速度はStable Diffusionが起動しているパソコンに依存します。

生成した画像の出力先を、DropBoxのようなオンラインストレージにすることで、素早く画像を観ることができます。モデルの場所や、出力先を変更する方法は以下の記事を参考にしてください。

https://minokamo.tokyo/2023/11/03/6433/

最後に、外出先から接続できるように設定します。自宅のルーターでポート開放の記述を追加します。自宅のルーターではNAT転送の項目に、ポート転送というものがありましたので、ここに設定します。これで外出先から接続が可能になります。

ルーターのポート開放(ポートフォワーディング)は、インターネット上のデバイスがローカルネットワーク内の特定のコンピューターやサービスに直接アクセスできるようにするための重要な設定です。この設定は特定のアプリケーションやサービスが外部からの接続を必要とする場合に使用されます。主な意義としては以下の点が挙げられます:

  1. 外部からのアクセスの可能性: ルーターのポート開放により、インターネット上の他のデバイスがローカルネットワーク内の特定のマシンやサービスにアクセスできるようになります。例えば、リモートデスクトップ、オンラインゲーム、Webサーバー、FTPサーバーなどがこれに該当します。
  2. アプリケーションの機能向上: 一部のアプリケーションやサービスは、適切なポートが開放されていないと正常に機能しないか、性能が低下する可能性があります。例えば、オンラインゲームやP2Pアプリケーション(BitTorrentなど)は、適切なポート開放がないと性能が低下することがあります。
  3. 特定のサービスの提供: 自宅サーバーなどからWebページやファイル共有サービスを提供する場合、外部からのアクセスを許可するためにポートを開放する必要があります。
  4. NAT(ネットワークアドレス変換)の問題を解決: 多くのホームネットワークではNATが使用されており、これにより複数のデバイスが単一の公共IPアドレスを共有してインターネットにアクセスします。ポート開放は、このNAT環境下で特定のポートを通じて外部から特定のデバイスに直接アクセスするための手段を提供します。

ただし、ポートを開放する際にはセキュリティリスクも伴うため、必要なサービスやアプリケーションに対してのみ開放し、使用しなくなったポートは閉じることが重要です。また、ファイアウォールやセキュリティソフトウェアを適切に設定して、不正アクセスを防ぐ必要があります。

ケーブルテレビのインターネットサービスやマンションの共用インターネット接続でグローバルIPアドレスが複数のユーザーで共有されている場合、個人でサーバーを公開する際にはいくつかの課題があります。しかし、これらの課題を克服する方法もいくつか存在します:

  1. ポートフォワーディングの設定: まず、自分のルーターでポートフォワーディングを設定する必要があります。これにより、特定のポートでの外部からの通信をローカルネットワーク内の特定のデバイスに転送することができます。しかし、グローバルアドレスが共有されている場合、この方法だけでは十分ではない場合があります。
  2. 静的IPサービスの利用: インターネットサービスプロバイダー(ISP)に連絡して、静的IPアドレス(固定のグローバルIPアドレス)を割り当ててもらうことが一つの解決策です。これにより、外部から特定のIPアドレスを通じてサーバーにアクセスできるようになります。
  3. DDNS(Dynamic DNS)サービスの利用: DDNSサービスを利用すると、動的に変化するIPアドレスに対して一定のドメイン名を割り当てることができます。これにより、IPアドレスが変わっても、同じドメイン名を使用してサーバーにアクセスできるようになります。
  4. VPNサービスの利用: VPNサービスを利用して、外部のサーバーに固定のグローバルIPアドレスを設定し、そのサーバーを経由して自宅のサーバーにアクセスする方法もあります。この方法では、VPNサーバーが中継点となります。
  5. クラウドサービスの利用: サーバーを自宅で運用する代わりに、AWS、Azure、Google Cloud Platformなどのクラウドサービスを利用して、クラウド上にサーバーを構築することも一つの選択肢です。

教育

Posted by admin