Select Page

Nvidia DGX Spark 安裝 Holo-3.1

原本我在 Nvidia 都搭配 vLLM 啟動,這條路理論上可以發揮 NVFP4 權重的優勢,但在 DGX Spark 的 GB10 平台上,實際遇到 CUDA Kernel 與 Marlin repack 相容性問題。

最後我改採:

Hcompany/Holo-3.1-35B-A3B-GGUF

搭配 llama.cpp CUDA Build,成功啟動模型並提供 API 服務。

這篇文章記錄完整流程,也保留幾個重要的踩坑經驗。


環境

本次環境如下:

硬體:NVIDIA DGX SparkGPU:NVIDIA GB10系統:Ubuntu Linux模型儲存位置:/mnt/ai-models推論框架:llama.cpp模型格式:GGUF量化版本:Q4_K_M

DGX Spark 使用統一記憶體架構,因此 CPU、GPU 與系統服務會共用記憶體。這點對 vLLM 與 llama.cpp 都很重要。


為什麼放棄 NVFP4 + vLLM

一開始使用 vLLM 載入:

Hcompany/Holo-3.1-35B-A3B-NVFP4

後,權重其實已經完整載入:

Loading safetensors checkpoint shards: 100% Completed | 3/3Loading weights took 142.78 seconds

但載入完成後,仍然在 Marlin FP4 重新整理階段失敗:

NotImplementedError:Could not run '_C::gptq_marlin_repack'with arguments from the 'CUDA' backend

這代表模型檔案本身沒有問題,真正卡住的是 vLLM 的 CUDA Extension 在 DGX Spark GB10 上沒有完整提供所需的 Marlin CUDA Operator。

如果只是想先把 Holo 3.1 跑起來,不一定要繼續投入時間處理 NVFP4 相容性。改用 GGUF + llama.cpp 是更快、更穩定的選擇。


移除 NVFP4 模型快取

vLLM 下載的 Hugging Face 模型通常會放在:

/mnt/ai-models/huggingface/hub/

先確認路徑:

find /mnt/ai-models/huggingface \  -maxdepth 3 \  -type d \  -name 'models--Hcompany--Holo-3.1-35B-A3B-NVFP4' \  -print

確認容量:

du -sh \  /mnt/ai-models/huggingface/hub/models--Hcompany--Holo-3.1-35B-A3B-NVFP4

確認無誤後刪除:

rm -rf \  /mnt/ai-models/huggingface/hub/models--Hcompany--Holo-3.1-35B-A3B-NVFP4

安裝 llama.cpp

1. 安裝編譯工具

sudo apt update
sudo apt install -y \  git \  build-essential \  cmake \  ninja-build \  libcurl4-openssl-dev \  pkg-config

2. 確認 CUDA Toolkit

export CUDA_HOME=/usr/local/cudaexport PATH="${CUDA_HOME}/bin:${PATH}"
export LD_LIBRARY_PATH="${CUDA_HOME}/lib64:${LD_LIBRARY_PATH:-}"
nvcc --versionnvidia-smi

nvcc --version 必須能正常回傳 CUDA 版本。

3. Clone llama.cpp

mkdir -p /mnt/ai-models/srccd /mnt/ai-models/srcgit 
clone https://github.com/ggml-org/llama.cpp.gitcd 
llama.cpp

如果之前已經下載過:

cd /mnt/ai-models/src/llama.cpp
git fetch origingit switch master
git pull --ff-only origin master

4. 編譯 CUDA 版本

cd /mnt/ai-models/src/llama.cpp
rm -rf buildcmake -B build \  -DGGML_CUDA=ON \  -DCMAKE_BUILD_TYPE=Releasecmake --build build \  --config Release \  -j 4 \  --target llama-server llama-cli

確認:

./build/bin/llama-server --version
./build/bin/llama-cli --version

下載 Holo 3.1 GGUF 模型

建立模型目錄:

mkdir -p \  /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF

下載主模型、視覺投影模型與 Chat Template:

hf download \  Hcompany/Holo-3.1-35B-A3B-GGUF \  q4_k_m.gguf \  mmproj.f16.gguf \  chat_template.jinja \  --local-dir \  /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF

