Перейти к основному содержанию

Seedream 5.0 Pro API: разделение на слои, PSD и цена вызова

Разделение на слои включается параметром layer_decomposition у Seedream 5.0 Pro и Flash. Счёт идёт за каждое возвращённое изображение: от 2 до 17 за вызов.

LaoZhang AI TeamОпубликовано13 мин чтения
Содержание
Обложка: Seedream 5.0 Pro, слои через API — от 2 до 17 изображений за вызов, $0,018 за изображение у Flash и 35–111 секунд до ответа

Разделение на слои (layer decomposition) в Seedream 5.0 — не отдельная модель, а режим обычного эндпоинта генерации изображений: в тело запроса добавляется "layer_decomposition": true и ровно одно входное изображение. В ответ приходит базовое изображение (base image, z_index: 0) и до 16 слоёв PNG с альфа-каналом, у каждого — рамка bounding_box, имя и описание. Режим поддерживают только Seedream 5.0 Pro и Seedream 5.0 Flash, а платите вы за каждое возвращённое изображение, включая базовое.

Что стоит за цифрами ниже. 2 октября 2026 года выполнены три вызова через api.laozhang.ai на размере 1K, все на одном образце из учебника BytePlus: Flash без prompt, Pro без prompt и Flash с названными элементами. Затем скрипт на Python собрал из каждого ответа PNG-слои, превью и PSD. Не запускались: BytePlus ModelArk напрямую, размеры 1.5K, 2K и auto, теги bbox, плакаты с большим количеством текста, сценарии ошибок и открытие PSD в Photoshop. Всё, что касается этих случаев, пересказано по документации и так и помечено. Параметры и ограничения взяты из учебника BytePlus по Seedream 5.0 pro / flash — он существует только на английском, русские формулировки здесь являются пересказом оригинала.

Три вызова на 1K: 14, 14 и 3 изображения за 35–111 секунд

Входной файл — layer_auto.png из учебника BytePlus: трёхмерная иллюстрация без текста, 2784×3441 пикселей, 9,9 МБ. По одному запуску на конфигурацию, поэтому это отдельные наблюдения, а не средние значения.

ВызовМодельpromptВремя до ответаИзображений в ответеБазовое изображениеСумма по прайсу LaoZhang
1seedream-5-0-flash-260915нет94,8 с14 (базовое + 13 слоёв)880×1088, jpeg14 × $0,018 = $0,252
2seedream-5-0-pro-260628нет110,6 с14 (базовое + 13 слоёв)880×1088, jpeg14 × $0,12 = $1,68
3seedream-5-0-flash-260915названы два элемента34,8 с3 (базовое + 2 слоя)880×1088, jpeg3 × $0,018 = $0,054

Все три запроса вернули HTTP 200. Суммы получены умножением опубликованной цены на поле usage.generated_images; журнал списаний в консоли не открывался.

Три вывода, которые меняют работу с этим API. Число изображений определяет модель, а не вы: параметра «сколько слоёв» нет, и счёт заранее известен только как диапазон. Названные в prompt элементы сократили ответ с 14 изображений до 3, время — с 94,8 до 34,8 с, сумму — с $0,252 до $0,054. Flash и Pro нашли по 13 слоёв, но разные: Flash вынес деревянную сцену в отдельный слой, Pro оставил сцену в базовом изображении и отделил укулеле.

Запрос: layer_decomposition, одно изображение и size без пикселей

Рабочий запрос — это обычный вызов генерации изображения с тремя отличиями: layer_decomposition: true, поле image с одним изображением и size из списка 1K, 1.5K, 2K, auto. Точные размеры вида «ширина x высота» в этом режиме не принимаются.

Вот тело, которое отправлялось в первом вызове:

json
{
  "model": "seedream-5-0-flash-260915",
  "image": "https://arkdocs-en.tos-ap-southeast-1.volces.com/images/image-generation/layer_auto.png",
  "layer_decomposition": true,
  "size": "1K",
  "response_format": "url",
  "watermark": false
}

Тот же вызов на Python с библиотекой requests. Адрес, заголовок, тело и таймаут 420 с совпадают с отправленными; в тестовом варианте ключ читался из файла, а в таком сокращённом виде, с переменной окружения, файл не запускался.

