自架 Stable Diffusion 需要什麼硬體?實測規格
了解 CPU VPS 執行 SD 1.5 與 SDXL 的實際速度、SDXL 6.94 GB checkpoint 的 VRAM 需求、ComfyUI 安裝指令,以及應預留多少磁碟空間。
自架式 AI 影像產生器真正需要的條件
自架式 AI 影像產生器需要 1 個 Web 應用程式和 1 個模型檔案。應用程式是 ComfyUI,可在任何 Linux 主機上執行。硬體需求取決於模型。SDXL 類別的 checkpoint 是單一 6.94 GB 檔案,且需要放在 GPU 記憶體中。這項條件決定整體預算,因此請先閱讀下方的硬體分級,再租用任何主機。
簡單說明:僅使用 CPU 的 VPS 可以安裝並提供此軟體,也能使用較舊的 Stable Diffusion 1.5 模型,以 512x512 解析度產生影像,每張約需 1 至 2 分鐘。同一台主機使用 SDXL 以 1024x1024 解析度產生影像時,每張需要 10 至 20 分鐘。這不是設定錯誤,而是運算量造成的結果。本指南將說明原因。
為什麼模型大小決定機器規格
影像生成會執行去雜訊迴圈。30-step render 會將完整模型套用到影像上30次,而且每次都會讀取所有權重。半精度的 SDXL 約有6.9 GB權重,因此在影像顯示前,30-step render 約會在記憶體中傳輸200 GB資料。
具備24 GB視訊記憶體(VRAM,即焊接在圖形晶片旁的記憶體)的GPU,每秒可讀取數百GB資料,並能一次容納完整的6.9 GB模型。CPU VPS以每秒數十GB的速度讀取系統RAM,而且沒有用於執行卷積的矩陣硬體,因此相同的迴圈會慢上一到兩個數量級。這與決定文字模型效能的記憶體頻寬因素相同,建議一併閱讀VPS搭配GPU何時才真正值得。
影像生成與文字生成有一項重要差異。聊天模型會串流輸出tokens,因此即使機器速度較慢,仍可在閱讀文字時持續看到內容,使用感受尚可。影像只有在最後一步完成後才會顯示。速度慢就代表只能盯著進度列。
硬體級距與實際數據
以下區塊列出截至 2026 年 7 月,使用 1024x1024、30 steps、Euler sampler 產生單張 SDXL 圖片的典型數據。請將這些數據視為數量級估計。您使用的 sampler、steps 數量和解析度都會影響結果。
The data behind this chart
[
{
"label": "8 vCPU VPS, no GPU",
"seconds_per_image": 780
},
{
"label": "8GB VRAM GPU",
"seconds_per_image": 32
},
{
"label": "12GB VRAM GPU",
"seconds_per_image": 18
},
{
"label": "24GB VRAM GPU",
"seconds_per_image": 9
}
]CPU 每張圖片需要 780 秒,約 13 分鐘。24 GB 顯示卡需要 9 秒。這就是您需要付費縮短的差距。
請依照以下方式解讀硬體級距。VRAM 少於 8 GB 時,SDXL 仍可執行,因為 ComfyUI 會自動將 layers 卸載至系統 RAM,也能使用最低 1 GB 的顯示卡。卸載會在每個 step 增加耗時,因此 6 GB 顯示卡每張圖片的時間更接近 1 分鐘,而非 30 秒。8 GB 時,base model 可以載入,產生圖片的流程也較順暢。12 GB 時,您可以在不卸載的情況下,將 1 或 2 個 ControlNet 與 checkpoint 一起保留在記憶體中。24 GB 時,您可以在單一 workflow 中執行 SDXL、refiner 和 upscaling,也可以開始訓練 LoRA adapters;訓練所需的記憶體遠多於產生圖片。
CPU VPS 能做什麼,以及不能做什麼
它能做的事情比一般人預期的多,但比行銷宣稱的少。請明確了解其界線。
CPU VPS 完全不需要 GPU,也能安裝 ComfyUI、提供 Web 介面、保存模型庫、執行佇列,以及產生影像。使用 Stable Diffusion 1.5、512x512、20 steps,在配備 8 個新式 vCPU 和 16 GB RAM 的環境中,每張影像大約需要 60 到 150 秒。對於整夜執行的批次工作,或置於佇列後方的低流量影像端點,這樣的效能確實足夠。
CPU VPS 無法提供互動式工作流程。提示詞反覆調整代表每小時要產生 20 張影像,而每張需要 13 分鐘時,實際上只能得到 4 張。它也無法進行訓練。在 CPU 上進行 LoRA 微調通常以天計算,而不是以小時計算,因此應視為不可用。
僅使用 CPU 時,記憶體規則與 GPU 不同。權重會載入系統 RAM,因此需要模型大小加上工作空間:SDXL 約需 16 GB RAM,SD 1.5 約需 8 GB。配備 4 GB RAM 的主機可以啟動 ComfyUI,但接著會在第一張影像完成前被 out-of-memory killer 終止。此時程序會消失,Killed 會出現在 dmesg 中,且不會有 Python traceback。
在 GPU 機器上安裝 ComfyUI
以下是上游提供的指令。請從已安裝 NVIDIA 驅動程式的全新 Ubuntu 24.04 開始。先確認驅動程式,因為未執行這項檢查時,後續所有失敗看起來都一樣。
nvidia-smi此指令必須輸出包含顯示卡與 CUDA 版本的表格。command not found 或 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver 表示驅動程式遺失,或升級後核心模組未載入。請先修正此問題再繼續,否則 ComfyUI 會靜默改用 CPU,而你會誤以為是軟體造成問題。
sudo apt update
sudo apt install -y git python3-venv python3-pip wget
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt虛擬環境不是可有可無的建議。PyTorch 會拉取大量相依套件;若在還執行其他工作負載的主機上進行全域安裝,可能會破壞其他服務。繼續之前,請先確認 PyTorch 能偵測到顯示卡。
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"True 加上你的顯示卡名稱表示整個軟體堆疊正常運作。False 表示你安裝的 wheel 與驅動程式不相容,通常是因為先前已快取僅支援 CPU 的 torch wheel。請使用上方的 index URL 重新安裝。
取得模型,並規劃磁碟空間
ComfyUI 不附帶模型權重。Checkpoint 放在 models/checkpoints,VAE 檔案放在 models/vae,LoRA adapter 放在 models/loras。
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors請一律優先使用 .safetensors,不要使用 .ckpt。.ckpt 檔案是以 pickle 序列化的 Python 物件,載入時會執行建立該檔案者提供的程式碼。safetensors 格式只包含張量,因此惡意檔案無法執行程式碼。
儲存空間是經常被忽略的成本。一個 SDXL base checkpoint 需要 6.94 GB。refiner 另需 6 GB。單一 ControlNet model 需要 1.4 到 2.5 GB,upscaler 需要 60 到 350 MB,而 LoRA 需要 20 到 400 MB。使用者通常會在一週內再下載第 2 個和第 3 個 base model。請為可正常運作的安裝預留 100 GB 磁碟空間,也要監控 outputs 目錄:1024x1024 PNG 檔案每個約 1 到 2 MB,無人監控的批次作業會悄悄填滿小容量磁碟。請將 models/ 和 output/ 放在可擴充的磁碟區上,並使用類似 加密的物件儲存增量備份 的方式備份 workflow JSON 檔案。模型權重可以重新下載,但你調整過的 workflow 無法重新取得。
執行並安全存取
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188ComfyUI 會在連接埠 8188 上提供服務。僅使用 CPU 的主機必須加入 --cpu,讓程式強制使用 CPU 路徑,避免因找不到 CUDA 裝置而失敗。
請繫結至 127.0.0.1,不要繫結至 0.0.0.0。ComfyUI 沒有登入畫面,也沒有使用者帳戶。任何能連線至該連接埠的對象,都可以排入工作、讀取您產生的所有影像,以及安裝自訂節點,等同於在伺服器上執行任意程式碼。請改用筆記型電腦建立 SSH 通道來存取。
ssh -N -L 8188:127.0.0.1:8188 you@your-server接著在本機開啟 http://127.0.0.1:8188。如果需要真正的多使用者存取,請在前方部署具備驗證功能的反向代理,並讓應用程式持續繫結至 localhost。相同的原則也適用於任何未經驗證的自託管服務,這也是 VPS 上的 Docker Compose 部署 所採用的標準模式。
讓服務在 systemd 下持續執行
SSH 工作階段關閉時就停止的轉譯佇列,不算是服務。請寫入 /etc/systemd/system/comfyui.service。
[Unit]
Description=ComfyUI
After=network-online.target
[Service]
User=comfy
WorkingDirectory=/home/comfy/ComfyUI
ExecStart=/home/comfy/ComfyUI/venv/bin/python main.py --listen 127.0.0.1 --port 8188
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyui出現 active (running) 且記錄檔中有 To see the GUI go to: http://127.0.0.1:8188 這行,表示服務已啟動。請注意,ExecStart 會直接指定虛擬環境中的直譯器,因為 systemd 不會執行您的 shell 設定檔,因此不會發生 activate。
依預算提供務實建議
如果您想嘗試影像生成,且成本比速度重要,請選擇配備 16 GB RAM 的 CPU VPS,以 512x512 執行 SD 1.5,並接受每張影像需要 1 到 2 分鐘。這是實際可行的入門方式,成本僅為任何配備 GPU 的方案的一小部分。您也可以先在此主機上存放模型庫和工作流程,等確定需求後再做決定。
如果您每天反覆調整提示,請向 GPU cloud 按小時租用至少配備 12 GB VRAM 的 GPU,停止使用時立即關機。影像生成屬於突發性工作;閒置的 GPU 卻按月計費,是最常見的超支原因。請將 checkpoints 存放在低成本的 block storage 上,並掛載使用。
如果您要為其他人提供服務,或訓練 LoRA adapters,則需要 24 GB VRAM,以及一台持續運作的主機。此時,同一台主機通常也適合執行 local language model,以充分利用成本;相關設定請參閱 使用 Ollama 自行代管 LLM。
無論選擇哪個級距,在相信任何已發布的數據前,請先測量自己的主機。對相同提示排入佇列 5 次,並讀取 ComfyUI 在主控台輸出的每次迭代秒數。這個數字才是您實際所在的級距。
FAQ
沒有 GPU 可以執行 Stable Diffusion 嗎?
可以。ComfyUI 會使用 python main.py --cpu,即使沒有顯示卡也能產生實際影像。使用 8 個新式 vCPU 時,Stable Diffusion 1.5 以 512x512 產生每張影像約需 60 到 150 秒;SDXL 以 1024x1024 產生每張影像則需 10 到 20 分鐘。這適合夜間批次處理和低流量端點,但不適合反覆調整提示詞,完全無法用於訓練。
SDXL 需要多少 VRAM?
8 GB VRAM 可讓 SDXL 在 1024x1024 下穩定執行。低於此容量時,ComfyUI 會自動將層卸載到系統 RAM,最低約 1 GB VRAM 仍可運作,但每個卸載步驟都會增加處理時間。12 GB 可讓您在載入 checkpoint 的同時保留 ControlNet,24 GB 則可在單一工作流程中同時容納 base、refiner 和放大處理,也是訓練 LoRA adapter 的實用最低容量。
模型需要多少磁碟空間?
SDXL base checkpoint 單獨需要 6.94 GB,refiner 另外約需 6 GB。ControlNet 模型每個需要 1.4 到 2.5 GB,LoRA adapter 需要 20 到 400 MB,放大模型最多需要 350 MB。請為包含數個 base model 的可用安裝預留 100 GB,並另外監控輸出目錄,因為 1024x1024 的 PNG 檔案每個約為 1 到 2 MB。
將 ComfyUI 公開在公用網際網路上是否安全?
不安全。ComfyUI 完全沒有任何驗證機制,而且其 custom-node 系統會從介面安裝並執行 Python 程式碼,因此開放的連接埠等同於讓遠端在您的伺服器上執行程式碼。請將它繫結至 127.0.0.1,透過 SSH tunnel 搭配 ssh -N -L 8188:127.0.0.1:8188 you@your-server 存取;如果需要讓多個人員存取,請在前方設定具備驗證功能的 reverse proxy。
為什麼我的轉譯程序會在沒有錯誤訊息的情況下被終止?
如果程序在 dmesg 中顯示 Killed 後消失,且沒有 Python traceback,這是 Linux 的記憶體不足終止程序機制,不是 ComfyUI 錯誤。在僅使用 CPU 的伺服器上,權重會儲存在系統 RAM 中,因此 SDXL 約需 16 GB,SD 1.5 約需 8 GB,此外還需要工作空間。請增加 RAM、增加 swap,或改用較小的模型和較低的解析度。