確認:

ls -lh \  /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF

應該看到:

q4_k_m.ggufmmproj.f16.ggufchat_template.jinja

單模型模式啟動

先用最簡單的單模型方式確認服務能運作:

cd /mnt/ai-models/src/llama.cpp
./build/bin/llama-server \  -m /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF/q4_k_m.gguf \  --mmproj /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF/mmproj.f16.gguf \  --jinja \  --host 0.0.0.0 \  --port 8080 \  -c 8192 \  -np 1 \  -ngl 999

參數說明:

--mmproj     指定視覺投影模型
--jinja      使用模型附帶的 Chat Template
-c 8192      Context Length
-np 1        同時處理 1 個請求
-ngl 999     儘可能將模型層放到 GPU

測試文字 API

curl -s http://192.168.0.240:8080/v1/chat/completions \  -H "Content-Type: application/json" \  -d '{    "model": "Holo-3.1-35B-A3B-GGUF",    "messages": [      {        "role": "user",        "content": "請使用繁體中文介紹你的 UI 畫面分析能力。"      }    ],    "max_tokens": 256,    "temperature": 0.2  }' | python3 -m json.tool

在這台 DGX Spark 上,實測文字生成速度約為:

82 tokens/s

測試圖片分析 API

curl -s http://127.0.0.1:8080/v1/chat/completions \  -H "Content-Type: application/json" \  -d '{    "model": "q4_k_m.gguf",    "messages": [      {        "role": "user",        "content": [          {            "type": "text",            "text": "Describe this image in one concise English sentence."          },          {            "type": "image_url",            "image_url": {              "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"            }          }        ]      }    ],    "thinking_budget_tokens": 64,    "max_tokens": 1024,    "temperature": 0.1  }' | python3 -m json.tool

已知問題:中文多模態輸出偶爾觸發解析錯誤

圖片推論本身可以成功,但在某些中文輸出中,llama-server 可能回傳:

Failed to parse input at pos ...

例如:

自由女神像、火炬、基座、城市天際線、高樓、水面、島嶼、樹木、旗�、船。

其中 是 UTF-8 無效字元替代符號。

實務上的處理方式:

1. 降低 temperature,例如 0.12. 限制輸出為簡短句子3. 提高 max_tokens,避免輸出被截斷4. Client 端遇到 500 時自動 Retry 一次5. 優先更新至最新版 llama.cpp

Router Mode:支援多模型切換

確認單模型模式正常後,可以啟用 Router Mode:

cd /mnt/ai-models/src/llama.cpp
./build/bin/llama-server \  --models-dir /mnt/ai-models/llama-models \  --models-max 1 \  --models-autoload \  --jinja \  --host 0.0.0.0 \  --port 8080 \  -c 8192 \  -np 1 \  -ngl 999

啟動後會看到:

Loaded 1 local model presets from /mnt/ai-models/llama-modelsAvailable models (1)    Holo-3.1-35B-A3B-GGUFstarting router server, no model will be loaded in this processrouter server is listening on http://0.0.0.0:8080

Router 會在 Client 第一次呼叫時才載入模型。

查看模型清單:

curl -s \  'http://127.0.0.1:8080/models?reload=1' | \  python3 -m json.tool

指定模型:

curl -s http://127.0.0.1:8080/v1/chat/completions \  -H "Content-Type: application/json" \  -d '{    "model": "Holo-3.1-35B-A3B-GGUF",    "messages": [      {        "role": "user",        "content": "請使用繁體中文簡短介紹你的功能。"      }    ],    "max_tokens": 512,    "temperature": 0.2  }' | python3 -m json.tool

Router Mode 的記憶體策略

我使用:

--models-max 1

意思是:

可以讓 Client 選擇多個模型但同一時間只保留一個模型在記憶體中

這很適合 DGX Spark。因為 Holo 35B、KV Cache、圖片 Token 與系統服務都會共用統一記憶體。

如果要同時提供 Holo 與另一個 Tool Calling 模型,建議:

