Stable Diffusionで画像生成をVPSで動かす【GPUなしの現実】

画像生成AIのStable Diffusionを自前のVPSで動かしたい、という相談をよく見かける。ローカルで動かせれば生成枚数は無制限だし、外部サービスの検閲や利用規約を気にしなくていいし、何より入力画像やプロンプトが外に出ない。魅力的な話だが、結論から言うとさくらのVPSのような一般的なGPUなしプランでは正直かなり厳しい。この記事では期待値調整も含めて、現実的な選択肢を整理する。

Stable Diffusionとは何か

Stable Diffusionはオープンソースの画像生成モデルで、テキストから画像を作る(text-to-image)のが基本用途。代表的な実行環境は3つある。

  • AUTOMATIC1111(通称webui) — ブラウザベースのUIで、拡張機能が豊富。個人利用で一番情報が多い
  • ComfyUI — ノードベースのUIで、生成パイプラインを自由に組める。玄人向け
  • Python の diffusers ライブラリ — コードから直接叩く。API化したい時はこれが素直

どれを選んでも、結局は裏でPyTorchが動いて画像を生成している。ここがボトルネックになる。

核心:画像生成はGPU(VRAM)がほぼ必須

LLMのテキスト生成はCPUでもそれなりに動く(遅いけど待てる)。しかし画像生成の拡散モデルは行列演算を何十ステップも繰り返すので、CPUだと現実的な時間で終わらない。目安として、GPUがあれば1枚数秒〜十数秒で生成できるところ、CPUのみだと1枚に数分〜十数分かかる。バッチで何十枚も回すような使い方は、CPU環境では実用に耐えないと思っておいた方がいい。

「遅くてもいいから動けばOK」という人もいるが、512x512程度の低解像度・少ないステップ数でもCPUだと待ち時間がストレスになる。試してみると分かるが、1枚出す間にコーヒーを淹れて戻ってきても終わっていない、というのが普通にある。

現実的な選択肢

GPUなしの一般VPSでどうしても、という前提なら選択肢は3つ。

  • (a) GPU付きVPSやクラウドGPU(さくらの高火力DOKや、他社のGPUインスタンス)を別途借りる。生成用途に限れば一番素直
  • (b) 生成そのものは手元のGPUマシン(ゲーミングPCなど)で行い、VPSは生成結果の配信やAPIのフロントだけを担う。VPS側はnginxとPHPだけで軽く済む
  • (c) どうしても同じサーバーでやりたいなら、CPUで小さいモデル・低解像度・少ないステップ数で我慢する。実験用途や動作確認程度なら現実的

個人的には(b)が一番現実的だと思っている。生成は重いワークロードなので、常時起動のVPSに載せるより、必要な時だけGPUを使う設計の方が費用対効果もいい。

GPUありDebian環境での導入(参考)

もしGPU付きの環境(Debian 12/13)を用意できた場合の大まかな流れは以下。NVIDIAドライバとCUDAのインストール、AUTOMATIC1111のクローンまで。

sudo apt update && sudo apt upgrade -y

# NVIDIAドライバ(該当GPUのドライバ名は環境による)
sudo apt install -y nvidia-driver firmware-misc-nonfree

# 再起動してドライバを反映
sudo reboot

# ドライバの確認
nvidia-smi

# 依存パッケージ
sudo apt install -y python3 python3-venv python3-pip git wget

# AUTOMATIC1111 本体
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

# 初回起動(依存ライブラリのセットアップも兼ねる、時間がかかる)
bash webui.sh --listen --port 7860

この手順はGPUドライバがきちんと入っていることが前提。ドライバのバージョンとCUDAの組み合わせでハマることが多いので、初回は時間に余裕を持ってやった方がいい。

VRAMの目安

モデルによって必要なVRAMはかなり違う。

  • SD1.5系のモデル — 4GB程度あれば動く。古めのGPUでも現実的
  • SDXL系のモデル — 8GB以上は欲しい。解像度を上げるとさらに必要になる

この数字はあくまで目安で、拡張機能(ControlNetなど)を併用すると必要量は増える。環境によって変わるので、実際に動かしてnvidia-smiで使用量を見ながら調整するのが確実。

まとめ

Stable DiffusionをVPSで動かす話は、結局「GPUがあるかないか」で答えがほぼ決まってしまう。テキスト生成のLLMはCPUでもそこそこ実用になるので同じ感覚で考えがちだが、画像生成はGPU前提の別世界だと割り切った方がいい。生成用途はGPU環境を別に用意し、VPSは配信やAPIの窓口に徹する、という役割分担が今のところ一番現実的だと思う。

読んで頂いて有り難うございます!