Инпейнтинг
Отметьте область маской и перерисуйте только её; всё остальное останется без изменений.
Не пишете код? См. Генерация изображений в ваших инструментах.
Перед началом
https://api.ofox.io/v1openai/gpt-image-2.5-flarepip install openai pillowpillow используется для создания маскиТребования к маске
Иллюстрация, а не реальный результат генерации
- PNG с альфа-каналом. JPEG и непрозрачный PNG не подходят.
- Точно такой же размер, как у исходного изображения.
- Прозрачные пиксели перерисовываются; непрозрачные сохраняют оригинал.
- Работает только на эндпоинте редактирования. При отправке на генерацию по тексту игнорируется.
Шаги
Создайте маску
Пропустите этот шаг, если маска у вас уже есть.
Этот фрагмент читает input.png из текущего каталога, делает прозрачным центральный квадрат размером 40% и сохраняет результат как mask.png.
from PIL import Image, ImageDraw
src = Image.open("input.png")
mask = Image.new("RGBA", src.size, (0, 0, 0, 255)) # полностью непрозрачно = сохранить всё
w, h = src.size
ImageDraw.Draw(mask).rectangle( # прозрачная область = то, что перерисовывается
(int(w * 0.3), int(h * 0.3), int(w * 0.7), int(h * 0.7)), fill=(0, 0, 0, 0)
)
mask.save("mask.png")Отправьте запрос
Каждый пример ниже был запущен в неизменном виде. Результат сохраняется в файл output.png в текущем каталоге.
cURL
# mask.png: того же размера, что input.png, с альфа-каналом; прозрачная область = то, что перерисовывается
curl -s https://api.ofox.io/v1/images/edits \
-H "Authorization: Bearer YOUR_OFOX_API_KEY" \
-F "model=openai/gpt-image-2.5-flare" \
-F "image=@input.png" \
-F "mask=@mask.png" \
-F "prompt=An orange cat sitting in the center, background and everything else unchanged" \
-F "quality=low" \
-o response.json
jq -r '.data[0].b64_json' response.json | base64 --decode > output.pngКак писать промпт
Описывайте всё изображение таким, каким оно должно стать, а не только то, что нужно добавить.
Результат по замерам
За пределами маски изображение почти не меняется: среднее отличие пикселей от оригинала — менее 2/255.
Для сравнения: при редактировании того же изображения без маски та же область изменилась на 120/255.
Устранение неполадок
Другие ошибки см. в полной таблице ошибок.
Официальная документация
Документация OpenAI описывает поведение при прямом обращении к OpenAI. При вызове через OfoxAI приоритет имеют результаты замеров из этого раздела. Например, для редактирования не нужно закреплять провайдера.