python
import json
import os
from pathlib import Path

import requests

body = {
    "model": "seedream-5-0-flash-260915",
    "image": "https://arkdocs-en.tos-ap-southeast-1.volces.com/images/image-generation/layer_auto.png",
    "layer_decomposition": True,
    "size": "1K",
    "response_format": "url",
    "watermark": False,
}
resp = requests.post(
    "https://api.laozhang.ai/v1/images/generations",
    headers={"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"},
    json=body,
    timeout=420,
)
print("HTTP", resp.status_code)
Path("response.json").write_text(json.dumps(resp.json(), indent=2, ensure_ascii=False))

У BytePlus ModelArk тот же JSON уходит на другой адрес и с другим ID модели — с префиксом dola-. Официальный пример из учебника выглядит так; он приведён как первичная форма и здесь не запускался:

bash
curl https://ark.ap-southeast.bytepluses.com/api/v3/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "dola-seedream-5-0-pro-260628",
    "image": "https://arkdocs-en.tos-ap-southeast-1.volces.com/images/image-generation/layer_auto.png",
    "size": "2K",
    "layer_decomposition": true,
    "watermark": false
  }'

Чтобы запрос прошёл с первого раза, проверьте вход по таблице ограничений BytePlus:

Что проверятьТребование в режиме слоёв
Число входных изображенийровно одно; несколько изображений дают ошибку
Форматтолько png и jpeg (обычная генерация принимает ещё webp, bmp, tiff, gif, heic, heif)
Число пикселейот 512×512 до 6000×6000
Соотношение сторонот 1/16 до 16
Размер файлане больше 30 МБ
Способ передачидоступный URL или Base64 в виде data:image/png;base64,..., формат строчными буквами
size1K, 1.5K, 2K, auto; по умолчанию auto
output_formatpng или jpeg, по умолчанию jpeg; действует только на базовое изображение, слои всегда png
watermarkпо умолчанию true: надпись «AI-generated» в правом нижнем углу

Значение auto работает так: вход от 921 600 до 4 624 220 пикселей возвращается в исходных размерах, меньший приводится к 1K, больший — к 2K. В тесте 1K для входа 2784×3441 дал базовое изображение 880×1088 с тем же соотношением сторон.

В маршруте LaoZhang есть два собственных условия из документации шлюза: в теле не должно быть полей sequential_image_generation и stream (ответ HTTP 400), а ключ должен работать в режиме оплаты за вызов — «Usage first» или «Per-call» в настройках токена.

Свои правила разбиения: названия элементов в prompt или теги bbox

Задать, что именно станет слоем, можно двумя способами: перечислить элементы обычными словами или указать рамки координатами. Без prompt модель сама выбирает главные объекты, текст, фон и декоративные детали.

Автоматический режим. В запросах через cURL, Java или Go поле prompt просто не передаётся. Учебник BytePlus отдельно предупреждает, что Python SDK и OpenAI SDK требуют prompt; для них советуют общую инструкцию вроде «разложи основные визуальные элементы». В тесте запрос шёл через requests, без SDK, и без prompt прошёл.

Названные элементы. Третий вызов отличался одним полем:

json
"prompt": "Separate only the central toast lead singer with sunglasses and the toast-shaped electric guitar."

В ответе оказались ровно два слоя с именами «toast-shaped electric guitar» и «central toast lead singer with sunglasses». Базовое изображение сохранило всё остальное, а на месте вокалиста модель дорисовала фургон: лобовое стекло и решётку радиатора. По учебнику, элементы можно дополнительно пометить прямо на входной картинке — каракулями или выделением.

Точные рамки. В prompt вставляются теги bbox с четырьмя числами в шкале 0–1000: левая, верхняя, правая и нижняя граница. Пример из учебника BytePlus (в тестах этот режим не проверялся):

Perform precise layer separation on the image. The text regions to separate are at <bbox>180 64 812 198</bbox>, <bbox>757 210 939 280</bbox>, <bbox>63 212 320 282</bbox>, <bbox>178 714 826 810</bbox>, <bbox>814 819 949 894</bbox>, and <bbox>326 824 669 930</bbox>; the parrot is at <bbox>347 305 642 997</bbox>.

