Перейти к основному содержимому

Генерация изображений

VibeOS генерирует изображения по текстовым запросам через FAL.ai. Из коробки поддерживается одиннадцать моделей, каждая со своим балансом скорости, качества и стоимости. Активная модель настраивается пользователем через vibeos tools и сохраняется в config.yaml.

Поддерживаемые модели​

МодельСкоростьСильные стороныЦена
fal-ai/flux-2/klein/9b (по умолчанию)<1сБыстро, чёткий текст$0.006/МП
fal-ai/flux-2-pro~6сСтудийный фотореализм$0.03/МП
fal-ai/z-image/turbo~2сДвуязычная EN/CN, 6B параметров$0.005/МП
fal-ai/nano-banana-pro~8сGemini 3 Pro, глубина рассуждений, рендеринг текста$0.15/изображение (1K)
fal-ai/gpt-image-1.5~15сСледование запросу$0.034/изображение
fal-ai/gpt-image-2~20сПередовой рендеринг текста + CJK, осведомлённый фотореализм$0.04–0.06/изображение
fal-ai/ideogram/v3~5сЛучшая типографика$0.03–0.09/изображение
fal-ai/recraft/v4/pro/text-to-image~8сДизайн, бренд-системы, готовность к продакшену$0.25/изображение
fal-ai/qwen-image~12сНа основе LLM, сложный текст$0.02/МП
fal-ai/krea/v2/medium/text-to-image~15-25сИллюстрация, аниме, живопись, выразительные/художественные стили$0.030–0.035/изображение
fal-ai/krea/v2/large/text-to-image~25-60сФотореализм, сырые текстурированные образы (размытие движения, зернистость, плёнка)$0.060–0.065/изображение

Цены указаны по тарифам FAL на момент написания; актуальные цифры смотрите на fal.ai.

Настройка​

Подписчики Nous

Если у вас есть платная подписка Nous Portal, вы можете использовать генерацию изображений через Шлюз инструментов без ключа API FAL. Выбор модели сохраняется для обоих путей. Новые установки могут выполнить vibeos setup --portal для входа и включения всех инструментов шлюза сразу; существующие установки могут выбрать Nous Subscription в качестве бэкенда генерации изображений через vibeos tools.

Если управляемый шлюз возвращает HTTP 4xx для конкретной модели, значит эта модель ещё не проксирована на стороне портала — агент сообщит вам об этом с инструкциями по исправлению (установите FAL_KEY для прямого доступа или выберите другую модель).

Получение ключа API FAL​

  1. Зарегистрируйтесь на fal.ai
  2. Сгенерируйте ключ API в панели управления

Настройка и выбор модели​

Запустите команду инструментов:

vibeos tools

Перейдите в 🎨 Генерация изображений, выберите бэкенд (Nous Subscription или FAL.ai), после чего откроется список всех поддерживаемых моделей в виде таблицы с выравниванием по столбцам — клавиши со стрелками для навигации, Enter для выбора:

  Модель                         Скорость   Сильные стороны              Цена
fal-ai/flux-2/klein/9b <1с Быстро, чёткий текст $0.006/МП ← используется сейчас
fal-ai/flux-2-pro ~6с Студийный фотореализм $0.03/МП
fal-ai/z-image/turbo ~2с Двуязычная EN/CN, 6B $0.005/МП
...

Ваш выбор сохраняется в config.yaml:

image_gen:
model: fal-ai/flux-2/klein/9b
use_gateway: false # true при использовании 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.

Использование​

Схема для агента намеренно минимальна — модель подхватывает то, что вы настроили:

Сгенерируй изображение безмятежного горного пейзажа с цветущей сакурой
Создай квадратный портрет мудрой старой совы — используй модель типографики
Сделай мне футуристический городской пейзаж, альбомная ориентация

Image-to-Image / Редактирование​

