在 NVIDIA DGX Spark(GB10)上部署 Flux AI + ComfyUI 完整踩坑記錄

作者筆記: 本文記錄在 NVIDIA DGX Spark 上從零開始部署 Flux AI 圖像生成系統的完整過程,包含所有踩過的坑、錯誤訊息與解決方法。希望能幫助後來者少走彎路。


目錄

  1. 目錄
  2. 環境規格
  3. 安裝 pyenv
  4. 建立 Python 虛擬環境
  5. Clone ComfyUI(注意 Repo 已遷移)
  6. 安裝 PyTorch
  7. 下載 Flux 模型
  8. 啟動 ComfyUI
  9. 踩坑記錄總整理
  10. 最終最佳化設定
  11. 效能對比

環境規格

GPU:    NVIDIA GB10 (Grace Blackwell Superchip)
VRAM:   119.69 GB(統一記憶體,CPU+GPU 共享)
CUDA:   Driver 13.0
OS:     Ubuntu 24.04 (aarch64 / ARM64)
Python: 3.11.9
PyTorch: 2.12.0.dev20260224+cu128
ComfyUI: v0.14.1

⚠️ 重要提醒: DGX Spark 是 ARM64 架構,不是 x86!這會影響 PyTorch 版本選擇與部分套件安裝方式。

確認環境指令

# 確認 GPU
nvidia-smi

# 確認系統架構(應顯示 aarch64)
uname -m

# 確認 CUDA(剛安裝完可能尚未有 nvcc)
nvcc --version

安裝 pyenv

安裝系統依賴

sudo apt update && sudo apt install -y \
  build-essential libssl-dev zlib1g-dev \
  libbz2-dev libreadline-dev libsqlite3-dev \
  libncursesw5-dev xz-utils tk-dev \
  libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
  curl git

安裝 pyenv

curl https://pyenv.run | bash

加入環境變數

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

source ~/.bashrc

# 確認安裝
pyenv --version

建立 Python 虛擬環境

# 安裝 Python 3.11.9(ARM64 會自動編譯,需要幾分鐘)
pyenv install 3.11.9

# 建立虛擬環境
pyenv virtualenv 3.11.9 comfyui-flux

# 確認
pyenv virtualenvs

Clone ComfyUI

⚠️ 坑一:Repo 已遷移,舊網址已過時

# ❌ 舊的(已過時,勿使用)
git clone https://github.com/comfyanonymous/ComfyUI.git

# ✅ 正確的(2025年底已遷移至 Comfy-Org)
git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI

ComfyUI 已遷移至 Comfy-Org 組織,最新版本為 v0.8.0+。新版本對 CUDA 13.0 和 GB10 有原生支援。

綁定虛擬環境

cd ComfyUI

# 在此目錄自動啟用虛擬環境
pyenv local comfyui-flux

# 確認
python --version  # 應顯示 3.11.9

安裝 PyTorch

⚠️ 坑二:GB10 需要 PyTorch Nightly

GB10 搭載 CUDA 13.0,穩定版 PyTorch 尚未支援,必須使用 nightly 版本

pip install --upgrade pip

# GB10 + CUDA 12.8 nightly
pip install --pre torch torchvision torchaudio \
  --index-url https://download.pytorch.org/whl/nightly/cu128