Числа для тегов удобно брать из поля bounding_box.normalized предыдущего ответа: оно в той же шкале.

Пустая строка в prompt — спорное место. Документация LaoZhang утверждает, что поле можно опустить или отправить пустую строку с одинаковым результатом. Руководство EvoLink от 15 августа 2026 года пишет обратное: с пустой строкой автоматическое определение теряется. Речь о двух разных шлюзах, вариант с пустой строкой в тестах не отправлялся, поэтому безопасный выбор один — не передавать ключ prompt вовсе.

Ещё одно ограничение из учебника: если попросить больше слоёв, чем допускает предел в 16, часть информации о слоях может потеряться.

Что приходит в ответе: z_index, bounding_box и файлы крупнее рамок

Массив data содержит базовое изображение и все слои, а порядок наложения задаёт z_index: 0 — база, дальше по возрастанию снизу вверх. Вот ответ третьего вызова; ссылки и описания сокращены, остальное без изменений:

json
{
  "model": "dola-seedream-5-0-flash-260915",
  "created": 1790953817,
  "data": [
    {
      "url": "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/...",
      "size": "880x1088",
      "output_format": "jpeg",
      "z_index": 0
    },
    {
      "url": "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/...",
      "size": "764x698",
      "output_format": "png",
      "z_index": 1,
      "bounding_box": {
        "absolute": [356, 585, 612, 820],
        "normalized": [405, 538, 694, 753]
      },
      "name": "toast-shaped electric guitar",
      "description": "Extract only the toast-shaped light yellow electric guitar..."
    },
    {
      "url": "https://ark-acg-ap-southeast-1.tos-ap-southeast-1.volces.com/...",
      "size": "774x710",
      "output_format": "png",
      "z_index": 2,
      "bounding_box": {
        "absolute": [248, 293, 657, 668],
        "normalized": [282, 269, 745, 613]
      },
      "name": "central toast lead singer with sunglasses",
      "description": "Extract only the central anthropomorphic toast character..."
    }
  ],
  "usage": {
    "input_images": 1,
    "generated_images": 3,
    "output_tokens": 11924,
    "total_tokens": 11924
  }
}

Как читать поля:

  • bounding_box.absolute — [left, top, right, bottom] в пикселях базового изображения.
  • bounding_box.normalized — та же рамка в шкале 0–1000 от ширины и высоты базы.
  • name и description — английская подпись и описание, которые пишет модель. Между запусками они меняются: один и тот же фургон назван «Light green minivan» у Flash и «Light green minibus» у Pro.
  • usage.generated_images включает базовое изображение: 14 означает 13 слоёв.
  • У базового изображения нет ни name, ни bounding_box. В автоматических вызовах z_index шёл от 1 до 13 без пропусков.

Главная ловушка — размер файла слоя не равен размеру его рамки. Гитара пришла файлом 764×698, а её рамка — 256×235 пикселей. В первом вызове стойка микрофона — файл 271×1037 при рамке 103×394, шезлонг — 660×940 при рамке 118×169, то есть примерно в 5,6 раза больше по каждой стороне. Если вставить слой по координатам без масштабирования, он перекроет полкадра.

Схема ответа Seedream: базовое изображение с z_index 0, два PNG-слоя над ним и файл слоя 764×698, который крупнее своей рамки 256×235

Правило сборки из учебника BytePlus: базовое изображение — фон; слои сортируются по возрастанию z_index; для каждого x = left, y = top, w = right − left, h = bottom − top; слой масштабируется до w × h и ставится в точку (x, y). Для собственного холста размером W×H берутся нормализованные координаты:

x = left / 1000 × W
y = top / 1000 × H
w = (right − left) / 1000 × W
h = (bottom − top) / 1000 × H

BytePlus предупреждает, что нормализованные координаты — целые числа, и пересчёт даёт ошибку округления. Из размеров файлов следует полезное свойство: в слое пикселей больше, чем занимает его рамка на базе 1K, так что на холсте немного крупнее слой можно разместить без увеличения. Запас у каждого слоя свой: на холсте шириной 2784, как у исходника, рамка стойки микрофона будет около 320 пикселей в ширину при файле в 271. Это вывод из чисел; глазами на большом холсте он не проверялся.