Тот же инструмент image_generate также редактирует существующие изображения, когда активная модель это поддерживает — передайте исходное изображение, и бэкенд автоматически направит запрос на его эндпоинт редактирования (аналогично тому, как video_generate обрабатывает image-to-video). Опустите исходное изображение — и это будет обычный text-to-image.

Возьми это фото и сделай из него дождливую улицу Токио ночью → <изображение>
Смешай эти два предметных снимка в одно геройское изображение → <изображение1> <изображение2>

Два параметра управляют редактированием:

  • image_url — основное исходное изображение для редактирования/трансформации (публичный URL или локальный путь).
  • reference_image_urls — дополнительные ссылки на стиль/композицию (ограничение зависит от модели).

Какие бэкенды поддерживают редактирование​

БэкендImage-to-imageЛимит ссылокКак
FAL.ai (модели с поддержкой редактирования ниже)✓до 9направляет на эндпоинт /edit модели
OpenAI (gpt-image-2)✓до 16images.edit()
xAI (Grok Imagine)✓1/v1/images/edits (grok-imagine-image-quality)
Krea (Krea 2)✓до 10генерация с референсами (image_style_references)
OpenAI (Codex auth)✗—только text-to-image

Модели FAL с эндпоинтом редактирования: flux-2/klein/9b, flux-2-pro, nano-banana-pro, gpt-image-1.5, gpt-image-2, ideogram/v3 и qwen-image. Чисто text-to-image модели FAL (z-image/turbo, recraft, krea/*) отклоняют ввод изображений с чёткой ошибкой, указывающей на модель с поддержкой редактирования.

Возможность редактирования активной модели отображается в описании инструмента во время выполнения, поэтому агент знает, будет ли image_url принят, до вызова инструмента.

Соотношения сторон​

Каждая модель принимает одни и те же три соотношения сторон с точки зрения агента. Внутренне нативное указание размера каждой модели заполняется автоматически:

Ввод агента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() — коду агента никогда не нужно знать о различиях в схемах между моделями.

Автоматическое апскейлинг​

Апскейлинг через Clarity Upscaler от FAL включается для каждой модели отдельно:

МодельАпскейл?Почему
fal-ai/flux-2-pro✓Обратная совместимость (был значением по умолчанию до выбора модели)
Все остальные✗Быстрые модели потеряли бы ценность субсекундной работы; модели высокого разрешения не нуждаются в нём

При выполнении апскейлинга используются следующие настройки:

НастройкаЗначение
Коэффициент увеличения2×
Креативность0.35
Сходство0.6
Масштаб управления4
Шаги инференса18

Если апскейлинг не удался (проблемы с сетью, лимит запросов), исходное изображение возвращается автоматически.

Как это работает внутри​

  1. Определение модели — _resolve_fal_model() читает image_gen.model из config.yaml, возвращается к переменной окружения 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_&lt;session_id&gt;.json с деталями каждого вызова (модель, параметры, время, ошибки).

Доставка на платформах​

ПлатформаДоставка
CLIURL изображения выводится в формате markdown ![](url) — нажмите, чтобы открыть
TelegramФото-сообщение с запросом в качестве подписи
DiscordВстраивается в сообщение
SlackURL разворачивается Slack
WhatsAppМедиа-сообщение
ДругиеURL в виде обычного текста

Ограничения​

  • Требуются учётные данные для активного бэкенда (FAL FAL_KEY / Nous Subscription, OPENAI_API_KEY, xAI OAuth, KREA_API_KEY)
  • Редактирование зависит от модели — image-to-image работает только на моделях с поддержкой редактирования (см. таблицу выше); модели только для text-to-image отклоняют ввод изображений с чёткой ошибкой
  • Временные URL — бэкенды возвращают размещённые URL, которые истекают через часы/дни; VibeOS материализует их в локальный кеш, поэтому доставка всё ещё работает после истечения срока
  • Ограничения каждой модели — некоторые модели не поддерживают seed, num_inference_steps и т.д. Фильтр supports / edit_supports молча отбрасывает неподдерживаемые параметры; это ожидаемое поведение