Skip to main content
POST
Image Editing: Edit an existing image with text instructions
Интерактивный Playground справа поддерживает выбор параметров из выпадающего списка. Введите свой API Key в поле Authorization (формат: Bearer sk-xxx), чтобы отправлять тестовые запросы в один клик.
Область применения: эта страница предназначена для редактирования изображений. Необходимо предоставить исходное изображение (в кодировке base64) вместе с инструкциями по редактированию. Для генерации нового изображения только по тексту используйте эндпоинт Text-to-Image.
🖥️ Ограничение Playground в браузере (важно)Этот эндпоинт возвращает в ответе изображение в кодировке base64 (inlineData.data, обычно размером в несколько МБ). Из-за ограничений рендеринга в браузере Playground справа может отображать 请求时发生错误: unable to complete request после получения ответа — на самом деле запрос выполнен успешно; браузер просто не может отобразить такую длинную строку base64.Рекомендуемый порядок действий (подходит для начинающих):
  • Скопируйте приведенный ниже пример для Python / Node.js / cURL и запустите его локально. Код автоматически base64.b64decode ответ и записывает изображение в файл.
  • Если вам необходимо использовать Playground в браузере, используйте эталонное изображение минимального размера (< 50 КБ) и установите imageSize на минимальный уровень (1K).
⚠️ Структура массива parts (важно — ознакомьтесь для редактирования нескольких изображений)Каждый part должен быть либо text, либо inlineData, но ни в коем случае не обоими сразу. Это соответствует официальному контракту gemini-nano-banana-2.1 от Google.Правильно: одна текстовая часть (инструкция) + N частей inlineData (по одной на каждое изображение):
Неправильно (каждая часть содержит как text, так и inlineData — приводит к неопределенному поведению):
🖼️ О поле inlineData.dataЭтот эндпоинт использует формат JSON (а не составную загрузку файлов multipart), поэтому в Playground нельзя напрямую выбрать локальные файлы. Сначала необходимо преобразовать изображение в строку base64, а затем вставить ее в поле ввода data.Однострочная команда: преобразование + копирование в буфер обмена:
После выполнения просто вставьте значение с помощью Cmd+V / Ctrl+V в поле data в Playground. Также не забудьте установить для mimeType соответствующий image/jpeg или image/png.Рекомендация: используйте для тестирования небольшие изображения (< 200 КБ), чтобы избежать зависания браузера из-за длинных строк base64. Для регулярного тестирования редактирования изображений используйте приведенные ниже примеры кода для локального запуска.

Примеры кода

Python

Node.js

cURL

Редактирование нескольких изображений

При объединении или сравнении нескольких входных изображений используйте одну часть text (инструкцию), за которой следуют несколько частей inlineData (по одной на каждое изображение).

Python (несколько изображений)

cURL (несколько изображений, повторяет официальный формат Google)

Краткий справочник по параметрам

Многоэтапное диалоговое редактирование

Nano Banana 2.1 (gemini-nano-banana-2.1) поддерживает полноценное диалоговое многоэтапное редактирование: добавляйте сгенерированное на каждом шаге изображение обратно в contents как role: "model" inlineData, а затем отправляйте следующую инструкцию пользователя. Модель выполняет редактирование с учётом всей истории диалога и накапливает изменения (например, сначала перекрасьте диван, затем добавьте аксессуар — предыдущее изменение сохранится).
Это отличается от моделей обратного поиска изображений: нативный формат Gemini действительно считывает изображения из реплик истории с ролью model. Для согласованности между шагами и поэтапного уточнения используйте приведенный ниже паттерн заполнения истории.
Начало многоэтапного редактирования с существующего изображения: поместите inlineData (ваше собственное изображение) вместе с инструкцией в первое сообщение пользователя, чтобы отредактировать существующую фотографию, а затем на каждом шаге продолжайте передавать ответ модели обратно в contents.
Два стиля многоэтапного редактирования:
  • Заполнение истории (выше, рекомендуется): contents сохраняет чередующуюся историю диалога «пользователь/модель» — накапливает изменения от шага к шагу с лучшей согласованностью.
  • Повторная отправка (проще): на каждом шаге отправляется одно сообщение пользователя (text + inlineData предыдущего изображения) для одноэтапного редактирования без сохранения предыдущего контекста.

Авторизации

Authorization
string
header
обязательно

API Key obtained from APIYI Console

Тело

application/json
contents
object[]
обязательно

Content array containing edit instructions and the image to edit

generationConfig
object
обязательно

Ответ

Successfully edited image

candidates
object[]

Generation results array

usageMetadata
object