外出先でも画像生成したいと思って、Tailscaleを使ってスマホから自宅PCのStable Diffusion WebUIを操作できるようにしました。安全で、スマホのバッテリーも長持ちするので、わりと理想的な構成になりました。
同じことをやりたい人向けに、やり方をまとめておきます。
前提・環境
- 自宅PC:Windows、GeForce GPU
- スマホ:iOS / Android どちらでも可
- WebUI:Stable Diffusion WebUI(AUTOMATIC1111)または Stability Matrix 経由で起動しているもの
- 必要なもの:Tailscaleアカウント(無料)
仕組みの概要
Tailscaleは、インターネットを経由しながらも、外側からは見えない専用の通り道を2台のデバイス間に作るサービスです。自宅PCとスマホが、インターネットの雑踏を通らずに直接つながっているようなイメージです。外部の人間には入口すら見えないので、不正アクセスの心配がありません。
ポート開放やルーターの設定といった面倒な作業も一切不要で、アプリを入れてサインインするだけでつながります。「VPNって難しそう」と思っていた人でも、これは拍子抜けするくらい簡単です。
今回やることはシンプルで、
- PCとスマホをTailscaleでつなぐ
- WebUIを
--listen引数つきで起動して、同じTailscaleネットワーク内からアクセスできるようにする - スマホのブラウザから
http://[TailscaleのIPアドレス]:7860にアクセスする
これだけです。自宅PCのWebUIはインターネット上には公開されず、Tailscaleでつないだスマホだけに見えている状態になります。
手順
1. Tailscaleをセットアップする
まず tailscale.com でアカウントを作ります。Googleアカウント等でサインインできます。
次に、PCとスマホそれぞれにTailscaleをインストールします。
- PC(Windows):公式サイトからインストーラーをダウンロードして実行。インストール後、タスクトレイのアイコンからサインイン
- スマホ:App Store / Google Play で「Tailscale」を検索してインストール。同じアカウントでサインイン
両方でサインインすると、Tailscaleの管理画面(admin console)に2台のデバイスが表示されます。PCに割り振られたIPアドレス(100.x.x.x 形式)をメモしておいてください。これが後で使うアドレスです。
2. WebUIを --listen で起動する
通常の起動設定のままだと、WebUIは localhost(自分自身)にしかアクセスを受け付けません。スマホ(別デバイス)からアクセスするために、--listen 引数を追加します。
webui-user.bat を使っている場合、以下の行を探して --listen を追加します:
set COMMANDLINE_ARGS=--listen
すでに他の引数がある場合はスペースで区切って追加してください:
set COMMANDLINE_ARGS=--xformers --listen
Stability Matrix を使っている場合、歯車アイコン(設定)を開いて「Extra launch arguments」の欄に --listen を追記するだけです。
3. スマホからアクセスする
自宅PCでWebUIを起動した状態で、スマホのブラウザを開き、以下のURLにアクセスします:
http://[PCのTailscaleIP]:7860
IPアドレスはさっきメモした 100.x.x.x のやつです。WebUIの画面が表示されれば成功です。
メリット・デメリット
実際に使ってみた感想をまとめます。
- 通信のムダが少ない:リモートデスクトップはPC画面全体を常時ストリーミングするのに対し、このやり方は操作結果だけをやり取りするので、通信のムダが少ないです(生成画像のフォーマットや解像度によって変わるので一概には言えませんが)
- スマホのバッテリーが持つ:リモートデスクトップはスマホ側の処理負荷も高く、バッテリー消費が激しいです。WebUI方式はブラウザで画面を表示しているだけなので、消費が明らかに抑えられます
- 安全:ポートをインターネットに開けていないので、外部からの不正アクセスのリスクがありません。Tailscaleのネットワーク内だけでつながります
- 設定が楽:ルーターのポート開放やDDNSの設定が不要。Tailscaleを入れてサインインするだけです
一方で、わかりやすい弱点もあります。
- PC内の画像を直接参照できない:生成した画像はPC側に保存されますが、スマホから直接ファイルブラウズはできません。画像を確認するにはスマホのギャラリーにコピーしておくか、クラウドストレージ(Google DriveやiCloud等)で同期する必要があります
まとめ
- TailscaleでPCとスマホをつなぎ、WebUIを
--listenで起動すれば外出先から画像生成できる - ポート開放不要、設定は簡単、通信量も少なくて安全
- PC内の画像ファイルへのアクセスはできないので、クラウド同期等で補う必要がある
リモートデスクトップだと重くてストレスだったので、この構成はなかなか快適です。同じ悩みを持っている人の役に立てばうれしいです。

コメント