Section: Core Features · URL: https://hermesbible.com/docs/user-guide/features/image-generation
圖像生成
Hermes Agent 透過 FAL.ai 從文字提示生成圖像。開箱即支援十一款模型,各自在速度、品質和成本之間有不同的取捨。使用者可透過 hermes tools 設定目前使用的模型,設定會儲存在 config.yaml 中。
支援的模型
| 模型 | 速度 | 特色 | 價格 |
|---|---|---|---|
fal-ai/flux-2/klein/9b (預設) | <1s | 快速、文字清晰 | $0.006/MP |
fal-ai/flux-2-pro | ~6s | 影棚級照片寫實 | $0.03/MP |
fal-ai/z-image/turbo | ~2s | 雙語 EN/CN、6B 參數 | $0.005/MP |
fal-ai/nano-banana-pro | ~8s | Gemini 3 Pro、推理深度、文字渲染 | $0.15/image (1K) |
fal-ai/gpt-image-1.5 | ~15s | 提示詞遵從性 | $0.034/image |
fal-ai/gpt-image-2 | ~20s | 頂級文字渲染 + CJK、具備世界知識的照片寫實 | $0.04–0.06/image |
fal-ai/ideogram/v3 | ~5s | 最佳排版效果 | $0.03–0.09/image |
fal-ai/recraft/v4/pro/text-to-image | ~8s | 設計、品牌系統、可直接用於生產環境 | $0.25/image |
fal-ai/qwen-image | ~12s | 基於 LLM、複雜文字 | $0.02/MP |
fal-ai/krea/v2/medium/text-to-image | ~15-25s | 插畫、動漫、油畫、表現性/藝術風格 | $0.030–0.035/image |
fal-ai/krea/v2/large/text-to-image | ~25-60s | 照片寫實、原始質感(動態模糊、顆粒感、膠片風格) | $0.060–0.065/image |
價格為撰寫時 FAL 的定價;請查閱 fal.ai 以取得最新資訊。
設定
提示 — Nous 訂閱者
如果你有付費的 Nous Portal 訂閱,可以透過 Tool Gateway 使用圖像生成功能,無需 FAL API 金鑰。你的模型選擇會在兩種途徑之間共用。新安裝可以執行
hermes setup --portal登入並一次啟用所有閘道工具;既有安裝可以透過hermes tools選擇 Nous Subscription 作為圖像生成的後端。如果託管閘道對特定模型回傳
HTTP 4xx,表示該模型尚未在 Portal 端提供代理——Agent 會告知你,並提供補救步驟(設定FAL_KEY以直接存取,或選擇其他模型)。
取得 FAL API 金鑰
- 在 fal.ai 註冊帳號
- 從控制台產生 API 金鑰
設定與選擇模型
執行 tools 指令:
hermes tools
導覽至 🎨 Image Generation,選擇你的後端(Nous Subscription 或 FAL.ai),接著選擇器會以欄位對齊的表格顯示所有支援的模型——使用方向鍵導覽,按 Enter 選擇:
Model Speed Strengths Price
fal-ai/flux-2/klein/9b <1s Fast, crisp text $0.006/MP ← currently in use
fal-ai/flux-2-pro ~6s Studio photorealism $0.03/MP
fal-ai/z-image/turbo ~2s Bilingual EN/CN, 6B $0.005/MP
...
你的選擇會儲存至 config.yaml:
image_gen:
model: fal-ai/flux-2/klein/9b
use_gateway: false # true if using Nous Subscription
GPT-Image 品質
fal-ai/gpt-image-1.5 和 fal-ai/gpt-image-2 的品質固定為 medium(在 1024×1024 解析度下約 $0.034–$0.06/張)。我們不將 low / high 級別作為使用者選項開放,以確保所有使用者在 Portal 計費上保持可預測——各級別之間的成本差距為 3–22 倍。如果需要更便宜的選項,請選擇 Klein 9B 或 Z-Image Turbo;如果需要更高品質,請使用 Nano Banana Pro 或 Recraft V4 Pro。
使用方式
Agent 端的介面刻意保持精簡——模型會採用你已設定的參數:
Generate an image of a serene mountain landscape with cherry blossoms
Create a square portrait of a wise old owl — use the typography model
Make me a futuristic cityscape, landscape orientation
縱橫比
從 Agent 的角度來看,所有模型都接受相同的三種縱橫比。在內部,各模型的原生尺寸規格會自動填入:
| Agent 輸入 | image_size (flux/z-image/qwen/recraft/ideogram) | aspect_ratio (nano-banana-pro) | image_size (gpt-image-1.5) | image_size (gpt-image-2) |
|---|---|---|---|---|
landscape | landscape_16_9 | 16:9 | 1536x1024 | landscape_4_3 (1024×768) |
square | square_hd | 1:1 | 1024x1024 | square_hd (1024×1024) |
portrait | portrait_16_9 | 9:16 | 1024x1536 | portrait_4_3 (768×1024) |
GPT Image 2 對應到 4:3 預設而非 16:9,原因是其最低像素數為 655,360——landscape_16_9 預設(1024×576 = 589,824)會被拒絕。
這個轉換發生在 _build_fal_payload() 中——Agent 程式碼無須了解各模型的 schema 差異。
自動升頻
透過 FAL 的 Clarity Upscaler 進行升頻,會依模型進行門控:
| 模型 | 升頻? | 原因 |
|---|---|---|
fal-ai/flux-2-pro | ✓ | 向後相容(為選擇器推出前的預設模型) |
| 其他所有 | ✗ | 快速模型會失去其亞秒級速度優勢;高解析度模型不需要升頻 |
升頻執行時使用以下設定:
| 設定 | 值 |
|---|---|
| 升頻倍數 | 2× |
| 創造力 | 0.35 |
| 相似度 | 0.6 |
| 引導比例 | 4 |
| 推論步數 | 18 |
如果升頻失敗(網路問題、速率限制),會自動回傳原始圖像。
內部運作原理
- 模型解析 —
_resolve_fal_model()從config.yaml讀取image_gen.model,回退至環境變數FAL_IMAGE_MODEL,再回退至fal-ai/flux-2/klein/9b。 - Payload 組裝 —
_build_fal_payload()將你的aspect_ratio轉換為模型的原生格式(預設列舉、縱橫比列舉或 GPT 字面值),合併模型的預設參數,套用呼叫端的覆寫值,然後依模型的supports白名單過濾,確保不支援的鍵值永遠不會被送出。 - 提交 —
_submit_fal_request()透過直接的 FAL 憑證或託管的 Nous 閘道進行路由。 - 升頻 — 僅在模型中繼資料設有
upscale: True時才執行。 - 交付 — 最終圖像 URL 回傳給 Agent,Agent 發出
MEDIA:<url>標籤,由各平台介面轉換為原生媒體格式。
除錯
啟用除錯日誌:
export IMAGE_TOOLS_DEBUG=true
除錯日誌會寫入 ./logs/image_tools_debug_<session_id>.json,包含每次呼叫的詳細資訊(模型、參數、時間、錯誤)。
平台交付
| 平台 | 交付方式 |
|---|---|
| CLI | 圖像 URL 以 Markdown  格式輸出——點擊即可開啟 |
| Telegram | 附有提示詞說明的相片訊息 |
| Discord | 嵌入於訊息中 |
| Slack | 由 Slack 展開 URL |
| 媒體訊息 | |
| 其他 | 純文字 URL |
限制
- 需要 FAL 憑證(直接的
FAL_KEY或 Nous Subscription) - 僅支援文字轉圖像 — 此工具不支援局部繪製(inpainting)、img2img 或編輯功能
- 暫時性 URL — FAL 回傳的是託管 URL,會在數小時/數天後過期;如有需要請自行儲存至本機
- 各模型限制 — 部分模型不支援
seed、num_inference_steps等參數。supports過濾器會靜默丟棄不支援的參數——這是預期行為