コスパ最強!月額2000円台のVPSでどこまで画像生成AIが動くのか限界検証
開いた瞬間に判断できるように、最初に全部書きます
「GPU VPSじゃないと画像生成AIは動かない」という記事、検索するとやたら出てきますよね。はっきり書いておきます。あれはだいたいアフィリエイト報酬が高いGPU VPSを売りたいだけです。GPU VPSは単価が高いから、紹介料も大きくなる。 読んでいてなんとなく「GPU推しだな」と感じた記事は、コスト面の話がほぼ出てこないので、そこで判断できます。
月額2,000〜3,000円台のCPU VPSでも、使い方を選べば画像生成AIは実用になります。 自分が実際に試した結果を元に書くので、「向いてない」と思ったときはちゃんとそう書きます。忖度なしで。
先に判断を並べます。
- 「生成してすぐ確認→修正」を繰り返したい人 → 正直に言うとCPU VPSは向いてない。GPUにしてください
- 「夜間に100枚バッチ処理して、朝に確認する」ワークフローの人 → CPU VPSで十分。これが一番コスパいい
- LLMを常駐させてプロンプト生成にも使いたい人 → CPU VPSが最もコスパいい。LLM+夜間バッチの組み合わせはかなり強い
- とにかく月のコストを抑えたい人 → まずCPU VPSで試してから判断してください。合わなければそこでGPUに移行すればいい
以下、実際に検証した結果と、自分なりの判断を書いていきます。
テスト環境
| 項目 | 設定値 |
|---|---|
| VPS | 4コア / 8GB RAM / SSD 100GB |
| OS | Ubuntu 22.04 LTS |
| GPU | なし(CPU推論のみ) |
| 参考月額 | 約2,500円 |
KAGOYA CLOUD VPSは4コア8GBプランが月2,200円台から使えます。1日あたり約73円。コーヒー1杯以下でサーバーが24時間動いているというのは、コスパの感覚をつかむのにわかりやすい比較だと思う。CPU推論を試すには十分なスペックです。
自分がKAGOYAを試す気になった理由を補足しておくと、 14日間の無料お試しがあるんですよね。14日というと短く聞こえるかもしれないけど、週末が2回入るんです。平日は仕事で触れなくても、2回の週末があれば「セットアップして動かしてみて、速度に納得できるか確認する」には十分です。週末1回目でセットアップ、週末2回目で本番に近い使い方を試せる。これは「あり」な無料期間だと思っています。「3日しかない」みたいな無料お試しとは全然違う。
実測:各ツールの動作結果
最初に検証したときは「やっぱり遅いな」と思いました。でも使い方を変えたら「これでいいじゃん」になった。その過程も含めて書いていきます。「CPU VPSで画像生成は無理」という結論を期待して読んでいる人には申し訳ないけど、そうじゃなかった。
Stable Diffusion WebUI(AUTOMATIC1111)
# CPU推論モードで起動
python launch.py --skip-torch-cuda-test --use-cpu all --precision full --no-half
# 512×512, 20steps の場合
# → 実測: 約12〜18分
# → 結論: 実用困難(趣味範囲なら許容できるかも)
| 解像度 | ステップ数 | 生成時間(CPU) | 生成時間(GPU参考) |
|---|---|---|---|
| 256×256 | 10 | 約3分 | 約5秒 |
| 512×512 | 20 | 約15分 | 約20秒 |
| 512×512 | 50 | 約35分 | 約50秒 |
| 768×768 | 20 | 約45分 | 約60秒 |
自分のコメント: 512×512を1枚生成するのに15分待つのは、試行錯誤には向かない。「プロンプト入れて→待って→ちょっと違う→直して→また待つ」を繰り返すのは精神的にきつい。ただし「仕込んだら寝る」スタイルなら全然ありです。使い方の問題で、CPU VPSそのものがダメなわけじゃない。そこをごっちゃにして「CPU VPSは画像生成に向かない」と結論づける記事は、GPU VPSを売りたいだけか、夜間バッチというワークフローを知らないかのどちらかです。
Fooocus(SDXL)
# CPU推論モードで起動
python launch.py --cpu
# → 実測: 512×512で約20〜30分
# → 結論: 一枚ずつ時間をかけて生成するなら可
自分のコメント: SDXLはモデルが重い分さらに遅い。Foocusはインターフェースが使いやすいのは確かだけど、CPU環境でSDXLを使うのはちょっと無理があると感じた。素直にSD 1.5に切り替えたほうが現実的です。「新しいモデルにこだわりたい」という気持ちはわかるけど、CPU環境でそれをやっても待ち時間がつらいだけ。「最新じゃないと嫌」は感情的にはわかるけど、バッチ処理の効率を考えたら割り切るべきポイントです。
Stable Diffusion 1.5(軽量モデル)
# SD 1.5は比較的軽い
python launch.py --use-cpu all --no-half --opt-sub-quad-attention
# → 実測: 512×512 / 20stepsで約8〜12分
# → 結論: 一晩バッチ処理なら十分実用
自分のコメント: SD 1.5に戻すだけで体感がかなり変わります。「最新じゃないといやだ」という縛りがなければ、CPU環境ではSD 1.5が現実的な選択肢。後述するLCMサンプラーと組み合わせるとさらに速くなります。CPU VPSで画像生成を試すなら、「まずSD 1.5で慣れる」を最初のステップにするのが自分のおすすめです。
CPU推論で実用になるもの・ならないもの
自分が使ってみて感じた「これはいける / これは無理」を正直に並べます。「向いてない用途」もちゃんと書くので、そこを読んでから判断してください。
実用できるもの
| ツール/用途 | 理由 |
|---|---|
| テキスト生成AI(LLM) | CPUでも十分高速 |
| 画像分類・タギング(CLIP等) | 軽量なため許容範囲 |
| 低解像度バッチ生成(夜間処理) | 時間さえかければOK |
| APIサーバーとしての待受 | 常駐費用が安い |
| LoRAマージ・モデル変換 | GPUなしでも可能 |
実用困難なもの
| ツール/用途 | 理由 |
|---|---|
| リアルタイム生成(即座に結果確認) | 15分待ちは現実的でない |
| 動画生成(AnimateDiff等) | フレーム数×生成時間で数時間 |
| ControlNetを使った精密制御 | 処理時間がさらに増加 |
| 高解像度(768px以上) | メモリ不足・時間が膨大 |
実体験から言うと、動画生成はやめといてください。 AnimateDiffを24フレーム生成しようとすると、CPU環境では数時間単位になります。これはもうVPSの問題じゃなくて、「CPU推論でやること自体が間違い」というレベルです。動画生成がやりたいならGPUにしてください。そこは妥協せずはっきり言っておきます。コスト節約にこだわって間違った用途に使い続けるのは、時間の無駄です。
CPU推論を高速化するコツ
ここは実際にやってみて効果があったものだけ書きます。「効果があった気がする」じゃなくて、体感で明確に変わったものに絞っています。ネットで拾える「高速化Tips」の中には、GPU向けの話がCPU向けとして混在していることがあるので、CPU推論に限定して書きます。
1. OpenVINOを使う(最大3〜5倍高速化)
# OpenVINO拡張をインストール
cd stable-diffusion-webui/extensions
git clone https://github.com/openvinotoolkit/stable-diffusion-webui-openvino
# OpenVINO有効化で起動
python launch.py --skip-torch-cuda-test
# WebUI上でSettings → OpenVINOを有効化
自分のコメント: これが一番効果ありました。体感で2〜3倍速くなる。CPU推論するなら最初にやっておいてください。他の高速化を試す前に、まずここから始めるのが正解です。「設定が難しそう」と思うかもしれないけど、拡張を入れてUIで有効化するだけなので、思ったよりハードルは低いです。
2. モデルをINT8量子化する
pip install optimum[openvino]
python3 << 'EOF'
from optimum.intel import OVStableDiffusionPipeline
# ONNXに変換して量子化
model_id = "runwayml/stable-diffusion-v1-5"
pipeline = OVStableDiffusionPipeline.from_pretrained(model_id, export=True)
pipeline.save_pretrained("./sd15_openvino")
EOF
自分のコメント: 量子化は少し手間がかかるけど、画質への影響は思ったより少ない。「量子化すると画質が落ちるんじゃ」と気にする人もいると思うけど、バッチ処理用途なら十分許容範囲です。OpenVINOと組み合わせると効果が大きい。「量子化 = 画質劣化」のイメージで避けている人は、一度試してから判断してほしいです。
3. ステップ数を減らしてLCMサンプラーを使う
# LCMサンプラーは4〜8ステップで生成可能
# → 通常20ステップ比で約4倍高速
# 使用方法: WebUI → Sampling method → LCM
# ステップ数: 4〜6に設定
自分のコメント: LCMサンプラーへの切り替えは効果が大きい。15分が4分前後になるので体感がかなり変わります。「ステップ少なくすると品質が下がる」と思い込んでいる人もいるけど、LCMはアルゴリズム自体が違うので少ないステップでも品質が出ます。これとOpenVINOの組み合わせが今のところ自分の中のベスト構成です。CPU推論で「思ったより遅い」と感じている人は、この2つを試す前に結論を出さないでほしい。
4. スワップ領域を増やしてメモリ不足を防ぐ
# 8GBスワップを追加
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 確認
free -h
自分のコメント: 大型モデルを使うとメモリが足りなくてクラッシュすることがある。スワップを先に設定しておくだけでかなり安定します。最初にやっておいてください。「なんかクラッシュするな」と思ったときに調べると行き着くのがここなので、最初からやっておいたほうが時間の節約になります。後から気づいて「最初からやっておけばよかった」となるタイプの設定です。
ここでXServerとKAGOYAの選び方についても書いておきます。 画像生成のバッチ処理を月にどれくらい回すかで変わります。
- XServerは月830円固定プランがあって、「毎月いくらか計算したくない」人には精神的にラクです。夜間バッチを毎日回すなら使用時間が長くなるので、固定料金のほうが安心感がある。「今月使いすぎたかな」と気にしなくていいのは地味にありがたい
- KAGOYAは時間課金なので、使った分だけ払う。「毎日は使わない」「週末だけ動かす」という人には割安
損益分岐点は月76時間(= 1日2時間32分)です。 毎日夜間バッチを2時間半以上回すならXServer、それ未満ならKAGOYAのほうが安くなる計算です。自分の使い方でざっくり計算してみてください。「なんとなくKAGOYAにしたけど実は毎日動かしてる」という人はXServerのほうが安くなっているかもしれないので確認してみてください。
現実的な使い方:夜間バッチ生成
CPU VPSの「正解の使い方」はここに尽きます。寝ている間に走らせて、朝に回収する。 これだけです。
1枚15分かかっても、100枚なら25時間。2日に分ければ余裕で処理できます。夜に仕込んで朝確認するサイクルが合う人には、月2,500円でこのワークフローが手に入るのはコスパがいい。
自分のPCを立ち上げっぱなしにしておく選択肢もあるにはあるけど、あれは精神的に気になる。「何かあったらリモートデスクトップで入らなきゃいけないから全然手放しにならない」というのが本音です。VPSに任せてしまうほうが気持ちがラクです。自分のPCは自分のPC、サーバーはサーバーで切り分けるほうが、心理的にも運用的にもすっきりします。
#!/usr/bin/env python3
# batch_generate.py - 夜間バッチ生成スクリプト
import requests
import time
import json
from datetime import datetime
BASE_URL = "http://localhost:7860"
prompts = [
"beautiful landscape, mountains, sunset, ultra detailed",
"portrait of a woman, soft lighting, film photography",
"futuristic city at night, neon reflections, rain",
# ... 100件のプロンプトをリストに
]
for i, prompt in enumerate(prompts):
print(f"[{datetime.now()}] 生成中 {i+1}/{len(prompts)}: {prompt[:40]}...")
response = requests.post(f"{BASE_URL}/sdapi/v1/txt2img", json={
"prompt": prompt,
"negative_prompt": "blurry, ugly, bad quality",
"steps": 12, # LCMサンプラーなら少なくてOK
"sampler_name": "LCM",
"width": 512,
"height": 512,
})
with open(f"output_{i:04d}.png", "wb") as f:
import base64
f.write(base64.b64decode(response.json()["images"][0]))
print(f" → 完了 ({response.elapsed.total_seconds():.1f}秒)")
print("全件完了!")
# nohupで夜間実行(SSHを切っても動く)
nohup python3 batch_generate.py > batch_log.txt 2>&1 &
echo "PID: $!"
自分のコメント: nohupを使うのがポイントです。SSH接続を切っても処理が続きます。「VPSに任せて自分は寝る」が実現するのがここです。自分のPCを立ち上げっぱなしにする必要もなくて、完全に手放しにできるのが気持ちいい。朝起きてログを確認する時間が地味に楽しいです。「処理が終わってる」という朝の確認は、思ったより気持ちいいですよ。
よくある質問
まとめ:あなたの使い方で選ぶ
| あなたの使い方 | おすすめ | 月額目安 | 一言 |
|---|---|---|---|
| 生成→確認→修正を繰り返したい | GPU VPS | 月5,000円〜 | CPU VPSはやめとけ |
| 夜間バッチ処理で朝に回収したい | CPU VPS(KAGOYA) | 月2,200円〜 | これが一番コスパいい |
| LLMも一緒に常駐させたい | CPU VPS(KAGOYA) | 月2,200円〜 | LLM+夜間バッチで最強ワークフロー |
| 動画生成(AnimateDiff等)がやりたい | GPU VPS | 月5,000円〜 | CPUは現実的でない |
| 月の料金を固定にしたい | XServer VPS | 月830円〜固定 | 毎月の計算が面倒な人向け |
| 月76時間未満しか使わない | KAGOYA(時間課金) | 使った分だけ | 損益分岐点はここ |
| 月76時間以上ガッツリ使う | XServer(固定) | 月830円〜 | 固定のほうが安くなる |
補足: 月76時間というのは「1日2時間32分」の計算です。夜間バッチを毎日数時間回すなら超える可能性がある。自分の使い方でざっくり計算してみてください。「なんとなくKAGOYAにしたけど実は毎日動かしてる」という人はXServerのほうが安くなっているかもしれないので確認してみてください。どちらが正解かは用途次第で、「どちらかが絶対お得」という話じゃない。
CPU VPSで画像生成を試すのは「まず安く始めてみる」という意味で正解だと思っています。速度が気になったらそこでGPUに移行すればいいだけで、最初からGPUに課金する必要はない。最初からGPUを勧めてくる記事は、コストの話を先送りにしているか、アフィリエイト報酬の都合があるか、どちらかだと思っています。
迷っている時間がもったいない。動いてから考えよう。 合わなければ乗り換えればいいだけです。KAGOYAなら14日間無料で試せるので、週末2回使ってから判断すれば十分です。