SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

自架 Stable Diffusion 需要多少硬體?實測規格

了解 CPU VPS 執行 SD 1.5 與 SDXL 的實際速度差異、6.94 GB 模型檔需求、ComfyUI 安裝指令,以及應預留多少磁碟空間。

自架 AI 影像生成器實際需要什麼

自架 AI 影像生成器由一個 Web 應用程式和一個模型檔案組成。應用程式是 ComfyUI,可在任何 Linux 主機上執行。硬體需求則取決於模型。SDXL 級 checkpoint 是單一 6.94 GB 檔案,並且需要放在 GPU 記憶體中。這項條件決定整體預算,因此租用任何資源前,請先閱讀下方的硬體級距。

簡單說明:僅使用 CPU 的 VPS 可以安裝並提供這套軟體,也能使用較舊的 Stable Diffusion 1.5 模型,以 512x512 解析度產生影像,每張約需 1 到 2 分鐘。同一台主機使用 SDXL 以 1024x1024 解析度產生影像,則每張需要 10 到 20 分鐘。這不是設定損壞,而是運算量造成的結果。本指南將說明原因。

模型大小決定所需的機器

影像生成會執行去噪迴圈。30 步的生成作業會讓去噪器,也就是 SDXL 的 UNet,對影像執行 30 次,而每次都會讀取 UNet 的所有權重。兩個文字編碼器會在迴圈前執行一次,VAE 則會在迴圈後解碼一次,因此不屬於每一步的成本。SDXL 的 UNet 使用半精度時,權重大小為 5.14 GB。依此簡化估算,執行 30 步的生成作業時,在看到影像前,記憶體大約需要傳輸 154 GB 的權重,此外還會產生更多中間張量。

配備 24 GB 顯示記憶體(VRAM,即焊接在圖形晶片旁的記憶體)的 GPU,每秒可讀取數百 GB 的資料,並能一次容納完整的 6.9 GB。CPU VPS 每秒從系統 RAM 讀取數十 GB 的資料,且沒有用於執行卷積的矩陣運算硬體,因此相同的迴圈會慢 1 到 2 個數量級。這與決定文字模型效能的記憶體頻寬因素相同,建議一併閱讀何時使用配備 GPU 的 VPS 才真正划算。

影像生成與文字生成有一項重要差異。聊天模型會串流輸出 token,因此即使機器速度較慢,仍會在閱讀時持續顯示文字,使用體驗尚可。影像必須等到最後一步完成後才會出現。速度慢,就只能盯著進度列等待。

硬體階梯:實際數據

以下區塊列出截至 July 2026,生成一張 1024x1024、30 steps、使用 Euler sampler 的 SDXL 圖片時,常見的數據。請將這些數值視為數量級估算。使用的 sampler、steps 數量與解析度都會影響結果。

