Skip to main content
RuAPI даёт доступ к двум семействам моделей генерации изображений: Gemini Image (в народе — Nano Banana) и GPT Image. Они вызываются по-разному, и это главное, что нужно понять перед началом. Оплата в USDT, без зарубежной карты.
Модели Gemini Image не работают через /v1/images/generations. Запросы к ним отправляются на https://www.ruapi.ai/v1/chat/completions — тот же адрес, что и для обычного чата, — а готовое изображение приходит внутри текста ответа. Подробности — в разделе «Способ 1».

Доступные модели

Актуальные цены — на странице цен. Модели Gemini тарифицируются за вызов (одна фиксированная цена за картинку), gpt-image-2 — по токенам (чем больше и качественнее картинка, тем дороже).

Адрес API и авторизация

  • Модели Gemini Image: POST https://www.ruapi.ai/v1/chat/completions
  • GPT Image: POST https://www.ruapi.ai/v1/images/generations (генерация), POST https://www.ruapi.ai/v1/images/edits (редактирование)
  • Base URL: https://www.ruapi.ai/v1. В SDK указывается только он — полные адреса выше SDK собирает сам
  • Авторизация: заголовок Authorization: Bearer sk-ВАШ_КЛЮЧ (создаётся в панели, раздел «API-ключи»)
Примеры на curl ниже сразу сохраняют картинку в файл в текущей папке — достаточно подставить свой ключ. Они работают в macOS, Linux и в Windows через Git Bash или WSL; в обычной командной строке Windows (cmd, PowerShell) используйте пример на Python. Если картинки в ответе нет, команда выводит ответ API целиком — там будет указана причина.

Способ 1. Gemini Image — через /v1/chat/completions

Запросы к моделям Gemini Image отправляются на https://www.ruapi.ai/v1/chat/completions. Составляются они так же, как для текстовой модели, — разница лишь в том, что в ответе приходит изображение.
Изображение приходит как Markdown-ссылка с data URI прямо внутри choices[0].message.content — отдельного поля для картинки нет. Ответ выглядит так:
Base64 нужно вытащить из текста. Примеры ниже делают это сами и сохраняют картинку в файл.

Текст → изображение

Иногда модель отвечает только текстом, без картинки. Такой вызов оплачивается так же, как вызов с картинкой. Чтобы этого не случалось, прямо пишите в запросе «Сгенерируй изображение: …». Если картинки всё равно нет, переформулируйте запрос и повторите.
Изображений в ответе может быть несколько — поэтому в примере на Python используется findall, а не search; команда на curl сохраняет первое. Рядом с картинкой модель почти всегда пишет короткую подпись.

Изображение → изображение (редактирование)

Чтобы отредактировать существующее изображение, передайте его в том же формате, что и для vision-моделей: массив content с частями text и image_url. В url можно подставить как обычную ссылку, так и data URI. Пример ниже можно запустить как есть; для своей картинки замените ссылку в url.
Соотношение сторон исходного изображения сохраняется — результат не обрезается до квадрата.

Многошаговое редактирование

Ответ модели можно вернуть обратно в messages как сообщение assistant — Markdown data URI будет распознан и изображение уйдёт на вход следующего шага. Так строится диалог «сделай чёрно-белым» → «а теперь добавь рамку».
Каждый шаг — это отдельный платный вызов. Кроме того, история с base64-изображениями быстро раздувает запрос: не тащите в контекст больше двух-трёх последних кадров.

Поддерживаемые форматы входных изображений

image/png, image/jpeg, image/webp, image/heic, image/heif. Всё остальное будет отклонено с ошибкой mime type is not supported by Gemini.

Нативный формат Google

Если вы уже пишете под Google GenAI SDK, тот же ключ работает и с собственным форматом Google — по адресу https://www.ruapi.ai/v1beta/models/ID_МОДЕЛИ:generateContent:
Здесь изображение приходит структурно — в candidates[0].content.parts[].inlineData.data (base64), без Markdown. Если вам не нужна совместимость с OpenAI SDK, этот вариант удобнее.

Способ 2. GPT Image — через /v1/images/generations

gpt-image-2 работает в стандартном формате OpenAI для генерации изображений: запросы отправляются на https://www.ruapi.ai/v1/images/generations. Никаких messages, только prompt.

Параметры

Ответ

Картинка приходит только в b64_json — это сам PNG-файл в base64. Ссылки на изображение в ответе нет, и мы не храним сгенерированные картинки: сохраните файл сразу, повторно его не получить.
usage.output_tokens — это токены изображения, по ним и считается стоимость. Понижение quality до low уменьшает их в разы: удобно для черновиков и тестов.

Частые вопросы

Потому что это не модель генерации изображений в терминах OpenAI, а мультимодальная чат-модель, которая умеет отдавать картинки. Отправляйте запрос на https://www.ruapi.ai/v1/chat/completions — см. «Способ 1». Если всё же отправить его на /v1/images/generations, придёт ошибка 400, в которой указан правильный адрес.
Ваш клиент отправляет вместе с запросом инструменты (tools) — так делают агенты и чат-клиенты с включёнными MCP или плагинами. Модели для изображений инструменты не поддерживают. Отключите инструменты и MCP в этом чате (или заведите отдельного ассистента без них) и повторите запрос. Такие неудачные запросы не оплачиваются.
Это и есть изображение. Когда ответ приходит через /v1/chat/completions, картинка вставляется в текст как ![image](data:image/png;base64,...). Примеры выше сами вытаскивают её и сохраняют в файл. Можно также перейти на нативный формат Google (см. раздел «Нативный формат Google» выше), где изображение приходит отдельным полем.
gemini-2.5-flash-image — лучшее соотношение цены и качества для правок. Если нужен максимум детализации, берите gemini-3-pro-image-preview. gpt-image-2 тоже умеет редактировать, но запросы для этого отправляются на отдельный адрес https://www.ruapi.ai/v1/images/edits.
Нисколько. Мы не храним сгенерированные изображения: картинка приходит один раз — в ответе на ваш запрос. Сохраните её сразу, получить её повторно нельзя.
Нет. Модели Gemini Image тарифицируются за вызов: одна фиксированная цена за вызов. Поле usage приходит справочно и на списание не влияет. По токенам считается только gpt-image-2. Вызов, в котором модель ответила только текстом, тоже оплачивается — поэтому прямо просите сгенерировать изображение.
Это модерация OpenAI: она сочла запрос к gpt-image-2 нарушающим правила. Иногда она ошибается — например, на описаниях маленьких детей или известных людей. Переформулируйте запрос и повторите. Отклонённые запросы не оплачиваются.