Открытый API

GPT Image API

Вызывайте gpt-image-2 через совместимый с OpenAI Images API LMU AI для генерации изображений по тексту, редактирования изображений, параметров, сохранения Base64, поиска модели и исправления ошибок.

LMU AI предоставляет совместимый с OpenAI Images API для генерации изображений по тексту и редактирования изображений / image-to-image с использованием gpt-image-2.

Base URL

OpenAI SDK:

https://api.lmuai.com/v1

При написании HTTP-запросов вручную используйте полные эндпоинты:

POST https://api.lmuai.com/v1/images/generations
POST https://api.lmuai.com/v1/images/edits

1. Обзор API

МетодПутьContent-TypeОписание
GET/v1/modelsЗапрос моделей, доступных вашему текущему API-ключу
POST/v1/images/generationsapplication/jsonГенерация изображений GPT по тексту, синхронный ответ
POST/v1/images/editsmultipart/form-dataРедактирование изображений GPT / image-to-image, синхронный ответ

Пока нет API пакетной обработки нескольких элементов GPT

/v1/images/batches в настоящее время поддерживает только Gemini и не может принимать gpt-image-2. Чтобы сгенерировать несколько изображений GPT, клиент должен отправлять запросы по одному и самостоятельно управлять параллелизмом и RPM.

В производственной среде также пока не включён асинхронный эндпоинт заданий изображений, поэтому полагайтесь на два синхронных API на этой странице.

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

Authorization: Bearer YOUR_API_KEY

Не помещайте ваш API-ключ в клиентский код в браузере, в публичные репозитории, в строки запроса URL или в логи. Мы рекомендуем выполнять вызовы с вашего собственного сервера.

3. Запрос моделей

curl https://api.lmuai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Ищите модель изображений в data[].id ответа, например:

{
  "object": "list",
  "data": [
    {"id": "gpt-image-2", "object": "model"}
  ]
}

Список моделей определяется группой, к которой принадлежит ваш API-ключ. Разные API-ключи на одном сайте могут возвращать разные модели.

4. Генерация изображений по тексту

POST /v1/images/generations

curl https://api.lmuai.com/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A red ceramic mug, centered on a light-gray studio background, soft side lighting, no text",
    "n": 1,
    "size": "1024x1024",
    "quality": "low",
    "output_format": "png"
  }'

Python SDK

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

result = client.images.generate(
    model="gpt-image-2",
    prompt="A red ceramic mug, light-gray studio background, soft side lighting, no text",
    size="1024x1024",
    quality="low",
)

item = result.data[0]

if item.b64_json:
    with open("gpt-output.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))
elif item.url:
    print(item.url)
else:
    raise RuntimeError("No valid image in the response")

JavaScript

import OpenAI from "openai";
import fs from "node:fs";

const client = new OpenAI({
  apiKey: process.env.LMU_API_KEY,
  baseURL: "https://api.lmuai.com/v1",
});

const result = await client.images.generate({
  model: "gpt-image-2",
  prompt: "A red ceramic mug, light-gray studio background, soft side lighting, no text",
  size: "1024x1024",
  quality: "low",
  output_format: "png",
});

const item = result.data?.[0];
if (item?.b64_json) {
  fs.writeFileSync("gpt-output.png", Buffer.from(item.b64_json, "base64"));
} else if (item?.url) {
  console.log(item.url);
} else {
  throw new Error("No valid image in the response");
}

5. Параметры генерации изображений по тексту

ПолеТипОбязательноОписание
modelstringРекомендуетсяВ настоящее время gpt-image-2
promptstringДаОписание изображения
nintegerНетКоличество изображений; доступный диапазон определяется моделью и вышестоящим каналом
sizestringНетЗапрашиваемый размер, например 1024x1024; фактические размеры в пикселях соответствуют возвращённому изображению
qualitystringНетУровень качества, например low, medium, high; зависит от возможностей модели
backgroundstringНетНастройка фона, например прозрачный фон; зависит от возможностей модели
output_formatstringНетpng, jpeg, webp и т. д.; зависит от возможностей модели
output_compressionintegerНетКачество сжатия для форматов, таких как JPEG / WebP
response_formatstringНетПараметр совместимости формата ответа; клиентам всё равно следует проверять и b64_json, и url
moderationstringНетПараметр модерации контента; зависит от возможностей модели
streambooleanНетПереключатель для потоковых ответов изображений; для обычных серверных вызовов мы рекомендуем непотоковый режим
partial_imagesintegerНетКоличество частичных изображений в потоковых сценариях; зависит от возможностей модели

size не является гарантированной обрезкой

Разные вышестоящие аккаунты и бэкенды изображений могут сопоставлять или нормализовать size под свои возможности. Даже если вы запрашиваете 1024x1024, фактические пиксели изображения могут отличаться. Когда вам нужно фиксированное соотношение или размер в пикселях, читайте размеры выходного файла и обрезайте или изменяйте размер на своей стороне.

6. Редактирование изображений / image-to-image

POST /v1/images/edits

Редактирование изображений GPT использует multipart/form-data:

curl https://api.lmuai.com/v1/images/edits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Keep the mug's shape, composition, and lighting; change the mug from red to green; no text" \
  -F "image=@./input.png" \
  -F "size=1024x1024" \
  -F "quality=low" \
  -F "output_format=png"

Python SDK:

from openai import OpenAI
import base64

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.lmuai.com/v1",
)

