Нативная генерация и правка изображений 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(редактирование)
Сохранение изображений из ответа
Сохраните этот вспомогательный модуль какsave_images.py в папке, из которой запускаете примеры. Он записывает на диск каждое изображение из data[], независимо от того, содержит ли элемент b64_json или url:
python save_images.py <ответ.json> <имя>, а в Python импортируйте функцию save_images.
Генерация изображения
Отправьте JSON с полямиmodel и prompt на эндпоинт:
generated.png, generated.jpg или generated.webp — в зависимости от формата возвращённого файла.
- cURL
- Python
generation-response.json:.json содержит ответ API, и если сменить его расширение на .png, изображением он не станет.
Редактирование изображения
Положите изображениеinput.png в папку, из которой запускаете команду. Отправьте файл и инструкцию как multipart form data на эндпоинт:
edited.png, edited.jpg или edited.webp.
- cURL
- Python
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 или таймаут: проверьте журнал вызовов, прежде чем отправлять запрос на изображение повторно.