# 驗證
python -c "
import torch
print('PyTorch:', torch.__version__)
print('CUDA available:', torch.cuda.is_available())
print('GPU:', torch.cuda.get_device_name(0))
print('Total Memory:', torch.cuda.get_device_properties(0).total_memory // 1024**3, 'GB')
"

安裝 ComfyUI 依賴

pip install -r requirements.txt

安裝 ComfyUI Manager

cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
pip install -r ComfyUI-Manager/requirements.txt
cd ..

下載 Flux 模型

⚠️ 坑三:huggingface-cli 指令名稱不同

安裝 huggingface_hub 後,指令不是 huggingface-cli,而是 hf

pip install huggingface_hub

# ❌ 這樣會報錯
huggingface-cli download ...

# ✅ 正確指令
hf download ...

# 查看所有子指令
hf --help

⚠️ 坑四:登入指令也不同

# ❌ 錯誤
hf login

# ✅ 正確
hf auth login

⚠️ 坑五:Fine-grained Token 無法存取 Gated Repo

使用 Fine-grained Token 會出現以下錯誤:

403 Forbidden: Please enable access to public gated repositories 
in your fine-grained token settings to view this repository.

解決方法: 去 https://huggingface.co/settings/tokens/new 建立 Read 類型的 Token(不要選 Fine-grained)。

⚠️ 坑六:必須先在網頁同意授權

即使 Token 正確,也需要先在網頁上接受授權條款:

  1. 登入 https://huggingface.co/black-forest-labs/FLUX.1-schnell
  2. 點擊 “Agree and access repository”

正確下載流程

cd ~/ComfyUI

# 建立目錄
mkdir -p models/unet models/vae models/clip

# 登入
hf auth login
# 輸入 hf_xxx token

# ① 主模型(23.8GB)
hf download black-forest-labs/FLUX.1-schnell \
  flux1-schnell.safetensors \
  --local-dir models/unet/

# ② VAE(335MB)
hf download black-forest-labs/FLUX.1-schnell \
  ae.safetensors \
  --local-dir models/vae/

# ③ CLIP-L(246MB)
hf download comfyanonymous/flux_text_encoders \
  clip_l.safetensors \
  --local-dir models/clip/

# ④ T5-XXL fp16(9.8GB)
hf download comfyanonymous/flux_text_encoders \
  t5xxl_fp16.safetensors \
  --local-dir models/clip/

啟動 ComfyUI

cd ~/ComfyUI

python main.py \
  --listen 0.0.0.0 \
  --port 8188 \
  --disable-cuda-malloc \
  --gpu-only

瀏覽器開啟:http://<IP>:8188


踩坑記錄總整理

坑七:Workflow 節點設定錯誤導致 KeyError t5xxl

錯誤訊息:

KeyError: 't5xxl'
File "nodes_flux.py", line 30, in execute
    tokens["t5xxl"] = clip.tokenize(t5xxl)["t5xxl"]

原因: DualCLIPLoader 節點的 type 設定成 sdxl 而非 flux,導致載入錯誤的 CLIP 模型。

解決方法:

在 ComfyUI 介面找到 DualCLIPLoader 節點:

type: sdxl  ← 改成 flux

坑八:VAELoader 選錯導致 TypeError

錯誤訊息:

TypeError: Cannot handle this data type: (1, 1, 16), |u1

原因: VAELoader 節點選了 pixel_space(預設值),但 Flux 需要的是下載的 ae.safetensors

解決方法:

在 ComfyUI 介面找到 VAELoader 節點:

vae_name: pixel_space  ← 改成 ae.safetensors

坑九:模型目錄名稱不符

官方 Workflow 預期的目錄結構是:

models/
├── diffusion_models/   ← Flux 主模型
├── text_encoders/      ← CLIP 模型
└── vae/                ← VAE

但我們下載時放到:

models/
├── unet/    ← flux1-schnell.safetensors
├── clip/    ← clip_l, t5xxl
└── vae/     ← ae.safetensors

好消息: ComfyUI 會同時掃描兩個路徑,unet/diffusion_models/ 都能被找到,不需要強制移動。介面的下拉選單都找得到模型即可。


坑十:ComfyUI-Manager 啟動時一直跑進度

FETCH ComfyRegistry Data: 5/127
FETCH ComfyRegistry Data: 10/127
...

這是正常現象,Manager 在背景更新套件資料庫,跑完會顯示:

[ComfyUI-Manager] All startup tasks have been completed.

如果不想每次都跑,去 Manager Settings 關閉 Auto check update。


坑十一:Torch VRAM Total 顯示 0 B

在系統資訊頁面看到:

Torch VRAM Total: 0 B
Torch VRAM Free: 0 B

這是 GB10 統一記憶體的特性,沒有獨立顯存,所以 Torch 顯示 0 是正常的。實際上 GPU 有 119GB 統一記憶體可用,生圖完全沒問題。


坑十二:警告訊息 cu130

WARNING: You need pytorch with cu130 or higher to use optimized CUDA operations.

不影響使用,只是 comfy_kitchen 的 CUDA 優化後端尚未支援 cu128,會 fallback 到 eager 模式。等 PyTorch 正式支援 cu130 後可再升級。


最終最佳化設定

啟動指令

cd ~/ComfyUI

python main.py \
  --listen 0.0.0.0 \
  --port 8188 \
  --disable-cuda-malloc \
  --gpu-only \
  --use-sage-attention \
  --preview-method latent2rgb \
  --fast

安裝 sage-attention

pip install sageattention

啟動時看到以下訊息代表生效:

Using sage attention

Workflow 節點最終設定

節點設定
UNETLoader – unet_nameflux1-schnell.safetensors
UNETLoader – weight_dtypefp8_e4m3fn ← 效能關鍵!
DualCLIPLoader – clip_name1clip_l.safetensors
DualCLIPLoader – clip_name2t5xxl_fp16.safetensors
DualCLIPLoader – typeflux ← 必須改!
VAELoaderae.safetensors ← 必須改!
KSampler – steps4
KSampler – cfg1
KSampler – schedulersimple
CLIPTextEncodeFlux – guidance3.5

效能對比

設定推理速度模型大小總執行時間
fp16(預設)6.8s/it22.6 GB~33 秒/張
fp8 + sage attention1.74s/it11.3 GB~10 秒/張

fp8 + sage attention 組合讓推理速度提升約 4 倍,模型大小砍半。


圖片輸出位置

生成的圖片存放在:

~/ComfyUI/output/

重啟 ComfyUI 後介面歷史會清空,但圖片檔案仍保留在硬碟。

# 查看所有生成的圖片
ls -lh ~/ComfyUI/output/

# 查看最新幾張
ls -lt ~/ComfyUI/output/ | head -10

CLIPTextEncodeFlux 兩個欄位說明

Flux 的文字編碼器分兩個欄位,用途完全不同:

欄位模型適合內容
clip_l(短框)CLIP-L關鍵字、風格標籤、簡短描述
t5xxl(長框)T5-XXL完整自然語句、複雜場景描述

實際使用方式:

短框放風格關鍵字:

educational illustration, animation, cartoon style, bright colors, no text

長框放完整句子(T5 能理解自然語言):

A girl is reading a book under a tree while her dog is sleeping beside her.

總結

GB10 Grace Blackwell 是非常特殊的硬體,統一記憶體架構讓它能輕鬆跑 120GB 以上的模型,未來潛力很大。目前最大的限制是 PyTorch 對 CUDA 13.0 的支援尚未完整(仍在 nightly 階段),等正式版釋出後速度應該還能再提升。

整個部署過程最容易踩坑的地方:

  1. ComfyUI Repo 已遷移,記得用 Comfy-Org/ComfyUI
  2. HF Token 要用 Read 類型,不要用 Fine-grained
  3. DualCLIPLoader type 必須設 flux,不是 sdxl
  4. VAELoader 必須選 ae.safetensors,不是 pixel_space
  5. fp8 是效能最大化的關鍵,從 default 改成 fp8_e4m3fn 速度提升 4 倍

部署日期:2026年2月
硬體:NVIDIA DGX Spark GB10
ComfyUI 版本:v0.14.1

404NOTE
404NOTE
文章: 49

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *