Создаёт изображения по текстовому описанию, редактирует их по загруженным референсам и умеет делать прозрачный фон. Цена зависит от разрешения: 1K и 1.5K — 4 ₽, 2K — 5 ₽, 3K — 10 ₽ за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Seedream 5.5 рисует изображения по текстовому описанию и правит готовые картинки по заданию: меняет сцену и детали, переносит предметы и стиль с других снимков. Модель делает реалистичные фотографии и умеет отдавать PNG с прозрачным фоном, поэтому её берут для рекламных кадров, карточек товаров, иллюстраций, стикеров и логотипов. Размер результата - до 3K, то есть около 8 мегапикселей.
Режим выбирается сам по запросу:
image_urls не передан или пустой. Модель рисует новое изображение по prompt.image_urls есть хотя бы одна ссылка (до 10). Модель меняет изображения по prompt или собирает из них одну картинку.Каждый запрос создаёт асинхронную операцию: сразу приходит id и статус queued, а готовое изображение нужно забрать отдельным запросом по этому id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Режимы:
image_urls;image_urls;image_urls.{
"tool": "seedream-5-5",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "seedream-5-5".input - параметры запуска, все поля передаются прямо внутри этого объекта.prompt: остальные поля можно не передавать, тогда работают значения по умолчанию из описания параметров.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Что нарисовать или что изменить. От 3 до 5000 символов. В правке на изображения можно ссылаться по номеру: @image1, @image2 - номер совпадает с порядком ссылок в image_urls. |
image_urls | string[] | Нет | Внешние http/https ссылки на изображения .jpg, .jpeg, .png, .webp, до 10 штук. Без ссылок - создание, со ссылками - правка. На цену не влияет. |
resolution | enum | Нет | Размер результата и цена: 1k, 1.5k, 2k, 3k. 3k - около 8 Мп, например 3840×2160 при 16:9. Если не передать - 2k. |
aspect_ratio | enum | Нет | Пропорции результата: auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 5:4, 4:5, 21:9, 9:21, 2:1, 1:2, 3:1, 1:3. auto берёт пропорции загруженного изображения, без изображений получится 1:1. Если не передать - auto. |
output_format | enum | Нет | Формат файла: png или jpeg. Если не передать - png. |
background | enum | Нет | Фон PNG: auto - модель решает сама по заданию, transparent - прозрачный, opaque - непрозрачный. При output_format: "jpeg" поле игнорируется. Если не передать - auto. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-5-5",
"input": {
"prompt": "Уютное уличное кафе в Лиссабоне на закате: бариста протягивает чашку кофе через стойку, тёплый свет, синяя плитка азулежу, меловая доска с меню. Фотореализм, съёмка на 35 мм",
"resolution": "2k",
"aspect_ratio": "16:9",
"output_format": "jpeg"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-5-5',
input: {
prompt: 'Уютное уличное кафе в Лиссабоне на закате: бариста протягивает чашку кофе через стойку, тёплый свет, синяя плитка азулежу, меловая доска с меню. Фотореализм, съёмка на 35 мм',
resolution: '2k',
aspect_ratio: '16:9',
output_format: 'jpeg',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-5-5',
'input': {
'prompt': 'Уютное уличное кафе в Лиссабоне на закате: бариста протягивает чашку кофе через стойку, тёплый свет, синяя плитка азулежу, меловая доска с меню. Фотореализм, съёмка на 35 мм',
'resolution': '2k',
'aspect_ratio': '16:9',
'output_format': 'jpeg',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-5-5",
"input": {
"prompt": "Керамическая кружка цвета морской волны с тонкой золотой каймой, вид спереди, мягкий студийный свет, без подставки и без тени",
"resolution": "1.5k",
"aspect_ratio": "1:1",
"output_format": "png",
"background": "transparent"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-5-5',
input: {
prompt: 'Керамическая кружка цвета морской волны с тонкой золотой каймой, вид спереди, мягкий студийный свет, без подставки и без тени',
resolution: '1.5k',
aspect_ratio: '1:1',
output_format: 'png',
background: 'transparent',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-5-5',
'input': {
'prompt': 'Керамическая кружка цвета морской волны с тонкой золотой каймой, вид спереди, мягкий студийный свет, без подставки и без тени',
'resolution': '1.5k',
'aspect_ratio': '1:1',
'output_format': 'png',
'background': 'transparent',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
aspect_ratio не передан, поэтому пропорции берутся из исходного снимка.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-5-5",
"input": {
"prompt": "Сделай на снимке дождливый синий вечер: капли на окне, тёплые лампы внутри кафе. Людей и композицию не меняй",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"resolution": "2k",
"output_format": "jpeg"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-5-5',
input: {
prompt: 'Сделай на снимке дождливый синий вечер: капли на окне, тёплые лампы внутри кафе. Людей и композицию не меняй',
image_urls: ['https://cdn.example.com/source-image-1.jpg'],
resolution: '2k',
output_format: 'jpeg',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-5-5',
'input': {
'prompt': 'Сделай на снимке дождливый синий вечер: капли на окне, тёплые лампы внутри кафе. Людей и композицию не меняй',
'image_urls': ['https://cdn.example.com/source-image-1.jpg'],
'resolution': '2k',
'output_format': 'jpeg',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Номер в @image1, @image2 - это порядок ссылки в image_urls.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-5-5",
"input": {
"prompt": "Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/reference-image-2.png",
"https://cdn.example.com/reference-image-3.jpg"
],
"resolution": "3k",
"aspect_ratio": "3:4",
"output_format": "jpeg"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedream-5-5',
input: {
prompt: 'Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
'https://cdn.example.com/reference-image-3.jpg',
],
resolution: '3k',
aspect_ratio: '3:4',
output_format: 'jpeg',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-5-5',
'input': {
'prompt': 'Надень на человека с @image1 куртку с @image2 и поставь его на фоне набережной с @image3. Лицо и позу сохрани',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/reference-image-2.png',
'https://cdn.example.com/reference-image-3.jpg',
],
'resolution': '3k',
'aspect_ratio': '3:4',
'output_format': 'jpeg',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seedream-5-5",
"cost": 5,
"balance_after": 495,
"created_at": "2026-11-07T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seedream-5-5",
"cost": 5,
"created_at": "2026-11-07T12:00:00Z",
"completed_at": "2026-11-07T12:00:25Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-5-5/image-1.jpeg"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "seedream-5-5",
"cost": 5,
"created_at": "2026-11-07T12:00:00Z",
"completed_at": "2026-11-07T12:00:09Z",
"result": null,
"error_message": "Не удалось сгенерировать изображение по этому запросу"
}
Сохраните id из ответа на создание и проверяйте статус операции по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const status = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: { Authorization: 'Bearer brth_ваш_ключ' },
},
)
const result = await status.json()
В обоих режимах приходит одно изображение:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-5-5/image-1.png"
]
}
type - всегда "image".urls - массив с одной ссылкой на готовое изображение в формате из output_format.Если операция завершилась с ошибкой, result будет null, а причина придёт в error_message.
Цена зависит только от resolution и считается за одно изображение:
resolution | Цена |
|---|---|
1k | 4 ₽ |
1.5k | 4 ₽ |
2k | 5 ₽ |
3k | 10 ₽ |
resolution не передан, считается 2k: 5 ₽.image_urls, пропорции, формат и фон на цену не влияют.1.5k стоит столько же, сколько 1k, поэтому 1k имеет смысл только ради меньшего файла.Idempotency-Key: повтор того же запроса в течение 24 часов вернёт исходную операцию без повторного списания. Без заголовка повтор создаёт новую операцию и списывает деньги ещё раз.max_price в теле запроса, чтобы сервер отклонил запуск дороже согласованной суммы до списания.queued, затем проверяйте статус по id раз в 2-3 секунды.http/https ссылками на .jpg, .jpeg, .png или .webp, не больше 10 ссылок в image_urls.output_format: "png" и background: "transparent". При jpeg поле background игнорируется.validation_error.