Все запросы Seedream используют один эндпоинт и одно тело JSON:
- Эндпоинт:
POST https://api.laozhang.ai/v1/images/generations - Для генерации передайте промпт.
- Для редактирования или объединения изображений добавьте
imageс одним–десятью референсами. - Параллельные запросы: платформа их не ограничивает и не замедляет;
429возникает из-за нехватки мощностей у поставщика модели, см. Параллельность и 429.

Результат примера генерации ниже: Seedream 5.0, 2K. Промпт: A beautiful sunset over mountains, realistic style
seedream-5-0-260128). Чтобы вызвать другую версию:
- 4.5 или 4.0: поменяйте
model. - 5.0 Flash или 5.0 Pro: поменяйте
modelи убедитесь, что в запросе нетsequential_image_generationиstream. Обе модели отвечают на эти поля ошибкой HTTP 400, а примеры редактирования ниже передают"sequential_image_generation": "disabled", так что сначала удалите эту строку.
Подготовка
1
Создайте ключ для моделей с оплатой за вызов
Seedream — модель с оплатой за вызов (按次). В разделе Управление токенами создайте ключ (или измените существующий) и выберите Режим оплаты (计费模式) — «сначала по использованию» (按量优先, рекомендуется) или «оплата за вызов» (按次计费). Ключ с режимом «сначала по использованию» вызывает также модели с оплатой по использованию; ключ с оплатой за вызов — только модели с оплатой за вызов.Храните ключ в переменной окружения на сервере.