Ссылки из ответа живут 24 часа, так что файлы нужно скачать сразу. По документации LaoZhang ссылки не отдают заголовки CORS, и клиенту в браузере стоит запрашивать response_format: "b64_json".

PSD API не отдаёт: скрипт на Python собирает его из ответа

Готового PSD в ответе нет: API возвращает JSON и ссылки на отдельные изображения. Утверждение «каждый результат — это PSD», которое встречается на сайтах онлайн-сервисов, описывает их собственную обёртку, а не API. Файл со слоями собирается на вашей стороне.

Скрипт ниже прошёл на всех трёх ответах (Python 3.12, Pillow 12.3.0, psd-tools 1.23.0). Он скачивает изображения, сохраняет каждый слой как layer-NN-имя.png, собирает плоское превью recomposed.png и пишет layers.psd, где каждый слой назван по полю name и стоит по своим координатам absolute.

bash
python3 -m pip install pillow psd-tools
python3 layers_to_psd.py response.json out_dir
python
"""Сохраняет все изображения из ответа Seedream с разделением на слои,
собирает плоское превью и записывает PSD со слоями.

Запуск: python3 layers_to_psd.py response.json out_dir
Нужны: python3 -m pip install pillow psd-tools
"""
import base64
import json
import re
import sys
import urllib.request
from io import BytesIO
from pathlib import Path

from PIL import Image
from psd_tools import PSDImage

response = json.loads(Path(sys.argv[1]).read_text())
response = response.get("response", response)  # подойдёт и запись, где ответ вложен в поле response
out = Path(sys.argv[2])
out.mkdir(parents=True, exist_ok=True)


def load(item):
    if item.get("b64_json"):
        value = item["b64_json"].split(",", 1)[-1]
        return base64.b64decode(value + "=" * (-len(value) % 4))
    with urllib.request.urlopen(item["url"], timeout=120) as download:
        return download.read()


items = sorted(response["data"], key=lambda item: item["z_index"])
base_item, layer_items = items[0], items[1:]
assert base_item["z_index"] == 0 and "bounding_box" not in base_item

content = load(base_item)
ext = "png" if base_item.get("output_format") == "png" else "jpg"
(out / f"layer-00-base.{ext}").write_bytes(content)
base = Image.open(BytesIO(content)).convert("RGBA")
canvas = base.copy()

psd = PSDImage.new("RGBA", base.size)
psd.append(psd.create_pixel_layer(base, name="base", top=0, left=0))

for item in layer_items:
    content = load(item)
    slug = re.sub(r"[^a-z0-9]+", "-", item.get("name", "layer").lower()).strip("-") or "layer"
    (out / f"layer-{item['z_index']:02d}-{slug}.png").write_bytes(content)
    left, top, right, bottom = item["bounding_box"]["absolute"]
    # PNG обычно крупнее своей рамки: сначала масштабируем его до рамки.
    layer = Image.open(BytesIO(content)).convert("RGBA").resize((right - left, bottom - top), Image.LANCZOS)
    canvas.alpha_composite(layer, (left, top))
    psd.append(psd.create_pixel_layer(layer, name=item.get("name", slug), top=top, left=left))
    print(f"z={item['z_index']:>2} file={item['size']:>9} box={right - left}x{bottom - top} at ({left},{top})  {item.get('name')}")

canvas.save(out / "recomposed.png")
psd.save(out / "layers.psd")
print(f"Saved {len(layer_items)} layers + base, recomposed.png and layers.psd in {out}")

Код совпадает с тем, что запускался; на русский переведены только строка документации и комментарии. Результат на тестовых ответах: PSD 880×1088 с 14 именованными пиксельными слоями для автоматических вызовов и с 3 — для вызова с названными элементами. Проверка была одна: файл заново открыт библиотекой psd-tools, сведён в плоское изображение и сравнён с recomposed.png — среднее абсолютное расхождение не больше 0,001. В Photoshop, Photopea и GIMP этот PSD не открывался.

Два ограничения результата. Слои в PSD хранятся в размере рамки на базе 1K, а исходные, более крупные PNG лежат рядом в папке. И все слои растровые: в ответе API нет ничего, что стало бы редактируемым текстовым слоем.

