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~8sGemini 3 Pro,推理深度,文字渲染$0.15/图像(1K)
fal-ai/gpt-image-1.5~15s提示遵循度$0.034/图像
fal-ai/gpt-image-2~20sSOTA 文字渲染 + CJK,世界感知照片真实感$0.04–0.06/图像
fal-ai/ideogram/v3~5s最佳字体排印$0.03–0.09/图像
fal-ai/recraft/v4/pro/text-to-image~8s设计、品牌系统、生产就绪$0.25/图像
fal-ai/qwen-image~12s基于 LLM,复杂文字$0.02/MP

价格为撰写时的 FAL 定价;请查阅 fal.ai 获取最新价格。

设置

:::tip Nous 订阅用户 如果您拥有付费的 Nous Portal 订阅,您可以通过 工具网关(Tool Gateway) 使用图像生成,无需 FAL API 密钥。您的模型选择在两个路径中都持久化。

如果托管网关针对特定模型返回 HTTP 4xx,则该模型尚未在门户端代理——代理会告诉您并提供修复措施(设置 FAL_KEY 以直接访问,或选择其他模型)。 :::

获取 FAL API 密钥

  1. fal.ai 注册
  2. 从您的仪表盘生成 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   ← 当前使用中
  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            # 如果使用 Nous Subscription 则为 true

GPT-Image 质量

fal-ai/gpt-image-1.5fal-ai/gpt-image-2 的请求质量固定为 medium(~0.06/图像,1024×1024)。我们不将 low/high 级别作为用户可见的选项暴露,以便 Nous Portal 的计费在所有用户中保持可预测——级别间的成本差距为 3–22 倍。如果您想要更便宜的选项,选择 Klein 9B 或 Z-Image Turbo;如果您想要更高质量,使用 Nano Banana Pro 或 Recraft V4 Pro。

使用

代理面对的架构有意保持最小化——模型会拾取您配置的模型:

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

宽高比

从代理的角度看,每个模型接受相同的三种宽高比。内部会自动填充每个模型的原生尺寸规格:

代理输入image_size(flux/z-image/qwen/recraft/ideogram)aspect_ratio(nano-banana-pro)image_size(gpt-image-1.5)image_size(gpt-image-2)
landscapelandscape_16_916:91536x1024landscape_4_3(1024×768)
squaresquare_hd1:11024x1024square_hd(1024×1024)
portraitportrait_16_99:161024x1536portrait_4_3(768×1024)

GPT Image 2 映射到 4:3 预设而非 16:9,因为其最小像素数为 655,360——landscape_16_9 预设(1024×576 = 589,824)会被拒绝。

此转换在 _build_fal_payload() 中进行——代理代码永远不需要了解每个模型的架构差异。

自动放大

通过 FAL 的 Clarity Upscaler 进行放大按模型门控:

模型放大?原因
fal-ai/flux-2-pro向后兼容(曾是选择器之前的默认值)
所有其他快速模型会失去次秒价值主张;高分辨率模型不需要

运行放大时的设置:

设置
放大倍率
创造性0.35
相似度0.6
引导比例4
推理步数18

如果放大失败(网络问题、速率限制),自动返回原始图像。

内部工作原理

  1. 模型解析_resolve_fal_model()config.yaml 读取 image_gen.model,回退到 FAL_IMAGE_MODEL 环境变量,然后回退到 fal-ai/flux-2/klein/9b
  2. 负载构建_build_fal_payload() 将您的 aspect_ratio 转换为模型的原生格式(预设枚举、宽高比枚举或 GPT 字面量),合并模型的默认参数,应用调用者的覆盖,然后过滤到模型的 supports 白名单,以便不支持的关键字永远不会被发送。
  3. 提交_submit_fal_request() 通过直接 FAL 凭据或托管的 Nous 网关路由。
  4. 放大 — 仅当模型的元数据中有 upscale: True 时运行。
  5. 交付 — 最终图像 URL 返回给代理,代理发出 MEDIA:<url> 标签,平台适配器将其转换为原生媒体。

调试

启用调试日志:

export IMAGE_TOOLS_DEBUG=true

调试日志会写入 ./logs/image_tools_debug_<session_id>.json,包含每次调用的详细信息(模型、参数、时序、错误)。

平台交付

平台交付方式
CLI图像 URL 以 markdown ![](url) 格式打印——点击打开
Telegram图片消息,提示文字作为标题
Discord嵌入在消息中
Slack由 Slack 展开 URL
WhatsApp媒体消息
其他纯文本中的 URL

限制

  • 需要 FAL 凭据(直接 FAL_KEY 或 Nous Subscription)
  • 仅文本到图像——不支持通过此工具进行内补、图像到图像或编辑
  • 临时 URL — FAL 返回的托管 URL 在数小时/天后过期;如果需要请本地保存
  • 每模型约束 — 某些模型不支持 seednum_inference_steps 等。supports 过滤器会静默丢弃不支持的参数;这是预期行为