圖表One SDXL image, 1024x1024, 30 steps (typical, July 2026)
此圖表背後的資料
[
  {
    "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 會共同管理 VRAM 與系統 RAM,並自動卸載模型權重。截至 October 2026,專案的 README 將最低需求列為 4 GB VRAM 加上 8 GB 系統 RAM,並使用非同步權重串流。卸載會在每個 step 增加耗時,因此 6 GB 顯示卡每張圖片的時間會接近 1 分鐘,而不是 30 秒。8 GB 時,基礎模型可以載入,生成過程也較順暢。12 GB 時,可以在不卸載的情況下,讓一或兩個 ControlNet 與 checkpoint 同時載入。24 GB 時,可以在同一個工作流程中執行 SDXL、refiner 與放大處理,也能保留充裕空間訓練 LoRA adapter。訓練所需的記憶體可以更少:kohya-ss sd-scripts trainer 的 SDXL training guide 表示,LoRA training 可使用 8 GB GPU memory 完成,建議使用 10 GB。為達成這項需求,該指南要求只訓練 U-Net、啟用 gradient checkpointing、快取 text encoder outputs 與 latents、使用 8-bit optimizer 或 Adafactor,並在 8 GB 顯示卡上將 LoRA dim 降至 4 到 8。包裝這些 scripts 的 kohya_ss GUI 之 LoRA guide 則較為保守,表示 LoRA training 應使用至少 12 GB memory 的 GPU。

CPU VPS 可以與不可以執行的工作

它能執行的工作比一般人預期更多,但少於行銷內容所暗示的範圍。請明確區分這條界線。

CPU VPS 可以安裝 ComfyUI、提供 Web 介面、存放模型庫、執行佇列,並且在完全沒有 GPU 的情況下產生影像。使用 Stable Diffusion 1.5、512x512、20 steps 時,配備 8 個新一代 vCPU 與 16 GB RAM,單張影像約需 60 到 150 秒。對於整晚執行的批次工作,或是放在佇列後方、流量較低的影像端點,這樣的效能確實足夠。

CPU VPS 無法提供互動式工作流程。提示詞反覆調整代表每小時產生 20 張影像;若每張需要 13 分鐘,一小時只能完成 4 張。它也無法用於訓練。LoRA 微調在 CPU 上通常以天計算,而不是以小時計算,因此應視為不可用。

僅使用 CPU 時,記憶體需求規則與 GPU 不同。模型權重會載入系統 RAM,因此需要模型大小加上工作空間:SDXL 約需 16 GB RAM,SD 1.5 約需 8 GB。4 GB 的主機可以啟動 ComfyUI,但在第一次產生影像期間,程序可能被 out-of-memory killer 終止;此時程序會消失,並在 dmesg 中顯示 Killed,且不會留下 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,可能會破壞其他環境。繼續之前,先確認 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 格式只包含 tensor,因此惡意檔案無法執行任何程式。

儲存空間是最容易被忽略的成本。單一 SDXL base checkpoint 就有 6.94 GB。Refiner 另需 6 GB。SDXL ControlNet 模型的大小從 320 MB 的小型 Canny 模型,到半精度下 2.5 GB 的完整模型不等。Upscaler 所需空間較少:標準 Real-ESRGAN x4plus 模型為 67 MB、anime 模型為 17.9 MB,anime video 模型為 2.5 MB。LoRA 的大小從數十 MB 到 ByteDance 的 Hyper-SDXL adapter 所需的 787 MB 不等。只要持續使用,通常一週內就會再下載第 2 個和第 3 個 base model。請為可正常運作的安裝預留 100 GB 磁碟空間,也要監控 outputs 目錄:1024x1024 的 PNG 檔案每個約為 1 到 2 MB,未受監控的批次工作可能會悄悄填滿小容量磁碟。請將 models/ 和 output/ 放在可擴充的 volume 上,並使用類似 對 object storage 進行加密增量備份 的方式備份 workflow JSON 檔案。模型權重可以重新下載,但調整完成的 workflow 無法重新取得。

執行服務並安全存取

cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188

ComfyUI 使用 8188 埠。在僅使用 CPU 的主機上,加入 --cpu,強制使用 CPU 路徑,避免因找不到 CUDA 裝置而失敗。

繫結至 127.0.0.1,不要繫結至 0.0.0.0。ComfyUI 現在確實提供帳戶功能,但這些帳戶都不會保護你的伺服器。Settings 的 User 區段中的登入功能,是登入 Comfy 帳戶;即使是本機安裝也能使用。Comfy 的文件列出以電子郵件、Google、GitHub 和 API key 登入的方式。文件說明該帳戶可用來存取合作夥伴節點和 Comfy Cloud 訂閱,但沒有任何內容表示它能用來以密碼保護你自己的伺服器。--multi-user 旗標只會啟用每位使用者各自的儲存空間:截至 October 2026,伺服器會從 comfy-user request header 取得使用者名稱,且不檢查密碼。任何能連到該埠的使用者,都可以排入工作、讀取你產生的所有圖片;如果你以 --enable-manager 啟動服務,還能安裝 custom nodes,這等同於在伺服器上執行任意程式碼。請改用 laptop 的 SSH tunnel 存取服務。

ssh -N -L 8188:127.0.0.1:8188 you@your-server

接著在本機開啟 http://127.0.0.1:8188。如果需要真正的多使用者存取,請在前方設定具備驗證功能的反向代理,並讓應用程式繫結至 localhost。相同原則也適用於任何未經驗證的自架服務,這是 VPS 上的 Docker Compose 部署 的標準模式。

在 systemd 下持續執行

SSH 工作階段關閉後就停止的算圖佇列不是服務。請讓它以沒有登入權限的 comfy 使用者執行,不要使用目前的帳號:自訂節點包含程式碼,不應讓這些程式碼存取你的家目錄。建立使用者,並將安裝內容移至其家目錄:

sudo useradd --system --create-home --home-dir /home/comfy --shell /usr/sbin/nologin comfy
sudo mv ~/ComfyUI /home/comfy/
sudo chown -R comfy:comfy /home/comfy/ComfyUI

移動後虛擬環境仍可正常運作,因為單元會直接呼叫其中的 python。接著建立 /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.target
sudo 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,使用 SD 1.5 以 512x512 生成,並接受每張影像需要 1 到 2 分鐘。這是務實的入門方式,成本只需任何配備 GPU 的方案的一小部分。你也可以先用這台主機存放模型庫與工作流程,之後再決定是否升級。

如果你每天都會反覆調整提示詞,請向 GPU cloud 按小時租用至少配備 12 GB VRAM 的 GPU,停止使用時關閉該執行個體。影像生成通常是突發性的工作;GPU 閒置卻按月計費,是最常見的超支原因。請將 checkpoints 存放在低成本的 block storage 上,並掛載使用。

如果你要為其他人提供服務,或經常訓練 LoRA adapters,請規劃 24 GB VRAM,以及一台長期保留的機器。sd-scripts 的 SDXL 指南指出,使用其節省記憶體設定時,LoRA 訓練可在 8 GB 上執行,建議使用 10 GB;kohya_ss GUI 的 LoRA 指南則要求至少 12 GB。sd-scripts 指南中的 24 GB 數值,是針對 batch size 1 的完整 SDXL 微調,因此 24 GB 顯示卡足以應付 LoRA 工作,也仍能進行微調。到了這個階段,同一台主機通常也能順便執行本機語言模型,相關設定請參閱 使用 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 可讓 SDXL 在 1024x1024 下穩定執行。低於此容量時,ComfyUI 會自動將模型權重卸載到系統 RAM,仍可正常運作。截至 October 2026,其 README 指出最低需求為 4 GB VRAM 加上 8 GB 系統 RAM,而每個卸載步驟都會增加耗時。12 GB 可在載入 checkpoint 的同時容納 ControlNet,24 GB 則可在同一個工作流程中容納 base、refiner 及 upscaling。kohya-ss sd-scripts 指南指出,使用其節省記憶體設定時,SDXL LoRA 訓練可使用 8 GB,建議使用 10 GB;kohya_ss GUI 的 LoRA 指南則要求至少 12 GB。完整的 SDXL 微調在 batch size 為 1 時需要 24 GB。

模型需要多少磁碟空間?

SDXL base checkpoint 本身為 6.94 GB,refiner 另需約 6 GB。SDXL ControlNet 模型在 half precision 下每個介於 320 MB 至 2.5 GB,LoRA adapter 介於數十 MB 至 787 MB,Real-ESRGAN upscaler 介於 2.5 MB 至 67 MB。可為可用的安裝預留 100 GB,容納幾個 base model;另外監控輸出目錄,因為 1024x1024 PNG 檔案每個約為 1 至 2 MB。

將 ComfyUI 暴露在公開網際網路上安全嗎?

不安全。ComfyUI 設定中的 Comfy 帳戶登入可從本機安裝使用,但它會讓你存取 Comfy 的 partner nodes 與雲端訂閱,而 Comfy 的文件沒有任何內容將其描述為保護伺服器的機制。--multi-user 旗標只能分隔每位使用者的儲存空間,不會檢查任何密碼。啟用 ComfyUI-Manager 後,介面會安裝 custom nodes;這些是會在伺服器上執行的 Python 程式碼,因此開放連接埠等同於提供遠端程式碼執行能力。將其繫結至 127.0.0.1,透過 SSH tunnel 搭配 ssh -N -L 8188:127.0.0.1:8188 you@your-server 存取;如果需要讓多位使用者存取,則在其前方放置具備驗證功能的反向代理。

為什麼我的算圖程序會在沒有錯誤訊息的情況下被終止?

如果程序在 dmesg 中顯示 Killed 後消失,且沒有 Python traceback,原因是 Linux 的 out-of-memory killer,而不是 ComfyUI 錯誤。在僅使用 CPU 的主機上,模型權重會放在系統 RAM 中,因此 SDXL 約需 16 GB,SD 1.5 約需 8 GB,此外還需要工作空間。增加 RAM、增加 swap,或改用較小的模型及較低的解析度。

這篇文章對您有幫助嗎?