with open("input.png", "rb") as image_file:
    result = client.images.edit(
        model="gpt-image-2",
        image=image_file,
        prompt="Keep the subject and composition; change the background to a neon street on a rainy night",
        size="1024x1024",
        quality="low",
    )

item = result.data[0]
if item.b64_json:
    with open("gpt-edited.png", "wb") as f:
        f.write(base64.b64decode(item.b64_json))

Если модель и канал поддерживают редактирование с маской, вы можете добавить:

-F "mask=@./mask.png"

Эндпоинт edits также принимает такие параметры, как input_fidelity, background, output_format и output_compression; точный эффект зависит от возможностей модели.

7. Формат ответа

Типичный ответ изображения GPT:

{
  "created": 1760000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAA..."
    }
  ],
  "background": "opaque",
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "model": "gpt-image-2",
  "usage": {
    "input_tokens": 48,
    "output_tokens": 186,
    "total_tokens": 234
  }
}

Клиенты должны выполнять три уровня проверки:

  1. Находится ли HTTP-код состояния в диапазоне 2xx;
  2. Является ли data непустым массивом;
  3. Существует ли непустое b64_json или url в data[].

Когда вы получаете HTTP 200, но без действительного поля изображения, рассматривайте это как ошибку на бизнес-уровне.

8. Распространённые ошибки

HTTPРаспространённая причинаРекомендуемое действие
400Некорректное тело запроса, формат изображения, параметр или модельПроверьте JSON / multipart, имена полей и ID модели
401Недействительный API-ключПроверьте заголовок Bearer и не добавляйте пробелов вокруг ключа
403Для группы, к которой принадлежит ваш API-ключ, не включена генерация изображенийОбратитесь к администратору для проверки разрешений группы на изображения
404Неверный путь или API изображений не поддерживается для текущей группыУбедитесь, что вы используете /v1/images/generations или /v1/images/edits
429Ограничения параллелизма, RPM или вышестоящей квотыИспользуйте экспоненциальную задержку и снижайте параллелизм и RPM
5xxВышестоящий сервис или API-релей временно недоступенЗалогируйте ID запроса и повторите ограниченное число раз

При устранении неполадок сохраняйте ID запроса из заголовков ответа и предоставляйте его администратору; не отправляйте ваш полный API-ключ.

9. Отличия от других API изображений

ПотребностьРекомендуемая документация
Нативная генерация изображений по тексту Gemini, image-to-image, 1K / 2K / 4KGemini Image API
Генерация изображений по тексту и редактирование GPTЭта страница
Генерация изображений по тексту и редактирование GrokGrok Image API
Отправка нескольких промптов Gemini одновременноGemini Batch Image API

Последнее обновление:

На этой странице