Local AI · DGX Spark
AI 產圖工作台
打一句中文,換一張專業級的圖。
LLM 優化 prompt × ComfyUI 多模型,全程跑在自家 GPU 上。
實際介面・Playwright 實機截圖
為什麼要自己蓋一個
雲端產圖服務好用,但有三個問題:資料要出門、按張計費、模型不能自己挑。對企業內部使用來說,第一點就是死穴:簡報素材、產品示意圖裡常常帶著還沒公開的資訊。
家裡的 DGX Spark 有一顆閒著的 GPU。把 ComfyUI 架起來、接上大語言模型當翻譯官,就是一個不用錢、不出門、模型隨便換的產圖工作台。
難的是中間那層:同事不會寫英文 prompt,也要能出好圖。
原理:一張圖的旅程
從一句中文到一張 1536×1024 的成圖,中間發生五件事。
中文描述進站
使用者用最自然的中文描述想要的畫面。SD 系列模型看不懂中文,直接餵中文會生出亂碼假字和詭異人像,所以第一步是攔下來。
LLM 當翻譯官 + 提示詞工程師
本地 LLM gateway 上的語言模型把中文改寫成專業英文 prompt:補光影、構圖、鏡頭語言,並疊加使用者選的靈感標籤。這一步是「人人都能出好圖」的關鍵,優化一次約 6–8 秒。
ComfyUI workflow 組裝
FastAPI wrapper 依參數動態組出節點圖:載入選定的 checkpoint(Dreamshaper/Illustrious/RealVisXL/FLUX.1 schnell 四選一)、設定取樣器與步數(14/22/32 對應快速/標準/精緻)。seed 取自 prompt 的雜湊,同樣的描述永遠能重現同一張圖。
hires 二段式放大
SD1.5 直接生大圖會壞構圖(多頭、肢體重複)。解法是先在安全解析度成圖,再 LatentUpscaleBy 放大 1.5×/2×,用第二段低強度取樣(denoise 0.55)補回細節。2× 到 1536×1024 只要約 14 秒。
同源代理送回瀏覽器
成圖以 base64 經 Spring Boot 同源代理回傳,瀏覽器不需直連 GPU 主機(避開 mixed content),存取控制(白名單/Basic Auth)也在這層統一把關。圖生圖同一條路:參考圖在瀏覽器端先壓到 1280px 再上傳。
原理深掘:ComfyUI 節點圖
工具背後是兩條獨立的 AI 管線:語言模型負責把描述改寫成生圖模型看得懂的英文指令,ComfyUI 擴散節點圖把文字一步步變成畫面。以下是文生圖實際執行的節點流程(與工具內建原理頁同步)。
工具內建「運作原理」頁實際切版,呈現 ComfyUI 節點圖與即時模型狀態
img2img 變體
LoadImage → ImageScaleToTotalPixels(跟隨參考圖比例)→ VAEEncode → KSampler(denoise = 變化幅度滑桿 25–90%)→ VAEDecode → SaveImage
4
可切換模型(含 FLUX)
~14s
2× hires 至 1536×1024
12
一鍵風格標籤
0
資料離開內網的次數
關鍵設計決策
LLM 前置優化,而非教使用者寫 prompt
與其開課教全公司 prompt engineering,不如讓本地模型代勞。使用者輸入的門檻降到「會打中文」,品質下限卻大幅提升。
SD1.5 為預設,FLUX 為畫質選項
GPU 同時要跑 35B 對話模型,產圖模型必須共存不搶記憶體。輕量 SD1.5 當日常主力、FLUX schnell 留給高要求場景,是資源上的務實取捨。
seed = hash(prompt),可重現優先
同樣的描述永遠生同一張圖:迭代時只改描述、比較差異,不會被隨機性干擾。要變化就改字,把「亂數」變成「可控變因」。
工具內建「運作原理」頁
工具下方畫出真實的 ComfyUI 節點圖(節點連線由 JS 讀取 DOM 位置動態繪製貝茲曲線),並即時顯示線上模型狀態——工具本身就是一份活的架構文件。
技術架構
Frontend
單檔 HTML 三欄工作台
文生圖 / 圖生圖
denoise、尺寸、品質即調
Proxy
Spring Boot 同源代理
白名單 / Basic Auth
HTTP/1.1 強制降版
Inference
ComfyUI on DGX Spark
SD1.5 × 3 + FLUX.1 schnell
FastAPI workflow wrapper
LLM
LiteLLM gateway 本地模型
中文 → 專業英文 prompt
靈感標籤融合
線上工具已上鎖(Basic Auth)・本頁分享架構與設計