分享程式代碼相關筆記
目前文章總數:229 篇
最後更新:2026年 04月 25日
AI 圖像生成工具的 Python 依賴地獄是出了名的麻煩。
並且基於 Stable Diffusion 模型的 Web-UI 套件如 : ComfyUI、AUTOMATIC1111、InvokeAI 各自對 PyTorch、CUDA、xformers 的版本要求不同
直接裝在宿主機很容易互相踩壞。有了容器化可以達到以下優點:
| 1. 環境完全隔離: | 每個工具有自己的 CUDA/PyTorch 版本,互不干擾 |
| 2. 可重現性: | 換電腦或重裝系統只需重新 pull image,不用重走一遍安裝流程 |
| 3. 切換方便: | 想測試版本的 Web-UI 套件 (ComfyUI、AUTOMATIC1111、InvokeAI),不用因為 Python 依賴差異造成無法啟動,各自獨立 |
| 4. 避免污染系統 Python: | 不需要在 Windows 宿主機或 WSL 裡裝一堆套件 |
容器化實現了一台機器可以多種不同的 AI 應用程式同時使用,並且彼此間不會相互影響。
RTX 5070 屬於 NVIDIA Blackwell 架構(sm_100 / GB205),屬於較新的版本,相較前幾代有幾個坑:
嚴格來說 2025 年以前的文章大多偏向 CUDA 12.1 的 GPU 模型配置,本篇是針對支持 Blackwell 的顯示卡 (CUDA 12.8+),運行使用 ComfyUI
| 1. CUDA 版本門檻: | Blackwell 架構最低需要 CUDA 12.8+,市面上很多舊 image 使用 CUDA 12.1 甚至更舊,直接跑不起來 |
| 2. PyTorch 支援較新: | 需要 PyTorch 2.7+ 才有完整 Blackwell 支援,舊版會 fallback 到 CPU 或直接報錯 |
| 3. 驅動版本要求高: | Windows 驅動需要 572.xx 以上才能在 WSL2 內正常透傳 GPU |
| 4. 網路上的教學多半過時: | 大多數容器化教學是針對 Ampere(RTX 30xx)或 Ada(RTX 40xx)寫的,直接照做會踩坑 |
補充: CUDA 全名 Compute Unified Device Architecture(統一計算設備架構)
由 NVIDIA 開發的平行運算平台與程式設計模型,讓開發者能利用 NVIDIA GPU 進行通用運算
核心概念:節點式工作流 (EX: n8n 就是一種節點式工作流)
ComfyUI 是一個 Stable Diffusion 的操作介面,但它跟其他介面最大的不同在於——它把 AI 生圖的每一個步驟都拆成獨立的「節點(Node)」,
你用連線把這些節點串起來,形成一條視覺化的工作流(Workflow)。
[載入模型] → [輸入提示詞] → [設定取樣器] → [解碼圖像] → [輸出]
ComfyUI 有以下優勢特性:
| 1. 每步驟都獨立: | 隨時在任何中間步驟插入額外處理或者移除調適 |
| 2. 新技術支援快: | Flux、SD3… 等新架構出來,ComfyUI 幾乎都是第一個有可用 workflow 的介面,因為節點式工作流很容易接入新模型,不需要等介面開發者包裝成按鈕。 |
| 3. 工作流可以分享與重現: | 同 n8n 可以下載 Workflow 成 .json 檔案,然後提供他人匯入,並且有大量的 Template |
| 4. 效能依據於節點: | ComfyUI 只執行你工作流裡實際用到的節點,不會載入你沒用到的功能 |
| 5. 可以做批次自動化: | 節點設計天生適合做自動化,並且可以與 n8n 做自動化工作流 |
以下是適合用 ComfyUI 的情境,若有符合可以考慮使用:
| 1. 想跑最新模型(Flux、SD3…): | 不想等其他介面更新 |
| 2. 實現複雜工作流: | 例如先生圖、再 ControlNet 修正構圖、再放大、再臉部修復 |
| 3. 精確控制參數: | 例如分別對前景和背景用不同的 CFG scale |
| 4. 硬體資源有效使用: | 硬體資源有限,需要更精細地管理 VRAM 使用 |
| 5. 自動化 | 將工作流節點加入 Trigger 一環 |
| 6. 有成本的免費 | 有現成的 GPU 顯卡算力、硬體配備,想有效利用自己的電腦資源 |
不太適合 ComfyUI 的情境:
| 1. 剛入門 AI 或工作流設計: | 不熟悉 Stable Diffusion 基本概念(潛空間、取樣器、CFG 等),直接看節點會很茫然 |
| 2. 非長期使用: | ComfyUI 學習曲線較高,功能繁雜,若不想花太多時間成本投入,AUTOMATIC1111 是更好的選擇 |
總結使用情況:
ComfyUI 是給想搞清楚 AI 生圖底層在做什麼、或是需要打造精細自動化流程的人用的工具。
學習曲線較陡,但一旦上手,彈性和效能都是其他介面難以匹敵的。
補充資訊:
補充:對於 RTX 50XX 系列,有 Blackwell 架構的顯卡用戶,
還有一個實際的理由:新架構的 CUDA 支援和模型適配, **在 ComfyUI 社群裡幾乎是最快的**
完整操作安裝,在自己的電腦將會有以下結構, 目標 : 容器化安裝 ComfyUI(AI生圖片) + 容器可以使用電腦顯卡運算
Windows 10/11(你的主機)
└── WSL2(輕量級 Linux 虛擬機,由 Windows 管理)
└── Ubuntu(Linux 發行版,跑在 WSL2 裡)
└── Docker(跑在 Ubuntu 裡)
└── ComfyUI 容器(完全隔離 & 最終目標)
本篇能順利安裝並且執行 GPU 生成 AI圖片,使用以下硬體規格,提供參考:
| 項目 | 規格 |
|---|---|
| GPU | 名稱 NVIDIA GeForce RTX 5070 |
| CPU | Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz,3192 Mhz,6 個核心,12 個邏輯處理器 |
| RAM | 48 GB |
| OS | Microsoft Windows 10 專業版 |
補充: RTX 5070 的 12GB VRAM 在跑 SDXL 或 Flux 模型時算是剛好夠用,但執行如 ControlNet 組合時記憶體耗能較大,這時可以考慮開啟 tiled VAE 避免 Memory Crash
本篇能順利安裝並且執行 GPU 生成 AI圖片,使用到的軟體與對應版本,提供參考:
| 軟體 | 版本 |
|---|---|
| Windows 10 專業版 | 10.0.19045 |
| NVIDIA Driver | 5.95.97 ※2026年4月版本 |
| CUDA(WSL 透傳) | 12.8 |
| WSL2 版本 | 2.6.3.0 |
| WSL2 核心版本 | 6.6.87.2-1 |
| Docker Desktop 版本 | 4.30.0 (149282) |
| Docker 版本 | 26.1.1 |
| Ubuntu(WSL) | 22.04 |
| ComfyUI Image | mmartial/comfyui-nvidia-docker:ubuntu24_cuda12.8-latest |
補充資訊:
WSL2 裡面不需要另外安裝 CUDA Toolkit,NVIDIA 驅動會透過 /usr/lib/wsl/lib 自動透傳,裝了反而可能衝突。
開啟 CMD 或 Power Shell 輸入以下指令檢查是否有顯卡
nvida-smi
開啟 CMD 或 Power Shell 輸入以下指令檢查是否有安裝 Docker Desktop,目前已有安裝 docker,尚缺 WSL
wsl --list --v
若無安裝可參考此篇:0080. .NET Aspire 必備容器化環境:Windows 上的 OCI 搭建說明中的 Docker Desktop 安裝說明
若已安裝,可以先執行以下指令先更新 wsl
wsl --update
若無安裝 WSL 2,請輸入以下指令進行安裝:
wsl --install
wsl --install -d Ubuntu
首次安裝完成 WSL2 + Ubuntu 需要設定 Linux 的帳號密碼
開啟 Docker Desktop -> 進入右上角設定
左側的 Resources -> WSL integration
若無安裝 WSL2 ,這時會出現錯誤: You don’t have any WSL2 …
若正確安裝後,會有選項 Enable integration with additional distros:
這裡打勾,並且使用 Ubuntu
※常見漏掉的步驟:Ubuntu 需要手動勾選,否則在 Ubuntu 裡下 docker 指令會找不到。
工作列 -> WSL -> 開啟
通常容器是不能使用顯示卡 GPU,因此我們需要安裝 NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
回到 Docker Desktop 的設定 -> 選擇 Docker Engine
補上以下這段,然後 重啟 Docker Desktop
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
然後回到 WSL 指令列,運行 runtime 並且重啟 Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker # 若在 WSL 內直接跑 Docker daemon
繼續 WSL 指令列,輸入以下
docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu22.04 nvidia-smi
若成功可以看到 GPU 的資訊,表示容器可以正常存取顯示卡了
開啟 WSL 指令列,輸入以下:
目的是建立 comfyui 的目錄
mkdir -p ~/comfyui/{run, basedir}
cd ~/comfyui
Windows 的檔案總控輸入以下 :
\\wsl.localhost\Ubuntu\home\[您的帳號]\comfyui\basedir\models\
可以看到之後 ComfyUI 的存放目錄位置,便於後續 Stable Diffusion 模型存放位置
開啟 WSL 指令列,輸入以下:
目的是建立 comfyui 的目錄
回到 WSL ,繼續輸入以下指令,我們會建立支持 RTX 5070 顯示卡的 cuda 12.8 版本的 comfyUI 容器
並且容器使用的 Port 為 8188
# 安裝顯卡容器
cd ~/comfyui && docker run -it \
--runtime nvidia \
--gpus all \
-v "$(pwd)/run:/comfy/mnt" \
-v "$(pwd)/basedir:/basedir" \
-v /usr/lib/wsl:/usr/lib/wsl \
-e LD_LIBRARY_PATH=/usr/lib/wsl/lib \
-e WANTED_UID=$(id -u) \
-e WANTED_GID=$(id -g) \
-e BASE_DIRECTORY=/basedir \
-e SECURITY_LEVEL=normal \
-p 127.0.0.1:8188:8188 \
--name comfyui-nvidia \
mmartial/comfyui-nvidia-docker:ubuntu24_cuda12.8-latest
在瀏覽器輸入以下連結位置,可以訪問自己機器上的 ComfyUI 容器
http://127.0.0.1:8188
接著左側選擇模板 (Template)
可以透過輸入框選擇自己喜好的模型,這邊為了展示,選擇 動漫
接著選擇 運行 會出現缺少模型,這是正常的,因為模板出現的只是節點流式工作流
選擇 查看錯誤
這個 Template 需要 3 種模型,依序下載
下載完成後,模型要放到正確的 ComfyUI 容器掛載的位置
開啟 Windows 檔案總管,輸入以下
\\wsl.localhost\Ubuntu\home\cap8825\comfyui\basedir\models
然後跳轉到 ComfyUI 模型存放目錄位置,將這個 Template 下載的 3 個模型放入對應資料夾
模型的對應資訊要回到剛剛使用的 Template 的第 1 個節點流 (Markdown Note),拉到中間的地方會看到 Model Storage Location 資訊
📂 ComfyUI/
├── 📂 models/
│ ├── 📂 text_encoders/
│ │ └── qwen_3_06b_base.safetensors
│ ├── 📂 vae/
│ │ └── qwen_image_vae.safetensors
│ └── 📂 diffusion_models/
│ └── anima-preview2.safetensors
然後跳轉到 ComfyUI 模型存放目錄位置,將這個 Template 下載的 3 個模型放入對應資料夾
再次執行,會看到工作列出現使用模型的資訊
全部:67%
K採樣器:13%
點擊 *檢視
可以看到大圖,並且可以下載
要調整圖片,可以觀察到這個模板的 Step3 - Prompt ,有預設的提示詞
將提示詞改成自己想要的就可以生成,下面是舉利用: 森林系(療癒系)
masterpiece, best quality, score_7, safe, anime style, lush forest scenery, tall ancient trees with dense green foliage,
soft sunlight filtering through the leaves creating god rays,
moss-covered ground and rocks, small glowing particles floating in the air,
a gentle stream flowing through the forest, highly detailed textures,
soft lighting, calm and magical atmosphere, rich greens and natural tones
輸出結果如下,快速 ComfyUI 上手生成圖片 (這個模板是動漫風格的模型,因此會出現動漫風森林)