ComfyUI をLocalTunnelを介してPaperspace Gradient 上で動かす方法

はじめに

Stable Diffusion をノードベースで操作できる強力な UI、ComfyUI
複雑な生成パイプラインを「ノードをつなぐ」感覚で組み上げられることから、研究者やクリエイターの間で急速に普及しています。

しかし、ComfyUI を動かすには 高性能 GPU と 大容量ストレージが必要。自宅PCでは厳しい場合も多いです。
そこで登場するのが Paperspace Gradient。クラウド上で GPU を使った Notebook が簡単に立ち上げられるうえ、Colab のようにクレジット制ではなく定額でGPUサーバーが利用できるため、クレジットの制限を意識せずに実験できます。

本記事では、ComfyUI を Gradient 上でセットアップして 外部ブラウザからアクセス可能にする方法を紹介します。さらに「なぜ LocalTunnel が必要なのか」まで掘り下げます。

実行環境

今回の記事で検証に使用した環境は以下の通りです。

  • ブラウザ: Microsoft Edge
  • クラウド環境: Paperspace Gradient Growth プラン
  • OS / 環境タイプ: GPU インスタンスはFree-A6000

この環境での再現を前提に説明を進めます。


使用する技術の背景解説

Paperspace Gradient

Paperspace Gradient は、クラウド上で Jupyter Notebook を動かせるサービスです。

ただし、GUI を直接操作できるわけではなく、基本は CUI(ターミナルやNotebookセル実行)環境です。

ComfyUI の仕組み

ComfyUI は Flask ベースの Web サーバーとして動作します。
つまり「ブラウザからアクセスできる UI」を提供するものの、Gradio のように public URL を自動生成する機能は持っていません

ローカル環境なら http://127.0.0.1:8188 のようにアクセスできますが、クラウド上の Gradient では外部ブラウザから直接つなぐことはできません。

LocalTunnel を使う理由

ここで必要になるのが LocalTunnel

  • Gradient のような CUI 環境では UI を直接開けない
  • ComfyUI 自体は public URL を発行しない(Flask サーバーだから)
  • そのため「クラウド上のポート(例:8195)」を「一時的な https://xxxx.loca.lt に紐付ける」トンネルが必要

LocalTunnel を使えば 認証不要・数行のコマンドで即公開 URL を得られるため、実験的に ComfyUI を動かすには最適です。


セットアップ手順

1. ComfyUI のインストール

課金対象のPermanent Volumeの容量を節約するためにtmpディレクトリで作業します。

# 1. リポジトリをクローン(Comfy 0.3.55での動作を確認)
%cd /tmp
!git clone https://github.com/comfyanonymous/ComfyUI.git
%cd /tmp/ComfyUI

# 2. Python 仮想環境を作成&有効化(任意)
!python3 -m venv venv
!source venv/bin/activate

# 3. 依存パッケージをインストール
!pip install --upgrade pip
!pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121
!pip install -r requirements.txt

# 2025/08/30:comfyUIがアップデートされたことが原因なのか,現在のpaperspaceのデフォルト環境に適合しなくなり,そもそもcomfyUIが実行できなくなっていた.⇒torch2.4.0を導入し,明示的にLD_LIBRARY_PATH を指定すれば、問題なかった。

2. モデルのダウンロード

画像や動画の生成に使用するモデルを予めダウンロードします。ComfyUIのテンプレートでモデルの場所は指定されているので,モデルの種類に応じて指定の場所に配置するようにします。

Stable Diffusion v1.5 の例:

# models/checkpointsに配置
!wget -O /tmp/ComfyUI/models/checkpoints/v1-5-pruned.safetensors \
  "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors"

Wan2.2 など他モデルも追加可能:

# models/diffusion_models/に配置
!wget -O /tmp/ComfyUI/models/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors"

# models/text_encoders/に配置
!wget -O /tmp/ComfyUI/models/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors"

# models/vae/に配置
!wget -O /tmp/ComfyUI/models/vae/wan2.2_vae.safetensors "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan2.2_vae.safetensors"

3. LocalTunnel の準備

npmでLocalTunnelをインストールしておきます.

!npm uninstall -g localtunnel lt #念のため古いものを削除
!npm install -g localtunnel@2

4. ComfyUI の起動

ノートブック内でComfyUIを起動した状態にしておきます。以下のセルをコピーして実行すれば、bashが実行され、ComfyUIが起動する。

%%bash

# LD_LIBRARY_PATH を “pip でtorch等を入れた場所” に固定
BASE=/usr/local/lib/python3.11/dist-packages
export LD_LIBRARY_PATH="$BASE/torch/lib:$BASE/nvidia/nvjitlink/lib:$BASE/nvidia/cusparse/lib"
export MKL_THREADING_LAYER=GNU
export OMP_NUM_THREADS=1

# comfy UIを起動. その後は起動したままにしておく
python /tmp/ComfyUI/main.py --listen 0.0.0.0 --port 8195 --enable-cors-header

ターミナルを開き LocalTunnel を開始します。

npx localtunnel@2 --port 8195

https://xxxx.loca.lt 形式の URL が表示され、それを開けばブラウザ上で ComfyUI が操作可能になります。URLはLocalTunnelを起動するごとにランダムで生成されます。

なおターミナルとは以下の図の機能で、「+」マークをクリックすると複数のターミナルを立ち上げることが可能です。

生成されたURLを踏むと、以下の画面が出ると思います。パスワードが必要になります。

このLocalTunnel が要求している「Tunnel Password」は、実際にはトンネルを張っているクライアント側(実行中のノートブック)のグローバル IP アドレスです。LocalTunnel はこの仕組みで「本当にオーナーがアクセスしているか」の検証を行っています。

なので、再び別のターミナルを開き、以下のコマンドでIPアドレスを取得し、表示されたアドレスをパスワードとして入力します。

curl https://ifconfig.me

パスワードを入力してしばらくすると以下のようにComfyUIが起動します。あとは一般的な使い方で動画や画像を生成できると思います。若干接続が不安定なのが気になりますが、使えはしました。

WAN2.2 5Bで生成してみた動画は以下です.WAN2.1との違いが良く分かりませんが、進化はしているのだと思います。


実践してみての所感

  • LocalTunnel が手軽
    ngrok や Cloudflare Tunnel に比べ、アカウント登録不要で即利用可能。
  • 制限もある
    LocalTunnel 経由だと速度が不安定な場合もあるため、商用や長期利用には専用トンネルの導入を検討すべき。

まとめ

  • ComfyUI は Flask ベースの Web サーバーであり、Gradio のように自動で public URL を発行しない
  • Gradient は CUI 環境なので直接 UI を表示できず、外部公開が必須
  • その橋渡し役として LocalTunnel が採用される

👉 これにより、ローカルに依存せずクラウド GPU 上で ComfyUI を使える環境が手軽に実現できます。

なお、この記事はソースコードを元にAIに文面を作成させ修正したものです。

コメント

タイトルとURLをコピーしました