Что собрать

Обведи пальцем на фото — и поменяется только это

Иллюстрация: на снимке комнаты от руки обведено кресло, и только оно стало зелёным

Попробуй объяснить словами, какой предмет на фото надо поменять. «Вазу слева. Нет, другую. Ту, что ближе к окну».

Словами показывать неудобно. Пальцем — легко. Любой ребёнок обведёт нужное за секунду.

И вот что поменялось. 4 ноября OpenAI добавила в API редактирование по пометкам. Ты отдаёшь модели фото и отдельный прозрачный слой с каракулями. Модель смотрит, что ты обвёл, и меняет это.

Идея в одну строку: страничка, где ты фоткаешь комнату, обводишь кресло пальцем, пишешь «зелёное» — и сразу видишь, как оно будет смотреться.

Ещё недавно для этого надо было словами объяснять, где вещь, или аккуратно рисовать маску. Теперь хватает кривого круга.

Где тут хитрость

Пометки — это не рисунок поверх фото. В этом вся тонкость. В запросе едут два файла:

  • image — твоё фото, чистое;
  • markup — прозрачный PNG, на котором только линии.

Склеишь их в одну картинку — ничего не выйдет. Документация прямо запрещает расплющивать слой на фото.

Вторая ловушка хитрее. Слой должен совпасть с фото по ширине и высоте до пикселя. А на экране снимок с телефона показан маленьким. Рисуешь на маленьком — получаешь слой 400×300 для фото 4032×3024.

Лечится одним приёмом. Сначала уменьшаешь фото на холсте, скажем, до 1536 пикселей по длинной стороне. Потом делаешь слой того же размера. И отправляешь оба. Заодно исчезает проблема с перевёрнутыми снимками: холст уже развернул фото как надо.

И третья. В примере OpenAI в конце промпта стоит фраза: убери красный круг с готового фото. Заодно там сказано, что всё остальное должно остаться как было. Эти две просьбы ты пишешь сам.

Чему научишься

  • Рисовать на холсте. Палец или мышь, линия, кнопка «стереть». Это <canvas> — полезно само по себе.
  • Понимать прозрачность. Почему PNG умеет «ничего», а JPEG нет.
  • Отправлять файлы на сервер. Два файла и текст в одном запросе.
  • Прятать ключ. Запрос идёт через твой сервер, в браузере ключа быть не должно.

Готовый стартовый промпт

Слабый промптСделай приложение, где можно редактировать фото нейросетью.
Сильный промптСобери маленькую веб-страницу с сервером на Node. Пользователь загружает фото. Страница рисует его на холсте, уменьшив до 1536 пикселей по длинной стороне. Поверх лежит второй холст того же размера с прозрачным фоном: на нём пользователь рисует красную линию пальцем или мышью, есть кнопка «Очистить». Под фото поле «Что поменять?» и кнопка «Поменять». Сервер отправляет multipart-запрос в OpenAI POST /v1/images/edits: model gpt-image-2.6-flare, quality medium, image — уменьшенное фото, markup — PNG со второго холста, prompt — текст пользователя и дальше по-английски: «Apply this change only inside the red marks. Keep everything else unchanged. Remove the red marks from the finished photo.» Не склеивай холсты. Проверь перед отправкой, что ширина и высота у обоих совпадают. Декодируй b64_json и покажи результат рядом с оригиналом с ползунком до/после, подгоняя обе картинки под один размер на экране. Ключ API только на сервере. Если запрос отклонён, покажи текст ошибки. Без аккаунтов и базы данных.

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

Что в итоге

Ты фоткаешь свою комнату и обводишь кресло. Пишешь: «тёмно-зелёный бархат». Ждёшь полминуты. Рядом появляется та же комната, те же шторы и тот же свет, только кресло другое. Двигаешь ползунок и сравниваешь.

То же самое работает с чем угодно. Покрасить стену, пока краска ещё в магазине. Убрать пакет с пола на фото для объявления. Примерить полку над диваном.

В замере через стороннего посредника похожая правка на старшей модели заняла 35 секунд и вышла около 4 центов. Модель заменила ровно обведённое, а красные линии в картинку не перенесла. Там же на слой дописали короткую заметку прямо рядом с кругом — это тоже работает. Цены посредника не равны ценам OpenAI, поэтому посмотри на счёт после первого запуска. Отдельной платы за пометки OpenAI не берёт.

Честно о рамках. Модель иногда всё же трогает соседние детали, поэтому результат надо смотреть глазами. Готовая картинка может вернуться другого размера: у того же автора 1360×768 превратились в 1668×943. Нужен ключ OpenAI API с деньгами на счету. И фотографии бери свои: чужих людей без спроса не переделывай.

Самое приятное тут в другом. Ты больше не описываешь, где вещь. Ты на неё показываешь.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение

Источник: Image generation — Guide an edit with markup (OpenAI)

Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →