Генерирует изображения по текстовому описанию и умеет редактировать картинку по загруженным референсам. Цена - 5 рублей за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Seedream 4.5 генерирует изображения по текстовому описанию. Если вместе с текстом передать одно или несколько изображений-референсов, модель будет опираться на них - сохранять похожий образ персонажа, предмет, стиль или композицию и создавать новую версию.
Типичные сценарии:
n).Каждый вызов API создаёт асинхронную операцию. Сначала вы получаете id и статус queued, затем проверяете готовность по этому id.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус.Модель поддерживает два режима:
prompt (и опционально size, resolution, n).prompt передаётся массив изображений в image_urls.{
"tool": "seedream-4-5",
"input": {
"prompt": "...",
"size": "1:1",
"resolution": "4K",
"n": 1
}
}
tool - slug нейросети. input содержит параметры конкретного запроса. Набор полей зависит от сценария: при генерации из текста image_urls не передаётся, при работе с референсами - передаётся.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Текстовое описание нужного изображения. Максимум 3000 символов. Чем конкретнее описание (объект, фон, стиль, ракурс, освещение), тем точнее результат. |
image_urls | string[] (url) | Нет | Массив внешних URL изображений-референсов. Разрешены только http/https ссылки. Максимум файлов: 10. Допустимые расширения: .jpg, .jpeg, .png. Если не передан, модель генерирует изображение только по тексту. |
size | enum | Да | Соотношение сторон. Варианты: auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9, 9:21. При генерации из текста значение auto работает как 1:1. |
resolution | enum | Да | Качество изображения. Варианты: 4K (высокая детализация, подходит для печати), 2K (быстрее, подходит для черновиков). |
n | number | Да | Количество изображений за один запрос. От 1 до 15. Итоговая цена пропорциональна этому значению. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-4-5",
"input": {
"prompt": "Уютная кофейня с большими окнами, мягкий утренний свет, акварельный стиль",
"size": "16:9",
"resolution": "4K",
"n": 2
}
}'
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-4-5',
input: {
prompt: 'Уютная кофейня с большими окнами, мягкий утренний свет, акварельный стиль',
size: '16:9',
resolution: '4K',
n: 2,
},
}),
})
const data = await response.json()
console.log(data.id)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-4-5',
'input': {
'prompt': 'Уютная кофейня с большими окнами, мягкий утренний свет, акварельный стиль',
'size': '16:9',
'resolution': '4K',
'n': 2,
},
},
timeout=30,
)
print(response.json())
Передайте массив image_urls с одним или несколькими изображениями. Модель будет опираться на них при генерации - сохранит похожий образ, стиль или композицию.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedream-4-5",
"input": {
"prompt": "Тот же персонаж на фоне ночного города, неоновые вывески, кинематографичный свет",
"image_urls": [
"https://cdn.example.com/image-1.jpg",
"https://cdn.example.com/image-2.jpg"
],
"size": "auto",
"resolution": "4K",
"n": 1
}
}'
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-4-5',
input: {
prompt: 'Тот же персонаж на фоне ночного города, неоновые вывески, кинематографичный свет',
image_urls: [
'https://cdn.example.com/image-1.jpg',
'https://cdn.example.com/image-2.jpg',
],
size: 'auto',
resolution: '4K',
n: 1,
},
}),
})
const data = await response.json()
console.log(data.id)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seedream-4-5',
'input': {
'prompt': 'Тот же персонаж на фоне ночного города, неоновые вывески, кинематографичный свет',
'image_urls': [
'https://cdn.example.com/image-1.jpg',
'https://cdn.example.com/image-2.jpg',
],
'size': 'auto',
'resolution': '4K',
'n': 1,
},
},
timeout=30,
)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seedream-4-5",
"cost": 10,
"balance_after": 490,
"created_at": "2026-03-13T12:00:00Z"
}
В этом примере cost равен 10, потому что запрошено 2 изображения по 5 ₽ каждое.
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seedream-4-5",
"cost": 10,
"created_at": "2026-03-13T12:00:00Z",
"completed_at": "2026-03-13T12:00:18Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-4-5/image-1.jpg",
"https://storage.bratuha.ru/results/seedream-4-5/image-2.jpg"
]
},
"error_message": null
}
Количество ссылок в urls соответствует значению n в запросе.
После создания операции сохраните 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()
console.log(result.status)
Проверяйте статус периодически. Операция проходит через состояния queued → processing → completed (или failed).
После завершения операции поле result содержит объект с типом image:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/seedream-4-5/image-1.jpg"
]
}
type - всегда image.urls - массив ссылок на сгенерированные изображения. Количество ссылок равно значению n из запроса.5 × n, где n - количество запрошенных изображений.Ставка умножается на значение поля Количество изображений. Минимум: 1. Максимум: 15.
| Прайсинг (служебное поле) | Ставка |
|---|---|
| default | 5 ₽ |
Примеры:
POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию.queued, затем проверяете статус по id.http/https ссылки без localhost, loopback и private IP..jpg, .jpeg, .png), иначе API вернёт validation_error.HEIC/HEIF, которые поддерживаются при загрузке файлов в UI, к Public API по URL не относятся.image_urls) значение size: "auto" работает как 1:1. Если нужно другое соотношение сторон, укажите его явно.