Holo 35B:Context 8192 或 16384用途:UI 截圖與視覺分析較小的文字 Tool Calling 模型:Context 65536用途:Hermes Agent 預設模型

不同模型需要不同 Context Length 時,可使用 models.ini

version = 1

[*]
jinja = true
n-gpu-layers = 999
parallel = 1

[Holo-3.1-35B-A3B-GGUF]
model = /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF/q4_k_m.gguf
mmproj = /mnt/ai-models/llama-models/Holo-3.1-35B-A3B-GGUF/mmproj.f16.gguf
ctx-size = 8192

[qwen-coder]
model = /mnt/ai-models/llama-models/qwen-coder-14b-q4_k_m.gguf
ctx-size = 65536

啟動:

./build/bin/llama-server \  --models-preset /mnt/ai-models/llama-models/models.ini \  --models-max 1 \  --models-autoload \  --host 0.0.0.0 \  --port 8080

讓 llama.cpp 開機就執行

一、確認執行檔路徑

先執行:

ls -lh /mnt/ai-models/src/llama.cpp/build/bin/llama-server

再確認模型目錄:

ls -lah /mnt/ai-models/llama-models

測試版本:

/mnt/ai-models/src/llama.cpp/build/bin/llama-server --version

如果這三個指令正常,就可以建立服務。


二、建立 systemd 服務

建立服務檔:

sudo nano /etc/systemd/system/llama-router.service

貼上:

[Unit]
Description=llama.cpp Router Server
Documentation=https://github.com/ggml-org/llama.cpp
After=network-online.target local-fs.target
Wants=network-online.target
RequiresMountsFor=/mnt/ai-models

[Service]
Type=simple
User=gwoyju
Group=gwoyju
WorkingDirectory=/mnt/ai-models/src/llama.cpp

Environment="LD_LIBRARY_PATH=/usr/local/cuda/lib64"
Environment="CUDA_HOME=/usr/local/cuda"

ExecStartPre=/usr/bin/test -x /mnt/ai-models/src/llama.cpp/build/bin/llama-server
ExecStartPre=/usr/bin/test -d /mnt/ai-models/llama-models

ExecStart=/mnt/ai-models/src/llama.cpp/build/bin/llama-server \
  --models-dir /mnt/ai-models/llama-models \
  --models-max 1 \
  --models-autoload \
  --jinja \
  --host 0.0.0.0 \
  --port 8080 \
  -c 8192 \
  -np 1 \
  -ngl 999

Restart=on-failure
RestartSec=10
TimeoutStopSec=30
KillSignal=SIGTERM
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

儲存後離開:

Ctrl + O
Enter
Ctrl + X

WantedBy=multi-user.target 讓服務可以隨一般多使用者開機流程啟動;Restart=on-failure 會在程式異常退出時重新啟動服務。

為什麼需要 RequiresMountsFor

你的模型與程式都放在:

/mnt/ai-models

如果外接 SSD 尚未掛載完成,直接啟動 llama-server 會失敗。

這一行:

RequiresMountsFor=/mnt/ai-models

會要求 systemd 先準備好該掛載點,再啟動 Router。


三、啟用開機自動執行

重新讀取服務設定:

sudo systemctl daemon-reload

設定開機自動啟動,並立即啟動:

sudo systemctl enable --now llama-router

查看服務狀態:

systemctl status llama-router --no-pager

正常情況應該看到:

Active: active (running)

以及:

router server is listening on http://0.0.0.0:8080

四、查看即時日誌

查看最近 100 行日誌:

journalctl -u llama-router -n 100 --no-pager

持續追蹤日誌:

journalctl -u llama-router -f

離開即時日誌:

Ctrl + C

五、測試 Router API

確認 Router 已啟動:

curl -s http://127.0.0.1:8080/health

查看模型清單:

curl -s \  'http://127.0.0.1:8080/models?reload=1' | \  python3 -m json.tool

測試 Holo 3.1:

curl -s http://127.0.0.1:8080/v1/chat/completions \  -H "Content-Type: application/json" \  -d '{    "model": "Holo-3.1-35B-A3B-GGUF",    "messages": [      {        "role": "user",        "content": "請使用繁體中文簡短介紹你的功能。"      }    ],    "max_tokens": 256,    "temperature": 0.2  }' | python3 -m json.tool

