OpenAI предлагает три модели для генерации изображений, каждая из которых подходит для разных задач и бюджетов. DALL·E 2 — модель предыдущего поколения: более доступная по цене и при этом способная создавать изображения достойного качества. DALL·E 3 — более новая и мощная версия, обеспечивающая лучшее качество и высокое разрешение. GPT-Image 1 — самая продвинутая на сегодняшний день модель, которая превосходно понимает инструкции, точно воспроизводит текст на изображениях, поддерживает сложное редактирование и обладает богатой базой знаний о реальном мире.
Формат ответа для моделей DALL·E и GPT-Image 1 отличается. В первом случае модель возвращает ссылки на созданные изображения, во втором — base64-кодированные данные изображения.
curl -X POST "https://api.proxyapi.ru/openai/v1/images/generations" \ -H "Authorization: Bearer <КЛЮЧ>" \ -H "Content-type: application/json" \ -d '{ "model": "gpt-image-1", "prompt": "Стеклянная бутылка, внутри которой плывет корабль посреди шторма" }' | jq -r '.data[0].b64_json' | base64 --decode > image.png
curl -X POST "https://api.proxyapi.ru/openai/v1/images/generations" \ -H "Authorization: Bearer <КЛЮЧ>" \ -H "Content-type: application/json" \ -d '{ "model": "dall-e-3", "prompt": "Стеклянная бутылка, внутри которой плывет корабль посреди шторма" }'
Эндпоинт для редактирования изображений позволяет:
- Редактировать существующие изображения
- Генерировать новые изображения, используя другие изображения в качестве референса
- Редактировать отдельные части изображения, загружая само изображение и маску, указывающую, какие области должны быть заменены (этот процесс называется инпейтинг)
Редактирование изображений доступно только для моделей GPT-Image 1 и DALL·E 2
Вы можете использовать одно или несколько изображений в качестве референса для генерации нового изображения.
В этом примере мы используем 4 исходных изображения, чтобы сгенерировать новое изображение подарочной корзины, содержащей предметы с референсных изображений.
curl -s -D >(grep -i x-request-id >&2) \ -o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) \ -X POST "https://api.proxyapi.ru/openai/v1/images/edits" \ -H "Authorization: Bearer <КЛЮЧ>" \ -F "model=gpt-image-1" \ -F "image[]=@body-lotion.png" \ -F "image[]=@bath-bomb.png" \ -F "image[]=@incense-kit.png" \ -F "image[]=@soap.png" \ -F 'prompt=Создай фотореалистичное изображение подарочной корзины на белом фоне, подписанной "Отдых и восстановление" с лентой и рукописным шрифтом, содержащей все предметы из референсных изображений'
В этом примере мы используем изображение и маску, чтобы заменить часть изображения на другое изображение.
curl -s -D >(grep -i x-request-id >&2) \ -o >(jq -r '.data[0].b64_json' | base64 --decode > clouds.png) \ -X POST "https://api.proxyapi.ru/openai/v1/images/edits" \ -H "Authorization: Bearer <КЛЮЧ>" \ -F "model=gpt-image-1" \ -F "mask=@mask.png" \ -F "image[]=@clouds.png" \ -F 'prompt=Небо в облаках, одно из которых напоминает слона'
- Изображение, которое вы редактируете, и маска должны быть одного формата и одинакового размера (менее 25MB).
- Маска также должна содержать альфа-канал. Если вы используете графический редактор для создания маски, обязательно сохраните её с альфа-каналом.
Вы можете задать следующие параметры:
- Размер (size): размеры изображения (например, 1024x1024, 1024x1536)
- Качество (quality): качество рендеринга (low, medium, high)
- Формат (format): формат выходного файла (по умолчанию PNG; также доступны JPEG и WebP)
- Сжатие (compression): уровень сжатия (0–100%) для форматов JPEG и WebP
- Фон (background): прозрачный или непрозрачный
Параметры size, quality и background поддерживают значение auto
, при котором модель автоматически выбирает оптимальное значение на основе запроса.
- 1024x1024 (квадрат, стандарт)
- 1536x1024 (горизонтальный)
- 1024x1536 (вертикальный)
- auto (по умолчанию)
- low
- medium
- high
- auto (по умолчанию)
- По умолчанию: PNG (с поддержкой прозрачности)
- Также доступны: JPEG, WebP
- Для JPEG и WebP можно указать
output_compression
(например,output_compression=50
— сжатие на 50%)
- Поддерживается только в форматах PNG и WebP
- Для включения прозрачности укажите параметр
background=transparent
Рекомендуется использовать quality=medium
или high
для наилучшего результата
Модель GPT-Image 1 для генерации изображений — мощный и универсальный инструмент, однако у неё есть некоторые ограничения:
- Задержка: Обработка сложных запросов может занимать до 2 минут.
- Отображение текста: Хотя точность генерации текста значительно улучшилась по сравнению с серией DALL·E, модель всё ещё может допускать неточности в расположении и чёткости текста.
- Постоянство: Модель способна создавать визуально согласованные изображения, но может испытывать трудности с повторяющимися персонажами или элементами бренда в нескольких генерациях.
- Контроль композиции: Несмотря на улучшенное следование инструкциям, модель может ошибаться в точном расположении элементов в структурированных или чувствительных к макету композициях.
Все запросы и сгенерированные изображения проходят фильтрацию в соответствии с правилами провайдера.
Для генерации изображений с использованием gpt-image-1
можно управлять строгостью модерации с помощью параметра moderation
. Поддерживаются следующие значения:
- auto (по умолчанию): стандартная фильтрация, ограничивающая создание потенциально неприемлемого по возрасту контента
- low: менее строгая фильтрация