Если PSD нужен без кода, есть браузерный инструмент layerpsd.com того же владельца, что и этот блог. По описанию на сайте, он делит JPG, PNG или WebP на PSD со слоями по цене от $0,018 за слой, без подписки и с одной бесплатной попыткой после входа через Google; в тестах он не участвовал.

Совпадёт ли сборка с оригиналом: расходятся от 4 до 30 % пикселей

Нет, сборка слоёв по bounding_box.absolute в порядке z_index не воспроизводит входное изображение пиксель в пиксель. Мера в таблице — доля пикселей, у которых хотя бы один канал отличается от уменьшенного оригинала больше чем на 32 из 255.

ВызовВынуто слоёвДоля отличающихся пикселейСреднее абсолютное расхождение
Flash, без prompt1330,2 %20,6
Pro, без prompt1312,6 %13,6
Flash, два названных элемента24,0 %6,7

Сравнение трёх вызовов Seedream на 1K: число изображений, время до ответа, сумма по прайсу LaoZhang и доля отличающихся пикселей

Причина видна в самих файлах. Каждый слой — законченный объект: скрытые части дорисованы, иначе его нельзя было бы сдвинуть. Базовое изображение перерисовано за каждым вынутым элементом. Поэтому это не вырезание фона и не маска сегментации, а новая генерация, близкая к оригиналу.

У Flash в автоматическом режиме расхождения заметны глазом. Два размытых персонажа на переднем плане вернулись резкими и с другой формой. Музыкант слева перерисован целым и более крупным. Сцена стала полным диском и закрыла траву, которая была видна в оригинале. Летающие пузыри пропали и из базы, и из слоёв. Pro сохранил размытие переднего плана и пузыри и визуально близок к оригиналу, отличия остались на краях.

Это одна стилизованная трёхмерная картинка и по одному запуску на модель, а не общая оценка качества. Для работы из неё следуют два правила: чем меньше элементов вынимается, тем меньше меняется картинка, и результат нужно смотреть глазами рядом с оригиналом до того, как он уйдёт в макет. Утверждение из руководства EvoLink, что такая сборка воспроизводит оригинал в точности, на этом образце не подтвердилось.

Сколько стоит вызов: цена изображения × от 2 до 17 изображений

Цена вызова равна цене одного изображения, умноженной на число возвращённых изображений, то есть на базовое плюс слои: от 2 до 17. Точную сумму до запуска узнать нельзя, зато известны её границы.

Цены за изображение по состоянию на 2 октября 2026 года:

Маршрут и модельЦена за изображениеИсточник
BytePlus, Seedream 5.0 Flash$0,018прайс BytePlus
BytePlus, Seedream 5.0 Pro, слой до 2,61 млн пикселей (1.5K и ниже)$0,0225прайс BytePlus
BytePlus, Seedream 5.0 Pro, слой больше 2,61 млн пикселей$0,045прайс BytePlus
LaoZhang, Seedream 5.0 Flash$0,018документация LaoZhang
LaoZhang, Seedream 5.0 Pro$0,12, без градации по пикселямдокументация LaoZhang

Те же цены, умноженные на число изображений:

Маршрут и модель3 изображения14 изображений17 изображений (максимум)
Flash, BytePlus или LaoZhang$0,054$0,252$0,306
Pro, BytePlus, все до 2,61 млн пикселей$0,0675$0,315$0,3825
Pro, BytePlus, все больше 2,61 млн пикселей$0,135$0,63$0,765
Pro, LaoZhang$0,36$1,68$2,04

Оговорки к расчёту для BytePlus. Прайс описывает цену слоя и не говорит отдельно, по какой ставке считается базовое изображение; generated_images его включает, поэтому в таблице оплачиваемым считается каждое изображение. Слои одного запроса могут попасть в разные ценовые ступени, и каждый считается по своей. На 1K все изображения теста были далеко от границы 2,61 млн пикселей, но база 2048×2048 при 2K — это уже 4,19 млн пикселей и верхняя ступень. Входное изображение у BytePlus в этом режиме бесплатно: оно одно, а первое не оплачивается. Изображения, заблокированные модерацией, в счёт не идут. Налоги и скидки в расчёт не включены.

