Генерирует короткие видео по текстовому описанию, а при желании - по 1–2 изображениям, с возможностью добавить синхронный звук. Стоимость от 7 до 70 рублей за видео - зависит от разрешения, длительности и включённого звука.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Seedance 1.5 Pro подходит для трёх практических сценариев: генерация видео только по тексту, генерация видео с одним референсным изображением и генерация видео с двумя референсными изображениями. Это удобно для коротких рекламных роликов, анимированных портретов, тизеров для соцсетей и быстрых концепт-видео, где важно удержать стиль, персонажа или композицию.
Каждый вызов создаёт асинхронную операцию. После запуска нужно сохранить id и отдельно проверять статус, пока генерация не завершится.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус.Поддерживаемые сценарии:
input_urls.input_urls.{
"tool": "seedance-1-5-pro",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь это всегда "seedance-1-5-pro".input - параметры конкретного запуска.input, без дополнительного input.input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Текстовое описание будущего ролика. Лучше сразу указывать сцену, действия, движение камеры, стиль, свет, фон и ограничения по композиции. |
input_urls | string[] (url) | Нет | Массив из 1-2 внешних URL изображений. Если поле не передавать, видео будет сгенерировано только по тексту. Разрешены только http/https ссылки. Допустимые расширения для Public API: .jpg, .jpeg, .png, .webp. |
aspect_ratio | enum | Да | Соотношение сторон итогового видео. Варианты: 1:1, 21:9, 4:3, 3:4, 16:9, 9:16. |
resolution | enum | Да | Разрешение итогового ролика. Варианты: 480p, 720p. |
duration | enum | Да | Длительность ролика. Варианты: 4 - 4 секунды, 8 - 8 секунд, 12 - 12 секунд. |
fixed_lens | boolean | Нет | Если true, модель старается держать камеру спокойнее и стабильнее. Удобно для статичных сцен, говорящей головы и товарных кадров. |
generate_audio | boolean | Нет | Если true, вместе с видео генерируется звук. Это повышает итоговую цену, но удобно для сцен с речью, шумами окружения и атмосферой. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seedance-1-5-pro",
"input": {
"prompt": "Кинематографичный пролёт камеры над ночной улицей после дождя, неоновые вывески, мокрый асфальт с отражениями, мягкий туман, реалистичный свет",
"aspect_ratio": "16:9",
"resolution": "480p",
"duration": "4",
"fixed_lens": false,
"generate_audio": false
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedance-1-5-pro',
input: {
prompt:
'Кинематографичный пролёт камеры над ночной улицей после дождя, неоновые вывески, мокрый асфальт с отражениями, мягкий туман, реалистичный свет',
aspect_ratio: '16:9',
resolution: '480p',
duration: '4',
fixed_lens: false,
generate_audio: false,
},
}),
})
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': 'seedance-1-5-pro',
'input': {
'prompt': 'Кинематографичный пролёт камеры над ночной улицей после дождя, неоновые вывески, мокрый асфальт с отражениями, мягкий туман, реалистичный свет',
'aspect_ratio': '16:9',
'resolution': '480p',
'duration': '4',
'fixed_lens': False,
'generate_audio': False,
},
},
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": "seedance-1-5-pro",
"input": {
"prompt": "Плавный наезд камеры на девушку у окна, лёгкое движение волос от ветра, естественный свет, сохранить черты лица и общую композицию кадра",
"input_urls": [
"https://cdn.example.com/source-image-1.jpg"
],
"aspect_ratio": "9:16",
"resolution": "720p",
"duration": "4",
"fixed_lens": true,
"generate_audio": false
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedance-1-5-pro',
input: {
prompt:
'Плавный наезд камеры на девушку у окна, лёгкое движение волос от ветра, естественный свет, сохранить черты лица и общую композицию кадра',
input_urls: ['https://cdn.example.com/source-image-1.jpg'],
aspect_ratio: '9:16',
resolution: '720p',
duration: '4',
fixed_lens: true,
generate_audio: false,
},
}),
})
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': 'seedance-1-5-pro',
'input': {
'prompt': 'Плавный наезд камеры на девушку у окна, лёгкое движение волос от ветра, естественный свет, сохранить черты лица и общую композицию кадра',
'input_urls': ['https://cdn.example.com/source-image-1.jpg'],
'aspect_ratio': '9:16',
'resolution': '720p',
'duration': '4',
'fixed_lens': True,
'generate_audio': False,
},
},
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": "seedance-1-5-pro",
"input": {
"prompt": "Короткий модный ролик с плавным движением камеры вокруг модели, сохранить стиль одежды, свет и настроение, сделать результат цельным и кинематографичным",
"input_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"aspect_ratio": "1:1",
"resolution": "720p",
"duration": "8",
"fixed_lens": false,
"generate_audio": true
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seedance-1-5-pro',
input: {
prompt:
'Короткий модный ролик с плавным движением камеры вокруг модели, сохранить стиль одежды, свет и настроение, сделать результат цельным и кинематографичным',
input_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
aspect_ratio: '1:1',
resolution: '720p',
duration: '8',
fixed_lens: false,
generate_audio: true,
},
}),
})
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': 'seedance-1-5-pro',
'input': {
'prompt': 'Короткий модный ролик с плавным движением камеры вокруг модели, сохранить стиль одежды, свет и настроение, сделать результат цельным и кинематографичным',
'input_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
'aspect_ratio': '1:1',
'resolution': '720p',
'duration': '8',
'fixed_lens': False,
'generate_audio': True,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seedance-1-5-pro",
"cost": 14,
"balance_after": 486,
"created_at": "2026-03-15T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seedance-1-5-pro",
"cost": 14,
"created_at": "2026-03-15T12:00:00Z",
"completed_at": "2026-03-15T12:01:42Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/seedance-1-5-pro/result.mp4"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "seedance-1-5-pro",
"cost": 18,
"created_at": "2026-03-15T12:00:00Z",
"completed_at": "2026-03-15T12:02:10Z",
"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 response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
}
)
const data = await response.json()
После успешного завершения result возвращает готовое видео:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/seedance-1-5-pro/result.mp4"
]
}
type всегда равен "video".urls содержит ссылки на готовые mp4-файлы.Базовая цена зависит от трёх параметров:
resolutiondurationgenerate_audioМинимальная цена - 7 ₽ за генерацию.
| Разрешение | Длительность | Сгенерировать звук | Цена |
|---|---|---|---|
480p | 4 сек | Нет | 7 ₽ |
480p | 8 сек | Нет | 14 ₽ |
480p | 12 сек | Нет | 18 ₽ |
480p | 4 сек | Да | 14 ₽ |
480p | 8 сек | Да | 25 ₽ |
480p | 12 сек | Да | 32 ₽ |
720p | 4 сек | Нет | 14 ₽ |
720p | 8 сек | Нет | 25 ₽ |
720p | 12 сек | Нет | 35 ₽ |
720p | 4 сек | Да | 25 ₽ |
720p | 8 сек | Да | 45 ₽ |
720p | 12 сек | Да | 70 ₽ |
Что влияет на итоговую цену:
generate_audio заметно увеличивает цену.resolution, duration и generate_audio.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию.id.input_urls подходят только внешние http/https URL.input_urls можно передать максимум 2 изображения..jpg, .jpeg, .png, .webp.HEIC/HEIF можно встретить в UI-загрузке, но по URL в Public API они не принимаются.fixed_lens = true полезен для статичных сцен, когда не нужен активный пролёт камеры.generate_audio = true полезен для сцен с речью, атмосферой и шумами окружения, но такой результат может требовать более точного промпта.prompt описаны действие, темп, ракурс и желаемый стиль, тем предсказуемее обычно получается результат.