Перейти к основному содержанию
Создавайте изображения по тексту или загружайте изображение и описывайте, что в нём изменить. Оба эндпоинта возвращают ответ в формате OpenAI Images. Нативная генерация и правка изображений Gemini через модели Nano Banana описаны в обзоре Nano Banana. Сравнить модели изображений и эндпоинты можно на странице Сравнение API изображений.

Ключ и параметры подключения

Создайте API-ключ для моделей в разделе Управление токенами и сделайте его доступным через переменную окружения LAOZHANG_API_KEY. Убедитесь, что группе ключа доступны модели GPT Image 2.5 VIP, в разделе Модели и цены в консоли. Задайте ключ в терминале, заменив заглушку:
В примерах ниже используются:
  • Хост API: https://api.laozhang.ai
  • Базовый URL для OpenAI SDK: https://api.laozhang.ai/v1
  • Аутентификация: Authorization: Bearer $LAOZHANG_API_KEY
  • Модели: gpt-image-2.5-flare-vip (генерация) и gpt-image-2.5-sunburst-vip (редактирование)
Установите пакеты Python для вызова API и сохранения изображений. Примеры с cURL тоже используют Python, чтобы декодировать ответ и выбрать правильное расширение файла.

Сохранение изображений из ответа

Сохраните этот вспомогательный модуль как save_images.py в папке, из которой запускаете примеры. Он записывает на диск каждое изображение из data[], независимо от того, содержит ли элемент b64_json или url:
После запроса через cURL запустите его как python save_images.py <ответ.json> <имя>, а в Python импортируйте функцию save_images.

Генерация изображения

Отправьте JSON с полями model и prompt на эндпоинт:
Эти примеры создают изображение товара и сохраняют его как generated.png, generated.jpg или generated.webp — в зависимости от формата возвращённого файла.
Когда запрос завершится, сохраните изображение из generation-response.json:
Чтобы увидеть результат, откройте сохранённое изображение. Файл .json содержит ответ API, и если сменить его расширение на .png, изображением он не станет.

Редактирование изображения

Положите изображение input.png в папку, из которой запускаете команду. Отправьте файл и инструкцию как multipart form data на эндпоинт:
Примеры ниже меняют фон и сохраняют результат как edited.png, edited.jpg или edited.webp.
Когда запрос завершится, сохраните изображение из edit-response.json:
image[]=@input.png загружает содержимое файла; путь к файлу строкой в JSON локальный файл не загружает. С опцией -F в cURL тип multipart-содержимого и границу выставляет сам cURL, поэтому не добавляйте Content-Type: application/json. Опишите и нужное изменение, и детали, которые должны сохраниться. Редактирование генеративное, поэтому даже инструкция «объект не меняй» не гарантирует совпадения пикселей за пределами изменённой области.

Параметры запроса

Минимальные примеры используют настройки вывода модели по умолчанию. Чтобы выбрать размер или качество, берите параметры, указанные для конкретной модели в руководствах GPT Image 2.5 или GPT Image 2. У GPT Image и DALL·E разные параметры. Не переносите quality="hd" и style из DALL·E в запрос GPT Image. Маски, несколько референсных изображений, прозрачный фон и выбор формата вывода тоже настраиваются по инструкциям для конкретной модели; для правки одного локального изображения достаточно простой загрузки файла, показанной выше.

Чтение результата

Каждый элемент data[] — это одно выходное изображение в одном из двух видов:
  • b64_json содержит байты изображения в Base64. Некоторые ответы добавляют префикс data:image/...;base64, или отбрасывают завершающее выравнивание =, поэтому перед декодированием уберите префикс и восстановите выравнивание, как это делает save_images.py.
  • url — ссылка для скачивания. Скачайте файл сразу, не передавая свой API-ключ LaoZhang API, и храните собственную копию: ссылки в результате могут истекать.
Если запрошено несколько изображений, обработайте все элементы data[]. ID задачи генерации изображения или ответ Gemini с candidates имеют другой формат, и для них нужен обработчик соответствующего API.

Ошибки и повторы

  • 400: проверьте поля запроса и параметры модели. Для редактирования убедитесь, что файл загружен как multipart.
  • 401 или 403: проверьте API-ключ, группу токена и права на модель.
  • 404 или ошибка недоступной модели: проверьте эндпоинт и точный ID модели в разделе Модели и цены в консоли.
  • 429: прочитайте тело ошибки, чтобы отличить лимит частоты или параллельности от проблем с балансом аккаунта.
  • 5xx или таймаут: проверьте журнал вызовов, прежде чем отправлять запрос на изображение повторно.
Таймаут на клиенте не отменяет генерацию на сервере. Примеры на Python отключают автоматические повторы SDK, чтобы приложение само решало, повторять ли запрос. Актуальные цены и единицы тарификации показаны в консоли; условия обслуживания и возврата средств описаны в Условиях использования.

Связанные материалы