Обзор
Grok Imagine 2 — это новейшая, второго поколения, модель для генерации изображений xAI — полноценный шаг вперёд по сравнению с первым релизом как в управлении параметрами, так и в редактировании: соотношение сторон и разрешение действительно применяются, доступен уровень 2K, один вызов возвращает до 10 изображений, а редактирование по референсу действительно сохраняет исходное изображение. APIYI предлагает два варианта:grok-imagine-image (стандартная) и grok-imagine-image-quality (высокого качества). Оба используют одни и те же эндпоинты и параметры — различаются только точностью вывода и ценой.
2. Продукт называется Grok Imagine 2, но вызываемые вами имена моделей — grok-imagine-image и grok-imagine-image-quality — не указывайте grok-imagine-2-image, так как это вернёт 503, потому что такой модели не существует.API генерации изображений по тексту
API редактирования изображений
Why Grok Imagine 2 on APIYI
Формат, совместимый с OpenAI
/v1/images/generations и /v1/images/edits эндпоинты. Формат запроса и поля ответа совпадают с OpenAI Images API, так что официальный OpenAI SDK работает напрямую — без миграции.Без ограничений на параллельные запросы
Фиксированная тарификация, предсказуемая стоимость
Глобальный доступ, без барьеров
api.apiyi.com.Полная экосистема моделей
Профессиональная поддержка
Ключевые особенности
Два уровня разрешения
1k примерно 1 мегапиксель, 2k 4.2-4.5 мегапикселя (2816x1584 при 16:9) — одинаковая цена5 соотношений сторон
1:1 / 16:9 / 9:16 / 4:3 / 3:4, с точным совпадением размеров в пикселяхДо 10 за один вызов
n принимает 1-10, возвращая несколько изображений в одном запросе — идеально для пакетного выбораБыстрая генерация
Полноценное редактирование по референсу
Слияние нескольких изображений
Два формата ответа
url прямые ссылки или b64_json raw base64, поддерживаемые на обоих эндпоинтахГотово для OpenAI SDK
client.images.generate() и client.images.edit() работают из коробки — без ручной настройки HTTPТарифы
- Независимо от разрешения:
1kи2kстоят одинаково — за 2K не взимается доплата. - За каждое изображение:
n=4тарифицируется как 4 изображения, независимо от длины prompt. - Редактирование стоит столько же, сколько text-to-image — за
/v1/images/editsне взимается надбавка. - Блок
usageнельзя использовать для сверки:prompt_tokensвсегда1000 x n, это заглушка. Вместо этого используйте записи тарификации в консоли.
Настройка группы
Grok Imagine 2 работает вDefault группе (коэффициент тарифа 1.0x), что соответствует таблице тарификации выше. Переключение группы не требуется.
Рекомендуемая модель тарификации Token: Pay-as-you-go Priority. Эта серия тарифицируется за каждый запрос, и оба маршрута — Pay-as-you-go Priority и Pay-per-request — работают корректно; если выбрать Pay-as-you-go Priority, один Token также сможет покрывать модели с тарификацией token в других местах платформы.
Технические характеристики
Endpoints
Миграция с GPT-Image-2
Если вы уже интегрировали GPT-Image-2, эндпоинты и соглашение вызова идентичны (/v1/images/generations + /v1/images/edits, совместимо с OpenAI SDK) — но система параметров отличается, поэтому простая замена названия модели не сработает. Вот что нужно изменить.
Сопоставление параметров
Три самые частые ошибки
До и после
Ключевые параметры
aspect_ratio и resolution (размер вывода)
Вместе они определяют фактическое число пикселей на выходе. Измеренные значения точно совпадают с запросом:
aspect_ratio (например, 5:7, 21:9) или resolution (например, 1K, 1024x1024) тихо откатываются к значению по умолчанию и всё равно возвращают изображение. Неверный response_format также откатывается к url. Поэтому, если вывод не соответствует ожиданиям, сначала проверьте написание параметров.Единственное исключение — resolution: "4k", который возвращает 503 model_service_unavailable. Это означает, что уровень не поддерживается, а не то, что канал недоступен — переключитесь обратно на 1k / 2k.n (изображений за вызов)
Принимает 1-10; длина возвращаемого массива data равна n, и каждое изображение тарифицируется. 0 тихо трактуется как 1; 11 или выше возвращает 400.
Лучшие практики
Сразу определитесь: генерация или редактирование?
/v1/images/generations. Любое опорное изображение, даже для изменения на один пиксель → /v1/images/edits. При выборе неверного эндпоинта ошибки не будет — просто получится неожиданное изображение.Установите тайм-аут клиента на 360 секунд
Контролируйте композицию через aspect_ratio, а не через prompt
aspect_ratio: "16:9" гораздо надежнее, чем просить в prompt «альбомную композицию».Выбирайте уровень разрешения с учетом пропускной способности
Говорите «оставьте все остальное без изменений» при редактировании
Явно указывайте на изображения при объединении
image[] — это то, что означает «изображение 1 / изображение 2 / изображение 3». Фраза «поместите объект из image 1 в сцену из image 2» куда надежнее, чем позволять модели гадать.Не полагайтесь на seed для воспроизводимости
seed; один и тот же prompt дает разные результаты при каждом вызове. Сохраняйте изображения, которые хотите оставить, вместо того чтобы рассчитывать на их повторную генерацию.Просто используйте параллельные запросы для пакетной обработки
Коды ошибок и повторные попытки
400 и 415 — детерминированные, поэтому повторять бессмысленно, вместо этого отправляйте уведомление. Повторять стоит только 429 и тайм-ауты на уровне сети, с экспоненциальной задержкой между повторами и не более 3 попыток.Обратите внимание, что 400 invalid_request охватывает и «неверный параметр», и «контент заблокирован», и тело ответа не позволяет различить их. Практический эвристический признак — задержка: блоки модерации возвращаются примерно за 5–6 секунд — быстрее, чем успешная генерация (~9s), — потому что блокировка происходит до начала генерации.Часто задаваемые вопросы
Почему отправка JSON в /v1/images/edits возвращает 400, если в документации вендора указан JSON?
Почему отправка JSON в /v1/images/edits возвращает 400, если в документации вендора указан JSON?
multipart/form-data, тогда как upstream-документация вендора описывает JSON-тело с публичным URL изображения. Это разные варианты — следуйте документации этого сайта.Правильный формат — загрузка файла:Я отправил референсное изображение в text-to-image и получил 200, но результат не связан с запросом?
Я отправил референсное изображение в text-to-image и получил 200, но результат не связан с запросом?
/v1/images/generations молча игнорирует image / image_url / images, генерирует только по prompt и тарифицирует как обычно.Без сигнала об ошибке легко сделать вывод, что «редактирование сломано». Любой workflow с референсным изображением должен использовать /v1/images/edits.Почему resolution / aspect_ratio не влияют на эндпоинт редактирования?
Почему resolution / aspect_ratio не влияют на эндпоинт редактирования?
resolution или aspect_ratio здесь не вызывает ошибки, но ничего не делает.Чтобы изменить размер выхода, обрежьте или измените размер референсного изображения перед загрузкой.Почему в ответе нет revised_prompt?
Почему в ответе нет revised_prompt?
revised_prompt, а также поля вроде respect_moderation или model. Каждая запись data[] содержит либо url либо b64_json в зависимости от response_format — никогда оба сразу.Не предполагайте, что эти поля существуют при разборе ответов.Могу ли я сверить тарификацию по количеству token в usage?
Могу ли я сверить тарификацию по количеству token в usage?
usage.prompt_tokens всегда равно 1000 x n независимо от фактической длины prompt — это заполнитель.Эта серия тарифицируется за запрос по фиксированной цене за изображение. Для фактических списаний используйте записи тарификации в консоли APIYI.Почему 1K — это JPEG, а 2K — PNG? Размеры сильно отличаются
Почему 1K — это JPEG, а 2K — PNG? Размеры сильно отличаются
resolution: 1k возвращает JPEG (~220-300 KB), а resolution: 2k возвращает без потерь PNG (~5-6 MB), то есть примерно в 20 раз больше.Расширение URL, HTTP Content-Type и фактические байты согласованы друг с другом, поэтому вы можете безопасно ветвиться по Content-Type.Для сценариев, чувствительных к трафику (мобильные устройства, массовая передача), предпочитайте 1k — оба уровня стоят одинаково, так что выбор зависит только от качества.resolution: 4k возвращает 503 — канал недоступен?
resolution: 4k возвращает 503 — канал недоступен?
4k не является поддерживаемым уровнем для этой серии, и шлюз возвращает 503 model_service_unavailable. Код выглядит как сбой, но на самом деле это проблема параметра, так что повторные попытки не помогут — переключитесь обратно на 1k или 2k.Поддерживаются только 1k и 2k.Почему неверные параметры приводят к неправильному изображению вместо ошибки?
Почему неверные параметры приводят к неправильному изображению вместо ошибки?
aspect_ratio (например, 5:7), resolution (например, 1K, 1024x1024) и response_format (например, base64) все молча откатываются к значениям по умолчанию и по-прежнему возвращают изображение, а не 400.Поэтому, когда результат не соответствует ожиданиям, сначала проверьте написание параметров — в частности, значения resolution пишутся в нижнем регистре: 1k / 2k.Сколько изображений может создать один вызов?
Сколько изображений может создать один вызов?
n принимает 1-10, а длина возвращаемого массива data равна n. Каждое изображение тарифицируется.0 без предупреждения трактуется как 1; 11 и выше возвращает 400 invalid_request.Поддерживается ли воспроизводимость на основе seed?
Поддерживается ли воспроизводимость на основе seed?
seed не вызывает ошибки, но не имеет эффекта — один и тот же prompt с одним и тем же seed возвращает разные изображения при каждом вызове.Сохраняйте любое изображение, которое нужно будет повторно использовать, вместо того чтобы пытаться сгенерировать его заново.Могу ли я вызывать это через официальный OpenAI SDK?
Могу ли я вызывать это через официальный OpenAI SDK?
base_url на https://api.apiyi.com/v1:aspect_ratio и resolution не являются стандартными полями OpenAI SDK, поэтому передавайте их через extra_body.Есть ли ограничения на concurrency? Будет ли batch generation ограничиваться?
Есть ли ограничения на concurrency? Будет ли batch generation ограничиваться?
timeout: image APIs синхронны, поэтому установите timeout клиента на 360 seconds, чтобы не обрывать запросы, которые еще нормально обрабатываются — и все еще тарифицируются.Как работает модерация контента и как определить блокировку?
Как работает модерация контента и как определить блокировку?
400 invalid_request с точно таким же кодом ошибки и сообщением, как при ошибке параметра, поэтому по телу ответа их нельзя различить.Практический эвристический признак — задержка: блокировки модерации возвращаются примерно через 5-6 секунд (блокировка происходит до генерации), тогда как успешное изображение занимает около 9 секунд. Результаты модерации также содержат некоторую случайность, поэтому пограничный контент может вести себя по-разному при повторных попытках — не делайте выводов по одной попытке.Если параметры проверены и 400 продолжает повторяться, значит, prompt, скорее всего, вызвал модерацию; измените формулировку.Могу ли я генерировать изображения через /v1/chat/completions?
Могу ли я генерировать изображения через /v1/chat/completions?
content — markdown-ссылка на изображение:/v1/images/generations и /v1/images/edits) — больше параметров, более стабильная структура ответа и соответствие этой документации.Связанная документация
- API Grok Imagine 2 для генерации изображений по тексту - справочник по эндпоинту с Playground
- API Grok Imagine 2 для редактирования изображений - справочник по редактированию и объединению нескольких изображений
- Руководство по Grok - текстовые модели xAI
- Лучшие практики для Image API - тайм-ауты, разрывы соединения, сжатие
- Руководство по API
- Акции на пополнение