Генерация изображений
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 Portal, вы можете использовать генерацию изображений через Шлюз инструментов без ключа API FAL. Выбор модели сохраняется для обоих путей. Новые установки могут выполнить vibeos setup --portal для входа и включения всех инструментов шлюза сразу; существующие установки могут выбрать Nous Subscription в качестве бэкенда генерации изображений через vibeos tools.
Если управляемый шлюз возвращает HTTP 4xx для конкретной модели, значит эта модель ещё не проксирована на стороне портала — агент сообщит вам об этом с инструкциями по исправлению (установите FAL_KEY для прямого доступа или выберите другую модель).
Получение ключа API FAL
- Зарегистрируйтесь на fal.ai
- Сгенерируйте ключ 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) | ✓ | до 16 | images.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) |
|---|---|---|---|---|
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() — коду агента никогда не нужно знать о различиях в схемах между моделями.
Автоматическое апскейлинг
Апскейлинг через Clarity Upscaler от FAL включается для каждой модели отдельно:
| Модель | Апскейл? | Почему |
|---|---|---|
fal-ai/flux-2-pro | ✓ | Обратная совместимость (был значением по умолчанию до выбора модели) |
| Все остальные | ✗ | Быстрые модели потеряли бы ценность субсекундной работы; модели высокого разрешения не нуждаются в нём |
При выполнении апскейлинга используются следующие настройки:
| Настройка | Значение |
|---|---|
| Коэффициент увеличения | 2× |
| Креативность | 0.35 |
| Сходство | 0.6 |
| Масштаб управления | 4 |
| Шаги инференса | 18 |
Если апскейлинг не удался (проблемы с сетью, лимит запросов), исходное изображение возвращается автоматически.
Как это работает внутри
- Определение модели —
_resolve_fal_model()читаетimage_gen.modelизconfig.yaml, возвращается к переменной окруженияFAL_IMAGE_MODEL, затем кfal-ai/flux-2/klein/9b. - Построение полезной нагрузки —
_build_fal_payload()преобразует вашaspect_ratioв нативный формат модели (перечисление пресетов, перечисление соотношений сторон или литерал GPT), объединяет параметры модели по умолчанию, применяет любые переопределения вызывающего кода, затем фильтрует по белому спискуsupportsмодели, чтобы неподдерживаемые ключи никогда не отправлялись. - Отправка —
_submit_fal_request()направляет запрос через прямые учётные данные FAL или управляемый шлюз Nous. - Апскейлинг — выполняется только если метаданные модели содержат
upscale: True. - Доставка — финальный URL изображения возвращается агенту, который генерирует тег
MEDIA:<url>`, преобразуемый адаптерами платформы в нативный медиа-контент.
Отладка
Включите отладочное логирование:
export IMAGE_TOOLS_DEBUG=true
Отладочные логи сохраняются в ./logs/image_tools_debug_<session_id>.json с деталями каждого вызова (модель, параметры, время, ошибки).
Доставка на платформах
| Платформа | Доставка |
|---|---|
| CLI | URL изображения выводится в формате markdown  — нажмите, чтобы открыть |
| Telegram | Фото-сообщение с запросом в качестве подписи |
| Discord | Встраивается в сообщение |
| Slack | URL разворачивается Slack |
| Медиа-сообщение | |
| Другие | 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молча отбрасывает неподдерживаемые параметры; это ожидаемое поведение