第一次呼叫時會需要等待模型載入。後續請求會比較快。


六、常用管理指令

啟動服務

sudo systemctl start llama-router

停止服務

sudo systemctl stop llama-router

重新啟動

sudo systemctl restart llama-router

查看狀態

systemctl status llama-router --no-pager

取消開機自動啟動

sudo systemctl disable --now llama-router

七、確認開機後是否真的自動啟動

重新開機:

sudo reboot

重新 SSH 登入後執行:

systemctl status llama-router --no-pager

確認 Port:

ss -ltnp | grep :8080

測試模型清單:

curl -s http://127.0.0.1:8080/models | \  python3 -m json.tool

八、改用 models.ini

準備讓不同模型有不同 Context Length:

Holo 35B:8192Hermes 預設 Tool Calling 模型:65536

這種情況建議不要在服務中使用:

--models-dir-c 8192

而是改用:

--models-preset

假設設定檔位於:

/mnt/ai-models/llama-models/models.ini

服務中的 ExecStart 改成:

ExecStart=/mnt/ai-models/src/llama.cpp/build/bin/llama-server \
  --models-preset /mnt/ai-models/llama-models/models.ini \
  --models-max 1 \
  --models-autoload \
  --host 0.0.0.0 \
  --port 8080

改完後重新載入設定:

sudo systemctl daemon-reload
sudo systemctl restart llama-router

查看日誌:

journalctl -u llama-router -f

九、避免 Ollama 開機後搶占記憶體

你之前遇過記憶體不足。如果目前 DGX Spark 主要改用 llama.cpp,建議停用 Ollama 的開機自動啟動:

sudo systemctl disable --now ollama

確認:

systemctl status ollama --no-pager

未來需要恢復:

sudo systemctl enable --now ollama

十、限制只允許內網連線

目前使用:

--host 0.0.0.0

代表區域網路內其他裝置可以存取 API。Router Mode 目前仍屬於實驗性功能;llama.cpp 啟動日誌也提醒,不建議直接暴露在不受信任的網路環境。

假設區域網路是:

192.168.0.0/24

可以設定 UFW:

sudo ufw allow from 192.168.0.0/24 \  to any port 8080 proto tcp

查看規則:

sudo ufw status numbered

不要直接把 Port 8080 暴露到公網。


建議你現在直接執行的版本

建立 /etc/systemd/system/llama-router.service 後,執行:

sudo systemctl daemon-reload
sudo systemctl enable --now llama-router
systemctl status llama-router --no-pagerjournalctl -u llama-router -n 50 --no-pager

這樣 DGX Spark 每次重新開機後,llama.cpp Router Server 就會自動啟動,並等待 Hermes Agent 或其他 Client 指定要載入的模型。

參考資料

https://huggingface.co/collections/Hcompany/holo31

https://build.nvidia.com/spark/llama-cpp/instructions

OpenCode 如何使用本地端模型

打開 opencode 設定檔 :

  • macOS / Linux: ~/.config/opencode/opencode.json
  • Windows: %USERPROFILE%\.config\opencode\opencode.json

加入下面的設定(是標準的 json)

json{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen2.5-coder-16k": {
          "name": "Qwen Coder Local (16k)",
          "tools": true
        }
      }
    }
  }
}

Opencode config 說明

https://opencode.ai/docs/config

2026 AI 專案上線該選誰?Vercel、Cloudflare、RepackAI 與 Esbuild 深度分析

本文將分析目前相當熱門的四套工具與平台:

  • Vercel
  • Cloudflare
  • RepackAI
  • Esbuild

雖然這四者常被一起提及,但實際上定位完全不同。

有些是部署平台,有些是 AI 開發工具,有些則是前端打包工具。

了解它們之間的差異,才能打造更具競爭力的 AI 產品。


四大平台定位比較

平台類型主要用途
Vercel雲端部署平台Next.js、React 專案部署
Cloudflare全球邊緣運算平台CDN、Workers、AI Gateway
RepackAIAI 內容轉換平台AI 自動產生跨平台內容
EsbuildJavaScript 打包工具前端建置與編譯

