GPT Image 2 для редактирования фото: инструкция через API

В этой статье

GPT Image 2 редактирует фотографию через OpenAI API: вы передаёте исходный файл, текстовое описание правки и, если нужно, маску. На выходе API возвращает новое изображение. Для этого сценария нужен запрос к endpoint /v1/images/edits, а не окно ChatGPT Images. Описание модели и её возможностей смотрите в документации GPT-Image-2.

Ниже разберём аккуратную правку: на фотографии комнаты нужно убрать небольшое пятно со стены, сохранив мебель, окно, освещение и кадрирование.

Что подготовить до запроса

Соберите в одной папке:

  • room.jpg — исходную фотографию;
  • mask.png — маску с отмеченной областью пятна;
  • API-ключ OpenAI, переданный в переменной окружения OPENAI_API_KEY.

Сначала осмотрите исходник при увеличении. Отметьте, где заканчивается пятно, проходит ли рядом край мебели, тень или линия окна. Чем точнее вы понимаете сцену, тем спокойнее получится промпт: модель должна получить не только команду «убрать пятно», но и описание того, что в кадре нельзя сдвигать.

Маска нужна, чтобы направить внимание на локальную область. Она не превращается в жёсткую монтажную границу: модель может затронуть соседнюю фактуру или изменить деталь за пределами выделения. Поэтому маска — подсказка для редактирования, а не обещание пиксельной изоляции. Такой подход описан в руководстве по генерации изображений.

Сохраните маску в PNG с альфа-каналом и теми же размерами, что у room.jpg: область пятна должна быть полностью прозрачной, остальные участки — непрозрачными. Оставьте вокруг пятна небольшой запас. Если захватить половину стены, модель получит слишком много свободы и может незаметно перестроить фактуру или свет.

Если собственный API-код не нужен, есть отдельный пользовательский маршрут — оформить подписку ChatGPT через Amber Market. В карточке указаны варианты Go, Plus и Pro на один месяц; подключение заявлено на аккаунте покупателя, а актуальные сумму и условия нужно проверить перед заказом. Это подписка на пользовательский ChatGPT, а не пополнение OpenAI API и не замена endpoint GPT Image 2.

Как отправить фотографию на редактирование

Для запроса используйте модель gpt-image-2, исходное изображение, маску и ясный промпт. Пример через curl:

curl https://api.openai.com/v1/images/edits \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=gpt-image-2" \
  -F "image=@room.jpg" \
  -F "mask=@mask.png" \
  -F 'prompt=Уберите небольшое пятно на стене в отмеченной области. Восстановите естественную однородную фактуру стены. Сохраните без изменений мебель, окно, свет, тени, перспективу и кадрирование комнаты. Не добавляйте новых предметов и не меняйте цветовую температуру фотографии.' \
  -F "size=1536x1024" \
  -F "output_format=png" \
  -o response.json

В запросе отдельно видны четыре важных решения:

  1. model=gpt-image-2 фиксирует нужную модель, а не просто любой доступный генератор изображений.
  2. image=@room.jpg передаёт фотографию, с которой нужно работать.
  3. mask=@mask.png указывает область, требующую внимания.
  4. prompt описывает не только действие, но и неподвижные элементы сцены.

Параметры размера и формата вывода выбирайте под задачу и текущие ограничения API. В справочнике Images API перечислены параметры запроса, включая модель, промпт, размер и формат результата. Лимиты, цены и доступность конкретного alias перед запуском стоит сверить там же: их нельзя считать постоянными.

Ответ содержит данные изображения в поле data. Если в вашей конфигурации API возвращается b64_json, сохранить PNG можно так:

jq -r '.data[0].b64_json' response.json | base64 --decode > room-edited.png

Проверьте структуру ответа перед декодированием. Если API вернул ошибку, сначала исправьте её причину — например, формат файла, размер или параметры запроса — и не принимайте пустой или неполный ответ за готовую фотографию.

Как написать промпт, чтобы не потерять сцену

В локальном редактировании важны два слоя описания. Первый говорит, что изменить: удалить пятно и восстановить фактуру стены. Второй фиксирует композицию: мебель, окно, свет, тени, перспективу и кадрирование должны остаться прежними.

Такой промпт лучше, чем короткое «сделай стену чистой». Короткая команда оставляет модели простор для интерпретации: она может выровнять соседнюю тень, поменять оттенок стены или слегка перестроить визуальный баланс комнаты. В кадре это заметно по краям — там, где спокойная поверхность встречается с ножкой стула, рамой окна или мягкой тенью.

Если пятно расположено рядом со сложной границей, добавьте её в текст отдельно: «не изменяйте контур шкафа», «сохраните тень от подоконника», «не ретушируйте отражение в стекле». Команда должна описывать наблюдаемую сцену, а не только желаемый результат.

Как проверить результат

Не оценивайте файл только по тому, исчезло ли пятно. Откройте room.jpg и room-edited.png рядом, а затем увеличьте изменённую область. Проверьте:

  • границы маски и соседние участки стены;
  • направление и мелкую фактуру поверхности;
  • тени от мебели и окна;
  • мебель, ручки, рамы и другие прямые линии;
  • лица, если они случайно попали в кадр;
  • текст и логотипы, если они были на исходной фотографии;
  • размер, пропорции и кадрирование всего изображения.

Особенно внимательно смотрите на переход от исправленной стены к нетронутой. Если там появился мягкий ореол, повторяющийся узор или изменилась тень, сравните участок с исходником на том же масштабе. Маска помогает направить правку, но не гарантирует сохранение каждого пикселя.

При побочном изменении сузьте маску и сделайте промпт конкретнее. Например, выделите только пятно, уберите из описания лишние пожелания и добавьте запрет на изменение ближайшего края шкафа. Затем повторите запрос и снова сравните результат с room.jpg. Иногда полезнее сделать две небольшие правки последовательно, чем одной маской охватить всю стену.

Что важно не перепутать

Интерфейс ChatGPT Images и OpenAI API решают похожую задачу разными маршрутами. В ChatGPT можно загружать фотографию и описывать правку в диалоге, но это не способ выбрать именно модель gpt-image-2 и вызвать endpoint /v1/images/edits. Если вам нужны воспроизводимый запрос, маска, параметры вывода и проверяемый ответ для кода, используйте API.

И наоборот: подписка ChatGPT не даёт права автоматически считать API оплаченной или доступной. Для API отдельно проверяйте ключ, документацию, лимиты, цены и текущий идентификатор модели. Для пользовательского интерфейса можно открыть инструкцию по исправлению фото в ChatGPT, а если сначала нужно разобраться с загрузкой — инструкцию по загрузке фото в ChatGPT.

Итоговый рабочий цикл выглядит просто: подготовить исходник и узкую маску, отправить их на /v1/images/edits с точным промптом, сохранить ответ и сравнить его с оригиналом. Последний шаг здесь такой же важный, как сам запрос: взгляд замечает лишний блик, сдвинутую линию и чужую фактуру там, где автоматическая проверка видит только успешно сформированный файл.

Источники

Есть следующая задача?Ещё по теме «Обработка фотографий» →