Grok Imagine 2 xAI
grok-imagine-image и grok-imagine-image-quality кодом
503 model_service_unavailable — во всех группах токенов и при любом наборе
параметров, включая запрос без параметров вовсе. Проверено трижды независимо, с контролем
на живой модели в ту же минуту. Пока канал не вернётся, каждая из них вернёт ошибку и
не тарифицируется; в каталоге и в Студии они скрыты. Ближайшие
альтернативы — FLUX.2 (точный размер в пикселях) и
GPT-Image-2 (маска и до 16 референсов). Страница оставлена
как справка по параметрам на случай возвращения канала.
Grok Imagine 2 — второе поколение картиночных моделей xAI. Особенность семейства —
оплата за штуку, а не за токены, причём ступень разрешения на цену не
влияет: 1K и 2K стоят одинаково. Доступ через OpenAI-совместимые
/v1/images/generations и /v1/images/edits, официальный OpenAI SDK
работает без правок кода.
Модели и цены
| Модель | Ступени | Цена за картинку | Когда брать |
|---|---|---|---|
grok-imagine-image |
1k · 2k |
$0.03 | Массовые задачи, черновики, батчи |
grok-imagine-image-quality |
1k · 2k |
$0.0675 | Финальные кадры, максимум детализации |
Качество выбирается именем модели, а не параметром: своего
quality у семейства нет. Счёт идёт по числу картинок, длина промпта на цену
не влияет. Правка по референсу стоит столько же, сколько генерация с нуля.
Текст → изображение
Эндпоинт POST https://megaapi.ru/v1/images/generations, тело — обычный JSON.
Размер задаётся парой aspect_ratio + resolution;
привычного size у модели нет.
from openai import OpenAI client = OpenAI(api_key="sk-nexus-...", base_url="https://megaapi.ru/v1") resp = client.images.generate( model="grok-imagine-image", prompt="Красная деревянная лодка на горном озере на рассвете", n=1, extra_body={ "aspect_ratio": "16:9", "resolution": "2k", }, ) print(resp.data[0].url)
aspect_ratio и resolution — не стандартные поля OpenAI SDK,
поэтому в Python они передаются через extra_body. В «сыром» HTTP-запросе это
обычные поля тела.
| Параметр | Значения | Описание |
|---|---|---|
model | две модели из таблицы выше | Обязателен |
prompt | текст | Обязателен |
n | 1 | Модель умеет до 10 за раз, но через MegaAPI.ru один запрос — одна картинка: у моделей с оплатой за штуку списание считается на одну. Нужно несколько — отправьте несколько запросов |
aspect_ratio | 1:1 · 16:9 · 9:16 · 4:3 · 3:4 | Ровно пять значений, шестого нет |
resolution | 1k · 2k | Строчными буквами. Обе ступени по одной цене |
response_format | url (по умолчанию) · b64_json | В ответе приходит ровно одно из двух полей, не оба |
Что получится в пикселях
| Соотношение | resolution: 1k | resolution: 2k |
|---|---|---|
1:1 | 1024 × 1024 | 2048 × 2048 |
16:9 | 1280 × 720 | 2816 × 1584 |
9:16 | 720 × 1280 | 1584 × 2816 |
4:3 | 1152 × 864 | 2368 × 1776 |
3:4 | 864 × 1152 | 1776 × 2368 |
Формат файла определяется ступенью, а не параметром: 1k отдаёт JPEG
(220–300 КБ), 2k — PNG без потерь (5–6 МБ), то есть примерно в двадцать раз
тяжелее. Раз цена одинаковая, выбор — только между качеством и трафиком.
Правка по референсу
Эндпоинт POST https://megaapi.ru/v1/images/edits, тело —
multipart/form-data с файлами. JSON со ссылками на картинки
здесь не работает: запрос вернёт 400 «request Content-Type isn't
multipart/form-data». Имя файлового поля — только image или
image[]; images и image_file дают 415.
curl -X POST "https://megaapi.ru/v1/images/edits" \ -H "Authorization: Bearer sk-nexus-..." \ -F "model=grok-imagine-image" \ -F "prompt=Сделай шарф красным, остальное оставь без изменений" \ -F "image=@photo.jpg"
Референсов от одного до четырёх — повторите поле image[]. Порядок значим:
в промпте на них можно ссылаться как «картинка 1», «картинка 2», а размер
результата берётся от первого файла. aspect_ratio и
resolution на этом эндпоинте не действуют вовсе — чтобы поменять кадр,
обрежьте референс заранее. Маски (mask) семейство не поддерживает: для
локальной перерисовки берите GPT-Image-2.
Три ловушки, о которых стоит знать заранее
/v1/images/generations — это деньги на ветер.
Поля image, image_url и images модель принимает,
молча выбрасывает и всё равно выставляет счёт: ответ 200,
картинка есть, к вашему фото она отношения не имеет. Ошибки при этом никакой.
MegaAPI.ru отбивает такой запрос до списания и просит перейти на
/v1/images/edits.
Неверное значение не даёт ошибки. Соотношение вне пяти разрешённых
(например 21:9 или 3:2), resolution заглавными
буквами, а также привычные size, quality и style
молча заменяются значением по умолчанию — обычно квадратом. Единственное исключение —
resolution: "4k": этой ступени у семейства нет, и вместо тихой подмены
приходит 503 model_service_unavailable. Повторять запрос бесполезно: это
сообщение о параметре, а не о сбое канала.
Поле usage в ответе не годится для сверки счёта.
prompt_tokens там всегда равен 1000 × n вне зависимости от
промпта — это заглушка. Считайте расход по числу картинок или смотрите
журнал списаний в кабинете. seed и
revised_prompt семейство тоже не поддерживает: два одинаковых запроса дают
разные картинки, и повторить результат нельзя — сохраняйте то, что понравилось.
Таймауты
Картиночный API синхронный: задачи с идентификатором нет, и если соединение оборвалось, результат теряется, а запрос всё равно оплачен. Ставьте клиентский таймаут не меньше 360 секунд — 1K рисуется около 9 секунд, 2K — 15–17, но на пике и холодном старте бывает заметно дольше. Ограничений по частоте запросов у семейства нет: батчи можно гнать параллельно.
Коды ошибок
| Код | Что значит | Что делать |
|---|---|---|
400 | Неверный параметр или промпт не прошёл модерацию — тело ответа одинаковое | Проверьте параметры; если они верны — переформулируйте промпт. Отказ модерации обычно возвращается за 5–6 секунд, то есть быстрее нормальной генерации |
400 · invalid_image_request | В /images/edits отправлен JSON вместо multipart | Загружайте файл, повторять бесполезно |
415 | Неизвестное имя файлового поля | Только image или image[] |
429 | Слишком часто либо не хватает средств | Проверьте баланс, дальше — повтор с нарастающей паузой |
503 · model_service_unavailable | Неподдержанная ступень (4k) либо канал модели недоступен | Вернуть 1k/2k; если параметры верны — канала нет, повтор не поможет |
Переход с GPT-Image-2
Эндпоинты те же, а набор параметров другой — простой заменой имени модели не обойтись.
| Что | GPT-Image-2 | Grok Imagine 2 |
|---|---|---|
| Размер | size в пикселях | aspect_ratio + resolution |
| Качество | quality | выбор модели -quality |
| Формат файла | output_format | задаётся ступенью: 1K — JPEG, 2K — PNG |
| Ответ | всегда b64_json, response_format не принимается | по умолчанию url, есть и b64_json |
| Картинок за запрос | одна | одна через MegaAPI.ru (модель умеет до десяти) |
| Референсов при правке | до 16, есть маска | до 4, маски нет |
| Счёт | по токенам | по числу картинок |
Полный список моделей с ценами — в каталоге. Общие правила картиночных запросов — в обзоре генерации изображений.