Счётом управляют два рычага. Первый — prompt с названными элементами: в тесте он уменьшил число изображений с 14 до 3. Второй — модель: на том же 14-слойном результате Flash стоит $0,252 на любом из двух маршрутов.

Flash или Pro: начните с Flash, а Pro берите напрямую у BytePlus

Начинайте с Flash и переходите на Pro, когда собранная картинка должна оставаться близкой к оригиналу. На тестовом образце Flash ответил быстрее (94,8 с против 110,6 с) и стоит дешевле, но изменил 30,2 % пикселей против 12,6 % у Pro и потерял часть деталей.

Маршрут зависит от модели:

  • Flash. Цена у LaoZhang равна прайсу BytePlus, $0,018 за изображение. Шлюз ничего не добавляет к счёту и избавляет от заведения аккаунта BytePlus.
  • Pro. У LaoZhang изображение стоит $0,12, у BytePlus в режиме слоёв — $0,0225 или $0,045. Разница — 0,12 / 0,0225 ≈ 5,3 раза на нижней ступени и 0,12 / 0,045 ≈ 2,7 раза на верхней. Для регулярной работы с Pro дешевле прямой доступ к BytePlus ModelArk; шлюз оправдан для разовой проверки, когда 14 изображений за $1,68 обходятся дешевле времени на новый аккаунт.

У BytePlus обе модели размещены только в регионе ap-southeast-1; европейского эндпоинта для них в списке моделей нет. Если выбор ещё шире и вопрос в том, какую из двух моделей запускать первой — Nano Banana Pro или Seedream 5.0 Pro, он разобран отдельно, с официальными ценами.

По размеру BytePlus пишет, что 1.5K стоит столько же, сколько 1K, и даёт лучшее качество. Это утверждение документации: в тестах был только 1K.

Почему так долго и что будет при сбое: таймаут от 300 секунд

Вызов синхронный и занимает десятки секунд, причём время растёт вместе с числом изображений: 3 изображения пришли за 34,8 с, 14 — за 94,8 с у Flash и за 110,6 с у Pro. Потоковый режим stream у обеих моделей не поддерживается, поэтому до конца генерации клиент ничего не получает.

Сценарии ошибок в тестах не воспроизводились; ниже — то, что написано в документации.

СитуацияЧто происходитОткуда
Клиентский таймаутДля 1K ставьте не меньше 300 с. Запрос на 2K может идти долго и оплачивается, даже если клиент отключилсяLaoZhang
Один из слоёв не сгенерировалсяПроваливается весь запрос, частичного успеха нетBytePlus
Изображение не удалось разложитьHTTP 400, без списания, можно повторитьLaoZhang
Старая модель (seedream-5-0-260128, seedream-4-5-251128)HTTP 400 с кодом InvalidParameterLaoZhang
В теле есть sequential_image_generation или streamHTTP 400LaoZhang
Ссылки из ответаДействуют 24 часаBytePlus

Для пакетной обработки важен лимит. У аккаунта BytePlus по умолчанию 500 IPM (изображений в минуту) на версию модели, и каждый запрос с разделением на слои сразу резервирует 17 IPM — под максимум из базы и 16 слоёв. Лишнее возвращается только после завершения запроса. Отсюда расчёт: 500 / 17 = 29 запросов можно начать за минуту на свежей квоте (29 × 17 = 493), а не 500, как при обычной генерации по одному изображению. BytePlus называет эти лимиты теоретическим максимумом; у шлюза лимиты могут быть свои.

Полученный слой можно править дальше. По учебнику BytePlus, PNG слоя отправляется как единственный вход обычного запроса Seedream с "background": "transparent" и выходом png — так объект перекрашивается с сохранением прозрачности. Jpeg на входе или output_format: "jpeg" в этом режиме дают ошибку. В тестах этот шаг не выполнялся.

Когда разделение на слои через API не подходит