因此這四套工具其實並非完全競爭關係,而是可互補搭配使用。


一、Vercel:AI 時代最熱門的前端部署平台

Vercel 官方網站

Vercel 是由 Next.js 團隊打造的雲端平台,主打:

  • Git 自動部署
  • Preview Environment
  • Serverless Functions
  • AI SDK
  • 全球 CDN
  • AI Cloud

目前許多 AI SaaS 產品都直接部署在 Vercel 上。Vercel 提供 Git Push 即部署能力,能自動建立測試環境與正式環境,大幅降低 DevOps 門檻。

Vercel 優點

開發速度快

連接 GitHub 後即可自動部署。

Next.js 最佳化

與 Next.js 深度整合。

AI 生態完整

提供:

  • AI SDK
  • AI Gateway
  • V0
  • AI Agent Framework

逐步朝 AI Cloud 發展。

缺點

  • 流量大時成本上升較快
  • Vendor Lock-in 較高
  • 後端功能不如 Cloudflare 彈性

二、Cloudflare:AI Agent 時代的新霸主?

Cloudflare 官方網站

Cloudflare 原本是 CDN 廠商,但近年快速轉型成:

  • Serverless Platform
  • Edge Computing Platform
  • AI Inference Platform

目前已提供:

  • Workers
  • Pages
  • Durable Objects
  • R2 Storage
  • Vectorize
  • AI Gateway
  • MCP 支援

Cloudflare 的最大優勢是將 AI、儲存、運算、安全性整合在同一平台。

Cloudflare 優點

全球邊緣節點

超過 300 個以上節點。

成本極低

許多開發者由 Vercel 轉向 Cloudflare 的原因之一就是成本。

AI Agent 友善

Cloudflare 正積極投入:

  • MCP
  • AI Gateway
  • Agent Hosting

未來 AI Agent 部署極具潛力。

缺點

  • 學習曲線較高
  • Next.js 支援仍不如 Vercel 完整
  • 除錯較複雜

三、RepackAI:AI 行銷內容生成神器

RepackAI 官方網站

RepackAI 並不是部署平台。

它的定位比較像:

AI 內容工廠

使用者只需提供:

  • 網址
  • YouTube 影片

即可快速產生:

  • Facebook 貼文
  • Instagram 貼文
  • X(Twitter)內容
  • LinkedIn 內容
  • 部落格文章
  • 圖片素材
  • 短影音素材

大幅降低內容行銷成本。

適合誰?

  • AI SaaS 團隊
  • 自媒體
  • 行銷公司
  • 電商團隊

最大價值

當你使用 Vercel 或 Cloudflare 建立 AI 產品後,

RepackAI 可以協助你:

  • 宣傳產品
  • 建立 SEO 文章
  • 經營社群媒體

形成完整的流量成長循環。


四、Esbuild:極速打包工具

Esbuild 官方網站

Esbuild 是目前最受歡迎的新世代 JavaScript Bundler 之一。

其核心特色:

非常快。

Esbuild 採用 Go 語言開發,因此在編譯速度上遠超:

  • Webpack
  • Babel
  • Rollup

官方甚至表示許多情境下能快上數十倍。

功能

  • TypeScript 編譯
  • Tree Shaking
  • Minify
  • Code Splitting
  • ESM 轉換
  • CommonJS 轉換

適合

  • React
  • Vue
  • Svelte
  • Next.js
  • Node.js

為什麼重要?

AI 專案通常依賴大量套件:

LangChainOpenAI SDKSupabaseShadcn/UIReact

若建置速度太慢,

開發效率會大幅下降。

Esbuild 正是解決此問題的重要工具。


四大平台比較總表

項目VercelCloudflareRepackAIEsbuild
類型部署平台邊緣運算平台AI內容平台打包工具
AI功能★★★★★★★★★★★★★★☆★☆☆☆☆
部署速度★★★★★★★★★☆不適用不適用
全球CDN★★★★★★★★★★
成本控制★★★☆☆★★★★★★★★★☆免費
學習曲線中高
適合新創★★★★★★★★★☆★★★★☆★★★★★
適合大型產品★★★★☆★★★★★★★★☆☆★★★★★

