ByteDance Seedream
Модели Seedream в продаже: seedream-5.0-pro и seedream-5.0-lite. Их обслуживают каналы Volcengine (Doubao), а вызов идёт через те же OpenAI-совместимые эндпоинты images, что описаны в разделе Формат изображений OpenAI; на этой странице описано, что меняет адаптер Volcengine.
У моделей Seedream в supported_endpoint_types присутствует image-generation — о чтении этого поля см. Модели.
Эндпоинты
Section titled “Эндпоинты”POST /v1/images/generationsPOST /v1/images/edits/v1/images/generations принимает тело JSON. Для правки по изображению используется /v1/images/edits с исходным изображением, переданным строкой в image; RouteAPI передаёт оба варианта в upstream-эндпоинт генерации изображений (в этом канале Volcengine не предоставляет отдельный эндпоинт правки на основе формы).
Параметры запроса
Section titled “Параметры запроса”| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
model | string | Да | seedream-5.0-pro или seedream-5.0-lite |
prompt | string | Да | Текстовое описание или инструкция правки |
size | string | Нет | Размер или ступень результата. Нормализуется до отправки в Volcengine (см. Нормализация размера) |
image | string | Нет | Исходное изображение для правки, URL http(s) или строка data:image/...;base64,.... Передаётся в теле JSON |
watermark | boolean | Нет | Нужно ли наносить водяной знак; явный false передаётся |
sequential_image_generation | string | Нет | "auto" включает генерацию нескольких изображений; "disabled" отключает её |
sequential_image_generation_options | object | Нет | Параметры последовательной генерации; {"max_images": <int>} задаёт количество |
layer_decomposition | boolean | Нет | Разделяет результат на слои. При включении меняется и способ тарификации запроса (см. Тарификация) |
background | string | Нет | Обработка фона, например "transparent" или "opaque" |
tools | array | Нет | Инструменты upstream, например [{"type": "web_search"}] |
optimize_prompt_options | object | Нет | Оптимизация prompt, например {"mode": "standard"} или {"mode": "fast"} |
Эти поля входят в структуру запроса изображения шлюза и передаются в Volcengine. Пропущенные необязательные поля удаляются из тела upstream, а не отправляются как null. Остальные неизвестные поля JSON отбрасываются — включите сквозную передачу тела запроса на канале, если нужно поле, которое шлюз не моделирует.
Нормализация размера
Section titled “Нормализация размера”Обработка size зависит от модели:
| Модель | Обработка size |
|---|---|
seedream-5.0-pro | Нативные размеры сохраняются как есть: 1K, 1.5K, пиксельные значения вроде 1024x1024 и другие |
seedream-5.0-lite | Пиксельные размеры переписываются в ступень 2K / 3K / 4K |
Для переписываемых моделей ступень определяет длинная сторона: она делится на 1024 и округляется до ближайшего целого (.5 — вверх), затем ограничивается диапазоном 2K–4K. Переданные напрямую ступени, например 2K или 3k, только ограничиваются, а нераспознанные значения вроде auto передаются дальше на проверку Volcengine. Примеры для seedream-5.0-lite:
Запрошенный size | Отправлено в upstream |
|---|---|
1024x1024 | 2K |
2048x2048 | 2K |
1536x1536 | 2K |
1440x2560 | 3K |
3840x2160 | 4K |
1K | 2K |
5K | 4K |
auto | auto |
Генерация изображения
Section titled “Генерация изображения”curl https://api.routeapi.ai/v1/images/generations \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-pro", "prompt": "A misty mountain lake at sunrise, cinematic", "size": "2K" }'Последовательная генерация
Section titled “Последовательная генерация”curl https://api.routeapi.ai/v1/images/generations \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-lite", "prompt": "A series of four postcards from the same coastal town, consistent style", "sequential_image_generation": "auto", "sequential_image_generation_options": { "max_images": 4 } }'Если sequential_image_generation равно "auto", а max_images не задан, предварительная оценка стоимости рассчитывается исходя из 15 изображений при наличии тарификации дополнительных результатов.
Редактирование изображения
Section titled “Редактирование изображения”Передайте исходное изображение строкой в теле JSON. Шлюз передаёт значение image в Volcengine без изменений — это может быть URL http(s) или строка data:image/...;base64,.... Описанная выше нормализация размера применяется и к запросу правки.
curl https://api.routeapi.ai/v1/images/edits \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-pro", "prompt": "Replace the background with a sunset beach, keep the subject unchanged", "image": "https://example.com/photo.png", "size": "2K" }'layer_decomposition: true просит upstream разделить результат на отдельные слои; background: "transparent" запрашивает прозрачный фон. Оба параметра передаются без изменений.
Объект images upstream передаётся вам как есть. Поля, которые можно разбирать:
{ "data": [ { "url": "https://example.com/generated.png", "size": "2048x2048" } ], "usage": { "input_images": 1, "generated_images": 1, "output_tokens": 4096, "total_tokens": 4096 }}- Изображения читаются из
data[].url. Каждый элемент может содержать фактически выданныйsize, который может отличаться от запрошенной ступени. usage.input_imagesиusage.generated_imagesиспользуются при расчёте, когда модель оплачивается за изображение;output_tokens— при расчёте по токенам.
Тарификация
Section titled “Тарификация”Модели Seedream оплачиваются за изображение, если модель настроена таким образом. Если на странице модели показаны ступени размера, ступень выбирается по количеству пикселей отправленного size до выбора канала. Применимую цену см. в разделе Тарификация моделей и на странице модели.
Два момента, специфичных для Seedream:
- Адаптер переписывает
sizeдляseedream-5.0-lite, поэтому выданное изображение может попасть в другую ступень, чем оплаченная. Чтобы не допустить такого несоответствия, модели с оплатой по ступеням размера отклоняются с400при маршрутизации на канал Volcengine — режим сквозной передачи тела не затрагивается, так как тогда адаптер не переписывает тело. layer_decomposition: trueпереключает запрос на конфигурацию цены разложения на слои, если она задана для модели. Изображения-референсы сверх бесплатного лимита и последовательные результаты тоже оплачиваются; применимые значения указаны на странице модели.
Ошибки и ограничения
Section titled “Ошибки и ограничения”| Статус | Значение | Типичная причина |
|---|---|---|
| 400 | Некорректный запрос | Отсутствует model, n больше 128, × в качестве разделителя размера в теле JSON, или модель с оплатой по ступеням размера маршрутизирована на Volcengine |
| 401 | Ошибка аутентификации | API Key отсутствует, недействителен, просрочен или исчерпан |
| 403 | Исчерпан баланс или квота | insufficient_user_quota или pre_consume_token_quota_failed |
| 429 | Превышен лимит запросов | Снизьте параллелизм |
| 500 | Ошибка преобразования или внутренняя ошибка | Запрос не удалось преобразовать, или upstream не вернул изображение |
Ошибки upstream, например неподдерживаемый size или отклонённый prompt, возвращаются со статусом и сообщением upstream, к которым добавлен ID запроса RouteAPI.
Что дальше
Section titled “Что дальше”- Формат изображений OpenAI — общая структура
/v1/imagesи модели OpenAI. - Nano Banana — модели изображений Gemini.
- Модели — найдите модели изображений и подтвердите поддержку
image-generation. - Тарификация моделей — ступени размера и оплата за изображение.