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/изображение (1K)
fal-ai/gpt-image-1.5
~15s
Точность следования запросу
$0.034/изображение
fal-ai/gpt-image-2
~20s
SOTA рендеринг текста + 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.
Настройка
Совет для подписчиков Nous
Если у вас есть платная подписка Nous Portal, вы можете использовать генерацию изображений через Tool Gateway без API-ключа FAL. Выбранная модель сохраняется в обоих путях доступа.
Если управляемый gateway возвращает HTTP 4xx для конкретной модели, значит эта модель ещё не проксирована на стороне портала — агент сообщит вам об этом и предложит действия (установите FAL_KEY для прямого доступа или выберите другую модель).
Перейдите в раздел 🎨 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/9buse_gateway:false# true if using Nous Subscription
Качество GPT-Image
Качество запросов для fal-ai/gpt-image-1.5 и fal-ai/gpt-image-2 зафиксировано на уровне medium (~$0.034–$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)
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() — коду агента никогда не приходится знать о различиях в схемах между моделями.
Автоматическое масштабирование (Upscaling)
Масштабирование через Clarity Upscaler от FAL включается для отдельных моделей:
Модель
Масштабирование?
Причина
fal-ai/flux-2-pro
✓
Обратная совместимость (был значением по умолчанию до выбора моделей)
Все остальные
✗
Быстрые модели потеряли бы своё основное преимущество; высокодетализированные модели не нуждаются в этом
При масштабировании используются следующие настройки:
Параметр
Значение
Коэффициент масштабирования
2×
Креативность
0.35
Сходство
0.6
Guidance scale
4
Шаги инференса
18
Если масштабирование не удалось (сетевая проблема, ограничение скорости), автоматически возвращается исходное изображение.
Как это работает внутри
Выбор модели — _resolve_fal_model() читает image_gen.model из config.yaml, затем проверяет переменную окружения FAL_IMAGE_MODEL, и в последнюю очередь использует fal-ai/flux-2/klein/9b.
Сборка payload — _build_fal_payload() преобразует ваше aspect_ratio в родной формат модели (пресет, соотношение сторон или literal GPT), добавляет параметры модели по умолчанию, применяет переопределения от вызывающей стороны, затем фильтрует по белому списку supports модели, чтобы неподдерживаемые ключи никогда не отправлялись.
Отправка — _submit_fal_request() направляет запрос через прямые учётные данные FAL или управляемый Nous gateway.
Масштабирование — выполняется только если в метаданных модели указано upscale: True.
Доставка — итоговый URL изображения возвращается агенту, который генерирует тег MEDIA:<url>, конвертируемый платформенными адаптерами в нативный медиа-формат.
Отладка
Включите отладочное логирование:
exportIMAGE_TOOLS_DEBUG=true
Отладочные логи сохраняются в ./logs/image_tools_debug_<session_id>.json с деталями каждого вызова (модель, параметры, время выполнения, ошибки).
Доставка на платформы
Платформа
Способ доставки
CLI
URL изображения выводится в формате markdown  — нажмите для открытия
Telegram
Фото-сообщение с prompt в качестве подписи
Discord
Встраивается в сообщение
Slack
URL разворачивается Slack'ом
WhatsApp
Медиа-сообщение
Другие
URL в виде обычного текста
Ограничения
Требуются учётные данные FAL (прямой FAL_KEY или подписка Nous)
Только текст-в-изображение — без inpainting, img2img или редактирования через этот инструмент
Временные URL — FAL возвращает хостированные URL, которые истекают через часы/дни; при необходимости сохраняйте локально
Ограничения каждой модели — некоторые модели не поддерживают seed, num_inference_steps и т.д. Фильтр supports молча отбрасывает неподдерживаемые параметры; это ожидаемое поведение