RepackAI 則負責自動產生 SEO 與社群內容,建立持續流量來源。


能行銷才是王者

2026 年的 AI 開發已經不只是模型競賽,而是整個開發與部署生態系的競爭。

  • Vercel 適合快速開發與 AI SaaS
  • Cloudflare 適合大型流量與 AI Agent
  • RepackAI 適合內容行銷自動化
  • Esbuild 適合提升前端建置效率

透過開發、部署、行銷三者整合,才能在 AI 時代建立可持續成長的產品與流量體系。

Nidia DGX Spark GB10 Ollama 最佳設定

話說最近把 GB10 中的 ollama 給多人使用後就常常掛點,先把我的解方記錄下來,最後還是得用 vllm + QUENE 才能達到產品級

GPU OOM
500 Error
timeout

編輯設定檔

sudo nano /etc/systemd/system/ollama.service

建議的設定檔

[Service]

Environment="OLLAMA_HOST=0.0.0.0:11434"

Environment="OLLAMA_GPU_LAYERS=999"

Environment="OLLAMA_MODELS=/mnt/ai-models/ollama/models"

Environment="OLLAMA_FLASH_ATTENTION=1"

Environment="OLLAMA_KV_CACHE_TYPE=q8_0"

Environment="OLLAMA_NUM_PARALLEL=1"

Environment="OLLAMA_MAX_LOADED_MODELS=1"

Environment="OLLAMA_MAX_QUEUE=256"

Environment="OLLAMA_KEEP_ALIVE=10m"

為什麼這樣設

OLLAMA_NUM_PARALLEL=1

很多教學會設:

OLLAMA_NUM_PARALLEL=4

但實際上:

Parallel 越大,

Context Cache 會倍數成長。

例如:

NUM_PARALLEL=1VRAM 使用 30GBNUM_PARALLEL=4VRAM 使用 50GB+

很容易直接炸掉。


OLLAMA_MAX_LOADED_MODELS=1

避免:多個模型同時留在 VRAM。

多人使用時最容易發生。


OLLAMA_KEEP_ALIVE=10m

目前很多人設:

-1

永久保留模型。

結果:

VRAM 永遠不釋放。

改:

10m

10分鐘沒人用就卸載。

Ideogram 4 實作教學:在 ComfyUI 本機部署最強開源 AI 繪圖模型

Ideogram 4 實作教學:在 ComfyUI 本機部署最強開源 AI 繪圖模型

2026 年最受矚目的 AI 繪圖模型之一,莫過於 Ideogram 團隊正式釋出的:

Ideogram 4

這是 Ideogram 首次公開模型權重(Open Weight),也是目前開源陣營中,在:

  • 文字生成(Text Rendering)
  • 海報設計
  • 品牌廣告
  • 排版控制
  • JSON 結構化提示詞

官方資料顯示,Ideogram 4 採用 9.3B 參數的單流 Diffusion Transformer(DiT)架構,並支援原生 2K 圖像生成。

本篇將帶你使用 ComfyUI,在本機部署 Ideogram 4。


系統需求

官方模型共有兩個版本:

版本量化
Ideogram 4 FP8品質最佳
Ideogram 4 NF4VRAM需求較低

目前 ComfyUI 官方整合版本主要使用:

  • FP8
  • NVFP4

其中 FP8 畫質最佳。


第一步:下載模型

ComfyUI 專用模型

官方:

Comfy-Org Ideogram-4

原始模型:

Ideogram 4 FP8 官方模型


第二步:放置模型檔案

依照官方說明建立目錄。

ComfyUI
│
├─ models
│  ├─ diffusion_models
│  │  ├─ ideogram4_fp8_scaled.safetensors
│  │  └─ ideogram4_unconditional_fp8_scaled.safetensors
│  │
│  ├─ text_encoders
│  │  └─ qwen3vl_8b_fp8_scaled.safetensors
│  │
│  └─ vae
│      └─ flux2-vae.safetensors

第三步:了解每個模型用途

ideogram4_fp8_scaled

