家用邊緣生圖實戰:Windows RTX 4050 搭配 Docker 部署 ComfyUI 與內網 API 調用指南
將搭載 RTX 4050 (6GB VRAM) 的家用主機改造成 ComfyUI 生圖微服務。詳細解析 Docker 容器化、GPU 直通、模型選型與 Raspberry Pi 5 內網 API 調用實踐。
在打造自動化簡報管線或讓個人 AI 助理(如 Hermes Agent)具備出圖能力時,商用雲端繪圖 API 的長期調用費用是一筆無法忽視的邊際成本。然而,許多人家中其實都有一台搭有中階獨立顯卡的筆電或桌機。以搭載 RTX 4050 行動版(6GB VRAM)的 Windows 主機為例,只要架構得當,它完全有能力承擔家庭私有雲的即時生圖微服務。
本文記錄如何透過 Docker 容器化技術部署 ComfyUI,搭配低顯存模型與內網 API 接口,實現 Raspberry Pi 5 等邊緣裝置遠端調用的完整工程實踐。
1. 硬體邊界與模型選型策略
在 6GB VRAM 的極限約束下,若直接載入未經優化的龐大 SDXL 檢查點模型,推論過程極易觸發 Out Of Memory (OOM)。因此,模型選型與顯存控制是整個系統能否穩定運作的前提。
核心選型:輕量化與蒸餾加速模型
- Segmind Vega / SDXL-Lightning:Vega 將 SDXL 參數量精簡至約 0.74B,而 SDXL-Lightning 則透過蒸餾技術將步數壓縮至 4 到 8 步。這讓顯存需求壓制在 5GB 以內,並維持優秀的幾何構圖。
- 動態顯存釋放 (cudaMallocAsync):啟動時啟用 PyTorch 與 CUDA 的異步顯存分配器,避免多輪推論後的顯存碎片累積。
- 精度控制:強制採用 fp16 載入與推論,直接將顯存需求砍半。
ComfyUI 的架構優勢
相比傳統 WebUI (Automatic1111),ComfyUI 採用有向無環圖 (DAG) 的節點架構,具備兩大優勢:
- 零多餘背景顯存常駐:僅在推論工作流真正觸發時載入對應模組,推論結束立即釋放中間緩存。
- 原生 Headless API 支持:工作流可一鍵導出為純 JSON,前端與後端完全解耦,天生適合作為後台微服務。
2. Docker 容器化環境配置
在 Windows / WSL2 環境下,建議將 ComfyUI 封裝進 Docker,隔離 Python 依賴衝突並維持開機自動重啟能力。
前置需求
- 安裝 Windows Docker Desktop 並開啟 WSL2 後端支援。
- 安裝最新版本 NVIDIA 驅動程式(支援 NVIDIA Container Toolkit 直通)。
Dockerfile 配置精要
建議基於 NVIDIA CUDA 官方映像檔構建,確保 PyTorch 與 TorchVision 與 GPU 架構完全吻合:
FROM pytorch/pytorch:2.4.0-cuda12.4-cudnn9-runtime
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y git wget libgl1-mesa-glx libglib2.0-0 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN git clone https://github.com/comfyanonymous/ComfyUI.git .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 8188
CMD ["python", "main.py", "--listen", "0.0.0.0", "--port", "8188", "--preview-method", "auto", "--cuda-malloc"]
Docker Compose 部署檔 (docker-compose.yml)
在 Windows 主機上建立專用工作目錄,並規劃資料磁碟持久化:
version: '3.8'
services:
comfyui:
build: .
container_name: comfyui_edge
restart: unless-stopped
ports:
- "8188:8188"
volumes:
- ./models:/app/models
- ./custom_nodes:/app/custom_nodes
- ./output:/app/output
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
- PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128
啟動命令:
docker compose up -d
3. 內網 API 接口串接:讓邊緣節點跨網調用

當 ComfyUI 在 Windows 主機上運作於 http://192.168.50.76:8188 後,我們需要讓內網的 Raspberry Pi 5 或手機端發出生圖請求。
導出 API 工作流 (Workflow API JSON)
- 在瀏覽器打開 ComfyUI 介面 (
http://localhost:8188)。 - 點擊右側選單的 Settings (齒輪),勾選 Enable Dev mode Options。
- 介面上會出現 Save (API Format) 按鈕,點擊即可導出不含前端 UI 排版的純淨
workflow_api.json。
邊緣客戶端調用流程 (Python 實現)
在 Raspberry Pi 5 或自動化腳本中,調用邏輯分為三個步驟:
- 健康探測:向
/system_stats發送 GET 請求,確認主機在線且 GPU 狀態正常。 - 提交任務:將動態替換後的 Prompt 與種子注入 JSON,向
/prompt發送 POST 請求,取得prompt_id。 - 輪詢與下載:輪詢
/history/{prompt_id}直到狀態完成,接著向/view?filename=...下載生成的圖片實體。
import requests
import json
import time
COMFY_HOST = "http://192.168.50.76:8188"
def generate_image(prompt_text, output_filename="result.png"):
# 讀取基礎 API 工作流
with open("workflow_api.json", "r") as f:
workflow = json.load(f)
# 動態注入 Prompt (節點編號依實際工作流配置)
workflow["6"]["inputs"]["text"] = prompt_text
# 提交生成隊列
res = requests.post(f"{COMFY_HOST}/prompt", json={"prompt": workflow})
prompt_id = res.json()["prompt_id"]
# 輪詢任務狀態
while True:
hist = requests.get(f"{COMFY_HOST}/history/{prompt_id}").json()
if prompt_id in hist:
output_info = hist[prompt_id]["outputs"]["9"]["images"][0]
img_name = output_info["filename"]
break
time.sleep(1)
# 下載產出實體
img_data = requests.get(f"{COMFY_HOST}/view?filename={img_name}").content
with open(output_filename, "wb") as f:
f.write(img_data)
print(f"圖片已成功保存至 {output_filename}")
4. 效能實測數據與架構折衷矩陣
在 RTX 4050 (6GB VRAM) 的實機運行環境中,使用 Segmind-Vega 模型進行實測:
| 產圖解析度 | 適用場景 | 採樣步數 (Steps) | 推論耗時 (Latency) | 顯存峰值 (VRAM) |
|---|---|---|---|---|
| 1024 x 576 | 16:9 簡報視覺插圖 | 20 步 | 約 5.2 秒 | 4.8 GB |
| 1200 x 630 | 部落格橫幅 / 社群分享 | 20 步 | 約 7.1 秒 | 5.3 GB |
| 1024 x 1024 | 正方形概念卡片 | 20 步 | 約 8.4 秒 | 5.6 GB |
架構折衷矩陣 (Architect's Trade-off Matrix)
- 核心目標 (Non-negotiable):完全掌控數據隱私,擺脫持續性 API 帳單,實現邊緣自動化即時配圖。
- 硬性約束 (Constraints):6GB VRAM 物理天花板,無法同時承載多工作緒高並發,且模型尺寸受限。
- 戰略性妥協 (Strategic Sacrifice):放棄雲端叢集每秒出圖的極致並發,接受單任務 5-8 秒的推論延遲。
結論
將家用既有硬體轉化為微服務節點,是構建自給自足個人 AI 基礎設施的重要一步。透過 Docker 封裝與標準 HTTP/HTTPS 協議串接,原本孤立在 Windows 筆電裡的 GPU 算力,成功轉化為整個家庭內網皆可調用的圖形推論中樞。