Режим не подходит, если нужна точная копия исходника, разложенная по слоям: объекты и фон дорисовываются, и собранная картинка отличается от оригинала. Есть и другие случаи:

  • Нужен редактируемый текст. Все слои растровые. В примерах BytePlus группы текста выделяются в отдельные слои, но это картинки с буквами, а не текстовые объекты. Плакаты с большим количеством текста в тестах не проверялись.
  • Нужен один вырезанный объект. Платить за набор слоёв незачем: проще сделать прозрачный фон PNG и проверить, что он настоящий.
  • Исходник в WebP, HEIC или другом формате. Режим принимает только png и jpeg, файл придётся перекодировать заранее.
  • Нужно больше 16 слоёв или холст больше 2K. Предел — базовое изображение плюс 16 слоёв, а size ограничен значениями 1K, 1.5K, 2K и auto. Упоминания «нативного 4K» для Seedream 5.0 Pro с документацией BytePlus расходятся.
  • Требуется обработка в европейском регионе. У BytePlus обе модели доступны только в ap-southeast-1.
  • Нужна твёрдая цена за файл. Число изображений выбирает модель, и по документации LaoZhang оно может отличаться между запусками на одном и том же входе.

Для первого запуска на своём материале хватит одной картинки и модели Flash на самом маленьком размере. Вызов без prompt на 1K покажет, что модель считает слоями и сколько это стоит, а второй вызов с названными элементами или рамками из normalized оставит только нужное. Дальше ответ сохраняется в response.json и передаётся скрипту — на выходе будут PNG-слои, превью для сверки с оригиналом и PSD.

Схема выбора между Artlist, кредитами, Nano Banana 2 и Gemini API для Nano Banana Pro
Генерация изображений

Artlist Nano Banana Pro: когда использовать Artlist, кредиты 400/700 и когда нужен Gemini API

Artlist стоит рассматривать как творческий интерфейс с собственной системой кредитов, а не как замену Gemini API. Сначала проверьте 400/700 кредитов, роль Nano Banana 2 и свои права на коммерческое использование.

12 мин
Руководство по интеграции Gemini 3.1 Flash Image Preview с ComfyUI
Генерация изображений

Интеграция Gemini 3.1 Flash Image Preview с ComfyUI: полное руководство (2026)

Полное руководство по интеграции gemini-3.1-flash-image-preview с ComfyUI. Сравнение всех 5 нод, пошаговая настройка API ключей и биллинга, 3 готовых рабочих процесса и способы снизить стоимость с $0.151 до $0.05 за изображение.

15 мин
Сравнение Gemini 3.1 Flash Image, GPT Image 1.5 и FLUX.2 — полное руководство
Генерация изображений

Gemini 3.1 Flash Image vs GPT Image 1.5 vs FLUX.2: полное сравнение (2026)

Gemini 3.1 Flash Image лидирует по скорости (1-3 сек) и занимает первое место в Artificial Analysis Arena. GPT Image 1.5 превосходит конкурентов в рендеринге текста всего за $0,04 за изображение. FLUX.2 Pro доминирует в фотореализме с рейтингом Elo 1 265. Это руководство сравнивает все три модели по качеству, скорости, ценам и сценариям использования с нормализованными данными, чтобы вы могли выбрать подходящую модель для своего рабочего процесса.

25 мин
Руководство по сравнению цен Nano Banana Pro 4K с каналами от $0,02 до $0,24
Генерация изображений

Nano Banana Pro 4K дёшево: полное руководство по ценам 2026 (экономия до 92%)

Генерация изображений Nano Banana Pro 4K через официальный API Google стоит $0,24, но сторонние каналы предлагают то же качество всего за $0,02 -- экономия 92%. В этом руководстве сравниваются все доступные каналы, включая совершенно бесплатную опцию Nano Banana 2, раскрываются скрытые расходы, завышающие реальные затраты, и приводятся рабочие примеры кода для немедленного начала генерации доступных 4K-изображений.

25 мин
Сравнение API генерации ИИ-изображений 2026 — полное руководство
Генерация изображений

Сравнение API генерации изображений 2026: цены, качество и лучший выбор

По состоянию на февраль 2026 года рынок API генерации ИИ-изображений предлагает более 12 моделей от Google, OpenAI и сторонних разработчиков. Цены варьируются от $0.005 до $0.167 за изображение: GPT Image 1.5 лидирует по качеству (Elo 1264), а Google Imagen 4 Fast предлагает лучшее соотношение цены и качества. Это руководство сравнивает все основные API по ценам, качеству и эффективности.

28 мин