主模型

負責:

  • 圖片生成
  • 構圖
  • 風格
  • 排版

ideogram4_unconditional_fp8_scaled

CFG 引導模型

負責:

  • 提升細節
  • 強化 Prompt Follow
  • 改善品質

官方建議兩個模型一起使用。若只載入主模型雖可運作,但畫質會下降。


qwen3vl_8b_fp8_scaled

文字編碼器

負責:

  • Prompt 理解
  • JSON 理解
  • 空間推理
  • 海報版面配置

flux2-vae

VAE 解碼器

負責將 Latent 轉換成圖片。


第四步:更新 ComfyUI

Ideogram 4 需要最新版本的 ComfyUI。

更新方式:

cd ComfyUI

git pull

或:

update_comfyui.bat

官方於 Day-0 即已原生支援 Ideogram 4。


第五步:載入官方 Workflow

ComfyUI 官方已提供範例工作流。

建議直接從:

Comfy Blog

下載 Workflow


基礎工作流架構

Prompt
    ↓

Qwen3-VL Encoder
    ↓

Ideogram 4
    ↓

Sampler
    ↓

Flux VAE Decode
    ↓

Save Image

第六步:第一張圖片

測試 Prompt:

A futuristic cyberpunk city at night,
neon signs in Chinese,
cinematic lighting,
ultra detailed,
high contrast,
8k photography

生成尺寸:

1024 x 1024

推理模式:

DEFAULT

第七步:體驗 JSON Prompt

Ideogram 4 最大特色就是:

Structured JSON Prompt

官方模型訓練時即使用 JSON Caption。


範例:海報設計

{
  "scene_summary": "Professional technology conference poster",

  "background": {
    "description": "Modern convention center stage with blue ambient lighting, large LED screen, clean professional environment"
  },

  "style": {
    "description": "Corporate marketing design, professional conference poster, clean typography, premium branding, modern layout"
  },

  "objects": [
    {
      "description": "Conference stage",
      "bbox": [100, 150, 900, 850],
      "colors": ["#0A2540", "#1E88E5", "#FFFFFF"]
    }
  ],

  "text_elements": [
    {
      "text": "AI SUMMIT 2026",
      "bbox": [150, 120, 850, 260],
      "style": "Large bold white sans-serif title"
    },
    {
      "text": "Future of Artificial Intelligence",
      "bbox": [180, 280, 820, 350],
      "style": "Medium white subtitle"
    },
    {
      "text": "Taipei International Conference Center",
      "bbox": [180, 1050, 820, 1120],
      "style": "Small white footer text"
    }
  ]
}

Bounding Box 控制

可直接指定位置。

{
  "text_elements":[
    {
      "text":"SALE 50%",
      "bbox":[100,100,500,300]
    }
  ]
}

座標範圍:

0 ~ 1000

原點:

左上角

這是目前 FLUX 與 Stable Diffusion 所不具備的能力。


色彩盤控制

品牌設計超級好用。

{
  "color_palette":[
    "#FF6600",
    "#FFFFFF",
    "#000000"
  ]
}

官方支援:

  • 最多16色
  • 單元素最多5色

與 FLUX 比較

FLUX 強項

  • 寫實攝影
  • 光影細節
  • 人像品質

Ideogram 4 強項

  • Logo
  • 海報
  • Banner
  • 電商素材
  • 排版設計
  • 中文文字生成

若你是:

  • 電商設計師
  • 行銷公司
  • 品牌設計
  • 廣告公司

Ideogram 4 很可能比 FLUX 更適合。


結論

Ideogram 4 不只是另一個 AI 繪圖模型。

它最大的創新在於:

把 Prompt 從自然語言升級為結構化設計規格。

透過:

  • Qwen3-VL
  • Diffusion Transformer
  • JSON Prompt
  • Bounding Box
  • Color Palette

使用者終於可以像操作 Figma 一樣控制 AI 生成內容。

對於需要:

  • 海報設計
  • 品牌素材
  • Banner 製作
  • AI Agent 自動產圖

的開發者來說,Ideogram 4 是目前最值得研究與部署的開源模型之一。