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

Попробуй объяснить словами, какой предмет на фото надо поменять. «Вазу слева. Нет, другую. Ту, что ближе к окну».
Словами показывать неудобно. Пальцем — легко. Любой ребёнок обведёт нужное за секунду.
И вот что поменялось. 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)