2
Настройте окружение
Экспортируйте ключ и установите
requests, который нужен примерам на Python:Генерация изображения
Этот запрос создаёт изображение 2K без водяного знака и записывает ответ вseedream-generation.json:
data:
Сохранение результата
Скачивайте изображение сразу после ответа. Сохраните скрипт какsave_images.py: он записывает на диск все изображения из ответа, будь то url или b64_json.
save_images.py
Сохранено: seedream-sunset-1.jpg. Откройте файл и проверьте результат.
Генерация на Python
Редактирование изображения
Чтобы отредактировать или перерисовать готовое изображение, добавьте в запросimage. В примере используется публичное тестовое изображение из документации BytePlus, поэтому его можно запустить без изменений:
Объединение до 10 референсных изображений
Чтобы передать несколько референсов, сделайтеimage массивом. Каждый элемент — публичный URL или data URL вида data:image/png;base64,.... Изображения нумеруются в порядке массива, поэтому в промпте можно ссылаться на image 1, image 2 и так далее.
Этот пример отправляет три локальных файла как data URL:
Объединение референсов на Python
Функция принимает от одного до десяти референсов: локальные файлы превращает в data URL, а публичные URL передаёт без изменений.Разбиение изображения на прозрачные слои
Seedream 5.0 Flash (seedream-5-0-flash-260915) и 5.0 Pro (seedream-5-0-pro-260628) умеют разложить готовое изображение на фон и отдельные прозрачные PNG-слои, по одному элементу на слой. Это удобно, чтобы заменить фон, перестроить макет или повторно использовать элементы.
Обе модели берут плату за каждое возвращённое изображение, причём изображение на Pro стоит примерно в 6.7 раза дороже, чем на Flash, поэтому начинайте с Flash. Просьба о прозрачном фоне в обычном промпте альфа-канал не создаёт — его даёт только разбиение на слои.
Запрос на разбиение отличается от обычного редактирования:
- Передайте
layer_decompositionсо значениемtrue. - Передайте в
imageровно одно изображение — строкой или массивом из одного элемента. promptнеобязателен. Если его не передать или передать пустую строку, модель сама найдёт основные элементы.- Укажите
sizeравным1K. Точные размеры в пикселях не принимаются. - Для разбиения допустимы только уровни
1K,1.5K,2Kиauto. - Поддерживают только 5.0 Flash и 5.0 Pro. На
seedream-5-0-260128иseedream-4-5-251128этот параметр возвращает HTTP 400 с кодом ошибкиInvalidParameter.
Отправка запроса на разбиение
image на своё изображение, доступное для публичного скачивания, или передайте data URL. Чтобы использовать 5.0 Pro, поменяйте только model.
Ответ с разбиением на слои
Первый элементdata[] — фон, каждый следующий — отдельный слой. Ответ ниже сокращён до фона и одного слоя:
В
usage есть также output_tokens, но списание зависит только от числа изображений.
Размер файла слоя не обязательно совпадает с его рамкой. В примере PNG 916×529 должен лечь в рамку 359×208, поэтому при обратной сборке масштабируйте каждый слой под его рамку absolute.
Сохранение слоёв и обратная сборка
Скрипт читаетseedream-layers.json, сохраняет каждое изображение с z_index и названием в имени файла и с помощью Pillow вставляет каждый слой на фон в его рамку bounding_box.absolute. Сначала установите Pillow: python3 -m pip install pillow.
save_layers.py
layer-00-base.jpg и layer-04-spaceship.png, а также recomposited.png. Чтобы заменить фон или убрать элемент, перед сборкой подмените файл фона или пропустите нужный слой.
Параметры
5.0 Flash и 5.0 Pro возвращают HTTP 400, если в запросе есть
sequential_image_generation (даже "disabled") или stream. Кроме того, они игнорируют n, так что без разбиения на слои каждый запрос возвращает одно изображение.
Последовательная генерация и разбиение на слои могут вернуть несколько изображений в одном ответе, поэтому сохраняйте каждый элемент data[], как это делают save_images.py, save_all_images и save_layers.py.
Частые вопросы
Какую версию Seedream выбрать?
Выбирайте по задаче:- Низкая цена, скорость или большие объёмы: Seedream 5.0 Flash (
seedream-5-0-flash-260915), $0.018 за изображение. BytePlus позиционирует её для рекламных креативов, изображений товаров, постеров и другого дизайна с текстом. - Наивысшее качество: Seedream 5.0 Pro (
seedream-5-0-pro-260628) — для реалистичных портретов, тонкой фактуры материалов и сложных инструкций. При цене $0.12 за изображение она примерно в 3.4 раза дороже 5.0 и работает медленнее, поэтому для повседневных задач берите 5.0 или Flash. - Выход 3K, последовательная генерация или потоковая передача: Seedream 5.0 (
seedream-5-0-260128). В документации BytePlus эта модель называется Seedream 5.0 lite; она поддерживает выход2Kи3K, максимум 3K. - 4K: Seedream 4.5 (
seedream-4-5-251128) или 4.0 (seedream-4-0-250828). В остальных случаях оставляйте эти две версии, только если от их результата зависит существующий процесс. - Прозрачные слои из готового изображения: разбиение на слои на 5.0 Flash. 5.0 Pro тоже его поддерживает, но изображение стоит примерно в 6.7 раза дороже.
Какие значения принимает size? Можно ли получить 4K?
Используйте одну из двух форм, не обе сразу. Либо передайте уровень разрешения и опишите соотношение сторон в промпте (например, «горизонтальный кадр 16:9»), либо точные размеры в пикселях, например 2848x1600. Уровни разрешения по моделям:
seedream-5-0-flash-260915:1K,1.5K,2K(по умолчанию 2K)seedream-5-0-pro-260628:1K,2Kseedream-5-0-260128:2K,3K(максимум 3K)seedream-4-5-251128:2K,4Kseedream-4-0-250828:1K,2K,4K
- Минимум: 2560×1440 (3 686 400 пикселей) для 5.0 и 4.5, 1280×720 (921 600 пикселей) для 4.0.
- Максимум: 4096×4096 для 4.5 и 4.0, уровень 3K для 5.0.
- 5.0 Flash: от 921 600 до 4 624 220 пикселей всего.
- 5.0 Pro: до примерно 4.19 млн пикселей, например
2048x2048или2720x1530для 16:9. - Соотношение сторон: от 1/16 до 16 на 5.0 Flash, 5.0, 4.5 и 4.0.
1024x1024 на 5.0 и 4.5 вызывает ошибку. С уровнем разрешения 5.0 Flash выбирает соотношение сторон по содержанию, так что для фиксированного соотношения передавайте точные пиксели, например 2560x1440. На 5.0 Flash значения 3K и 4K возвращают HTTP 400. Цена за изображение от размера не зависит.
Разбиение на слои принимает только 1K, 1.5K, 2K или auto, точные пиксели не поддерживаются.
Как работает последовательная генерация и как она оплачивается?
Передайтеsequential_image_generation со значением auto, и модель сама решит по промпту, сколько связанных изображений вернуть, — например, «три изображения одного персонажа утром, днём и ночью».
Чтобы ограничить их число, BytePlus описывает параметр sequential_image_generation_options.max_images (1–15). Референсы вместе с созданными изображениями не могут превышать 15.
В ответе тогда будет несколько изображений в data[], поэтому сохраняйте каждый элемент. Оплачивается каждое возвращённое изображение: четыре изображения от seedream-5-0-260128 стоят $0.14, а референсы бесплатны. Фактическое списание смотрите в журнале вызовов.
5.0 Flash и 5.0 Pro последовательную генерацию не поддерживают: любое значение sequential_image_generation, включая "disabled", возвращает HTTP 400. Для последовательной генерации используйте 5.0 или отправляйте в Flash или Pro по одному запросу на изображение.
Как передать локальное изображение и какие есть ограничения?
Превратите файл в data URL видаdata:image/png;base64,<данные Base64>, указав формат строчными буквами, например png или jpeg. Это делает вспомогательная функция из раздела «Объединение референсов на Python».
BytePlus устанавливает для каждого референса такие ограничения:
- Формат: jpeg, png, webp, bmp, tiff, gif, heic или heif.
- Размер файла: до 30 МБ.
- Размеры: ширина и высота больше 14 пикселей, всего не больше 6000×6000 пикселей.
- Соотношение сторон: от 1/16 до 16.
Как убрать водяной знак?
Передайте"watermark": false, как во всех примерах на этой странице. У BytePlus watermark по умолчанию равен true и добавляет в правый нижний угол метку «AI generated», поэтому для чистого изображения явно задавайте false.
Сколько живут ссылки на результат? Можно ли получить Base64?
По данным BytePlus, ссылки на изображения действуют 24 часа после генерации. Скачивайте изображение сразу после ответа и храните у себя; не сохраняйте полученный URL как постоянный адрес. Чтобы получить изображение прямо в ответе, передайтеresponse_format со значением b64_json. Скрипт save_images.py и примеры на Python поддерживают оба формата.
Списываются ли деньги за неудачные запросы?
Нет. Ответ с кодом не 200, например ошибка параметров или блокировка модерацией, не оплачивается; платите вы только за возвращённые изображения. Таймаут на стороне клиента — не то же самое, что ошибка. Сервер мог уже создать изображение и списать оплату, поэтому перед повторной отправкой проверьте журнал вызовов. Окончательная запись о списаниях — именно журнал вызовов. Чтобы не обрывать ещё выполняющиеся запросы, задавайте таймаут клиента по модели:- 5.0 Flash: не меньше 60 секунд. По данным BytePlus, модель укладывается в 20 секунд; с десятью референсами рассчитывайте примерно на 30 секунд.
- 5.0 Pro: не меньше 240 секунд, потому что запрос обычно занимает около 2 минут.
- Разбиение на слои на 5.0 Flash или 5.0 Pro: не меньше 300 секунд при
1K.
Связанные материалы
- Запуск Seedream 5.0 Flash и 5.0 Pro (на английском): цены, заметки о переходе и сравнение версий
- Сравнение API изображений: Seedream рядом с другими моделями изображений
- Images API: общий формат запроса и ответа
- Цены на API моделей ИИ: актуальные цены и группы Seedream
- Журнал вызовов: модель и списание по каждому запросу
Источники
- API генерации изображений BytePlus ModelArk (на английском): официальные параметры запроса Seedream, диапазоны
sizeи срок жизни ссылок - Руководство BytePlus по генерации изображений (на английском): сравнение моделей, последовательная генерация и ограничения входных изображений
- Руководство пользователя Seedream 4.0 (на английском): советы по промптам и примеры от BytePlus
- Модели и цены в консоли: цены, доступные вашему аккаунту