目錄
ComfyUI 是一款基於Stable Diffusion 的可視化工作流工具,但運行時可能會消耗大量的VRAM(顯存)和RAM(系統內存)。如果你的設備顯存較低(如4GB-8GB 的GPU),或者運行時遇到OOM(Out of Memory)報錯,可以通過以下優化方法降低內存使用率。
在ComfyUI 中,影響內存佔用的主要因素包括:
模型本身的大小
圖像分辨率
採樣器和採樣步數
ControlNet、LoRA 等附加模型
ComfyUI 的運行模式
計算優化(如xFormers、Torch 2.0)
啟動ComfyUI 時,可以通過命令行參數啟用一些節省內存的模式:
python main.py --lowvram --xformers --enable-torch2
參數說明:
--lowvram
低顯存模式,適用於4GB 顯存的GPU,運行速度變慢但顯存佔用減少。
--medvram
中等顯存模式,適用於6GB-8GB 顯存的GPU,降低佔用但不影響太多性能。
--xformers
啟用xFormers 以優化Transformer 計算,提高顯存利用率。
--disable-metadata
關閉元數據存儲,減少RAM 佔用。
--enable-torch2
啟用Torch 2.0 計算優化,提高顯存管理效率。
不同的Stable Diffusion 模型大小不同,佔用的顯存也不同:
SD 1.5(fp16) → 約3GB VRAM
SDXL(fp16) → 約7GB VRAM
SDXL(fp32) → 約12GB VRAM
SDXL-Turbo → 更大顯存需求
4-bit 量化模型(GPTQ、bitsandbytes) → 可減少顯存佔用30%-50%
如果你的顯存不足,建議使用fp16 或4-bit 量化模型:
Stable Diffusion 1.5(fp16)
Stable Diffusion XL(fp16)
4-bit 量化SDXL(如GPTQ 量化)
生成高分辨率圖像時,顯存佔用會急劇上升。例如:
512x512 → SD 1.5 約2GB,SDXL 約4GB
768x768 → SD 1.5 約4GB,SDXL 約6GB
1024x1024 → SD 1.5 約6GB,SDXL 約10GB
優化建議:
生成小尺寸圖像( 512x512或768x768 ),再使用超分辨率( Upscaler )進行放大。
使用FreeU 技術(在Stable Diffusion 的KSampler(採樣器)或U-Net 結構中,可以通過調整FreeU 相關參數來增強圖像細節),在保持質量的同時減少計算需求。
採樣步數越多,顯存佔用越高,計算時間越長。
DPM++ SDE Karras → 高質量& 低顯存佔用(推薦)
Euler a → 速度快,適合低顯存設備
DDIM → 佔用較低,適合快速出圖
優化建議:
採樣步數設為20-30,避免50+ 的高步數。
使用高效採樣器,如DPM++ SDE Karras。
ControlNet 和LoRA 會大幅提高顯存需求。
ControlNet 額外佔用1GB-3GB
單個LoRA 額外佔用500MB-1GB
多個LoRA 可能超出顯存
優化方法:
避免同時加載多個ControlNet,建議1-2 個控制節點。
使用低顯存LoRA(如4-bit LoRA)。
動態加載LoRA,按需啟用和關閉。
部分計算可以交給CPU,以減少GPU 壓力:
VAE 解碼(VAEDecode)
CLIP 處理
前處理(如canny、depth)
在ComfyUI 裡可以手動設置某些任務跑在CPU 上,或者使用--cpu
啟動參數(但會變慢)。
如果你的顯存不足,Windows/Linux 可以啟用虛擬內存(Swap):
Windows 設置方法:
打開系統屬性→高級→性能→高級
在虛擬內存裡,手動設置16GB 以上
Linux 設置方法:
sudo fallocate -l 16G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
如果在ComfyUI 裡同時運行多個任務,會導致顯存爆滿。
建議:
避免一次性運行多個圖生圖
關閉不必要的節點
在任務管理器/系統監視器中清理佔用的進程
如果顯存不足(4GB-8GB),建議使用以下設置:
python main.py --lowvram --xformers --enable-torch2
同時:
使用fp16 或4-bit 量化模型
降低分辨率(推薦512x512 或768x768)
採樣步數設為20-30,使用DPM++ SDE Karras
關閉不必要的ControlNet/LoRA
讓CPU 處理部分任務(如VAE 解碼)
開啟swap 交換內存,防止溢出
這樣可以有效降低內存使用率,提升ComfyUI 在低顯存設備上的運行效率。