Справочник по API

Используйте открытый API GPT Image 2 для программной генерации и редактирования изображений. Аутентифицируйтесь с помощью собственного API-ключа, оплачивайте кредитами и получайте результаты через polling.

Обзор

API GPT Image 2 позволяет генерировать изображения через ваш аккаунт GPT Image 2. Запросы используют API-ключ вашего сайта и маршрутизируются через нашу серверную интеграцию Kie.

Создайте API-ключ по пути:

/settings/apikeys

Затем вызовите:

POST /api/v1/images/generations
GET /api/v1/images/tasks/{task_id}

Генерация изображений выполняется асинхронно. Endpoint создания возвращает идентификатор задачи, а endpoint задачи возвращает конечные URL-адреса изображений после успешной генерации.

Аутентификация

Отправьте API-ключ GPT Image 2 в качестве Bearer-токена:

Authorization: Bearer sk-xxx

Не раскрывайте API-ключи в коде на стороне браузера. Используйте их из бэкенда, скриптов или бессерверных функций.

Тарификация

Использование API потребляет те же кредиты, что и веб-приложение:

ОперацияСтоимость в кредитах
Генерация изображения10 кредитов за изображение

Если запрос к провайдеру завершается ошибкой до принятия задачи, потраченные кредиты автоматически возвращаются через процесс обработки сбоя задачи.

Создание генерации изображения

Endpoint

POST https://gpt-image-2.art/api/v1/images/generations

Тело запроса

ПараметрТипОбязательныйОписание
modelstringНетИспользуйте gpt-image-2. Внутренние псевдонимы gpt-image-2-text-to-image и gpt-image-2-image-to-image также поддерживаются.
promptstringДаТекстовое описание изображения. Обязательно, если не указаны image_urls.
image_urlsstring[]НетURL-адреса референсных изображений для генерации «изображение-в-изображение».
nintegerНетКоличество генерируемых изображений, от 1 до 10. По умолчанию: 1.
sizestringНетОдно из: 1024x1024, 1536x1024, 1024x1536, 1920x1088, 1088x1920, 3824x2160, 2160x3824 или auto.
qualitystringНетПараметр качества провайдера, например high или auto.
output_formatstringНетpng, jpeg или webp, если поддерживается провайдером.
response_formatstringНетПоддерживается только url.
userstringНетНеобязательный идентификатор конечного пользователя для вашего собственного отслеживания.

Пример «текст-в-изображение»

curl https://gpt-image-2.art/api/v1/images/generations \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A cinematic product photo of a matte black coffee bag on a marble counter",
    "size": "1536x1024",
    "quality": "high",
    "n": 1
  }'

Пример «изображение-в-изображение»

curl https://gpt-image-2.art/api/v1/images/generations \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Keep the product unchanged and place it on a clean studio background",
    "image_urls": ["https://example.com/product.png"],
    "size": "1024x1024",
    "n": 1
  }'

Ответ на создание

{
  "id": "8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3",
  "object": "image.generation",
  "created": 1714000000,
  "model": "gpt-image-2-text-to-image",
  "status": "pending",
  "credits": 10,
  "data": []
}

Сохраните id и выполняйте polling endpoint задачи.

Запрос задачи по изображению

Endpoint

GET https://gpt-image-2.art/api/v1/images/tasks/{task_id}

Пример

curl https://gpt-image-2.art/api/v1/images/tasks/8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3 \
  -H "Authorization: Bearer $GPT_IMAGE_2_API_KEY"

Успешный ответ

{
  "id": "8f6d9f87-1b3f-4f89-bdfb-3df8e77b7af3",
  "object": "image.generation",
  "created": 1714000000,
  "model": "gpt-image-2-text-to-image",
  "status": "succeeded",
  "credits": 10,
  "data": [
    {
      "url": "https://..."
    }
  ]
}

Возможные значения status:

СтатусЗначение
pendingЗадача находится в очереди.
processingПровайдер генерирует изображение.
succeededURL-адреса изображений доступны в data.
failedГенерация завершилась ошибкой.
canceledГенерация была отменена.

Пример на JavaScript

const apiKey = process.env.GPT_IMAGE_2_API_KEY;

const createRes = await fetch(
  'https://gpt-image-2.art/api/v1/images/generations',
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      model: 'gpt-image-2',
      prompt:
        'A premium skincare bottle on wet stone with soft studio lighting',
      size: '1024x1024',
      n: 1,
    }),
  }
);

const task = await createRes.json();

let result = task;
while (['pending', 'processing'].includes(result.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000));
  const queryRes = await fetch(
    `https://gpt-image-2.art/api/v1/images/tasks/${task.id}`,
    {
      headers: {
        Authorization: `Bearer ${apiKey}`,
      },
    }
  );
  result = await queryRes.json();
}

console.log(result.data);

Формат ошибок

Ошибки имеют формат в стиле OpenAI:

{
  "error": {
    "message": "Invalid API key provided.",
    "type": "authentication_error",
    "param": null,
    "code": "invalid_api_key"
  }
}

Дополнительные ресурсы