Быстро превращает картинку или набор референсов (фото/видео) в короткий ролик 720p/1080p, при желании - со звуком. Цена: из изображения - 5-15 ₽/сек., по референсу - 10-30 ₽/сек. (зависит от разрешения и аудио).
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Wan 2.6 Flash генерирует короткие видеоролики в 720p или 1080p из одного изображения или набора референсов. Модель оптимизирована под скорость и удобна для быстрого перебора вариантов.
В API есть два режима:
image_to_video - оживление одного изображения. Вы загружаете картинку и описываете, что должно происходить в кадре. Длительность от 2 до 15 секунд.reference_to_video - видео по набору референсов (фото или видео). Модель ориентируется на загруженные файлы, чтобы сохранить внешний вид персонажа, объекта или стиль. Длительность 5 или 10 секунд.Опционально в обоих режимах можно включить звук, расширение промпта и выбрать количество сцен в ролике.
Каждый вызов создаёт асинхронную операцию. Сразу после запроса API возвращает id, стартовый статус и стоимость, а готовый результат нужно получать отдельной проверкой статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id, стартовый статус и стоимость.У модели два сценария вызова:
generation_type = "image_to_video";generation_type = "reference_to_video".Базовая форма запроса:
{
"tool": "wan-2-6-flash",
"input": {
"...": "..."
}
}
tool - slug нейросети. Для этой модели всегда "wan-2-6-flash".input - параметры конкретного запуска. Набор полей зависит от выбранного generation_type.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
generation_type | enum | Да | Режим генерации. Варианты: image_to_video (видео из одного изображения), reference_to_video (видео по набору референсов). |
prompt | string | Да | Текстовое описание: что происходит в кадре, как двигается камера, какой стиль и настроение. От 3 до 5000 символов. |
image | string (url) | Да (для image_to_video) | Внешний URL исходного изображения. Разрешены только http/https ссылки. Допустимые расширения: .jpg, .jpeg, .png, .webp. Нужен только при generation_type = "image_to_video". |
reference_urls | string[] (url) | Да (для reference_to_video) | Массив внешних URL файлов-референсов. Максимум 5 файлов. Допустимые расширения: .jpg, .jpeg, .png, .webp, .mp4, .mov, .webm. Нужен только при generation_type = "reference_to_video". |
resolution | enum | Да | Разрешение результата. Варианты: 720p, 1080p. Влияет на итоговую цену. |
aspect_ratio | enum | Да (для reference_to_video) | Соотношение сторон. Варианты: 9:16, 16:9. Нужен только при generation_type = "reference_to_video". |
duration_image | number | Нет | Длительность ролика в секундах. От 2 до 15. Используется только при generation_type = "image_to_video". Влияет на итоговую цену. |
duration_reference | enum | Да (для reference_to_video) |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "wan-2-6-flash",
"input": {
"generation_type": "image_to_video",
"prompt": "Девушка медленно поворачивает голову, ветер слегка шевелит волосы, мягкий дневной свет",
"image": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration_image": 5,
"enable_audio": true,
"shot_type": "single"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'wan-2-6-flash',
input: {
generation_type: 'image_to_video',
prompt:
'Девушка медленно поворачивает голову, ветер слегка шевелит волосы, мягкий дневной свет',
image: 'https://cdn.example.com/source-image-1.jpg',
resolution: '720p',
duration_image: 5,
enable_audio: true,
shot_type: 'single',
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "wan-2-6-flash",
"input": {
"generation_type": "image_to_video",
"prompt": "Девушка медленно поворачивает голову, ветер слегка шевелит волосы, мягкий дневной свет",
"image": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration_image": 5,
"enable_audio": True,
"shot_type": "single",
},
},
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": "wan-2-6-flash",
"input": {
"generation_type": "reference_to_video",
"prompt": "Персонаж идёт по улице города на закате, плавное движение камеры вслед, кинематографичный стиль",
"reference_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.png"
],
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration_reference": "10",
"enable_audio": false,
"shot_type": "single"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'wan-2-6-flash',
input: {
generation_type: 'reference_to_video',
prompt:
'Персонаж идёт по улице города на закате, плавное движение камеры вслед, кинематографичный стиль',
reference_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.png',
],
resolution: '1080p',
aspect_ratio: '16:9',
duration_reference: '10',
enable_audio: false,
shot_type: 'single',
},
}),
})
const data = await response.json()
console.log(data)
import requests
response = requests.post(
"https://bratuha.ru/api/v1/operations",
headers={
"Authorization": "Bearer brth_ваш_ключ",
"Content-Type": "application/json",
},
json={
"tool": "wan-2-6-flash",
"input": {
"generation_type": "reference_to_video",
"prompt": "Персонаж идёт по улице города на закате, плавное движение камеры вслед, кинематографичный стиль",
"reference_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.png",
],
"resolution": "1080p",
"aspect_ratio": "16:9",
"duration_reference": "10",
"enable_audio": False,
"shot_type": "single",
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "wan-2-6-flash",
"cost": 50,
"balance_after": 495,
"created_at": "2026-03-30T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "wan-2-6-flash",
"cost": 50,
"created_at": "2026-03-30T12:00:00Z",
"completed_at": "2026-03-30T12:01:14Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/wan-2-6-flash/result.mp4"
]
},
"error_message": null
}
После создания операции сохраните id и используйте его для отдельной проверки статуса:
GET /api/v1/operations/{id}id возвращается сразу после POST /api/v1/operations.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()
console.log(data)
После успешного завершения операция возвращает result в таком формате:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/wan-2-6-flash/result.mp4"
]
}
Что важно знать:
type всегда "video";urls - массив ссылок на готовые mp4-файлы;Итоговая цена считается как ставка за секунду, умноженная на длительность ролика. Длительность при расчёте округляется вверх до целого числа.
Ставка зависит от трёх вещей: типа генерации, разрешения и включённого звука.
image_to_video)| Разрешение | Аудио | Ставка |
|---|---|---|
720p | Нет | 5 ₽/сек |
720p | Да | 10 ₽/сек |
1080p | Нет | 10 ₽/сек |
1080p | Да | 15 ₽/сек |
Длительность: от 2 до 15 секунд (параметр duration_image).
reference_to_video)| Разрешение | Аудио | Ставка |
|---|---|---|
720p | Нет | 10 ₽/сек |
720p | Да | 20 ₽/сек |
1080p | Нет | 20 ₽/сек |
1080p | Да | 30 ₽/сек |
Длительность: 5 или 10 секунд (параметр duration_reference).
image_to_video, 720p, без аудио, 5 секунд: 5 × 5 = 25 ₽;image_to_video, 720p, с аудио, 5 секунд: 5 × 10 = 50 ₽;image_to_video, 1080p, с аудио, 10 секунд: 10 × 15 = 150 ₽;reference_to_video, 720p, с аудио, 5 секунд: 5 × 20 = 100 ₽;reference_to_video, 1080p, с аудио, 10 секунд: 10 × 30 = 300 ₽.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию.queued, затем отдельно проверяете статус по id.image и reference_urls подходят только внешние http/https URL. localhost, private IP и внутренние адреса не принимаются.HEIC/HEIF, которые поддерживаются при загрузке через интерфейс сайта, в Public API по URL не принимаются. Используйте .jpg, .jpeg, .png или .webp.reference_to_video можно загружать как изображения, так и видео (.mp4, .mov, .webm). Максимум 5 файлов.duration_image актуален только для image_to_video, параметр duration_reference - только для reference_to_video.aspect_ratio работает только в режиме reference_to_video. Для image_to_video соотношение сторон определяется автоматически по исходному изображению.multi в shot_type создаёт ролик с несколькими сценами. Между сценами возможны заметные склейки, поэтому для одного плавного ролика лучше использовать single.GET /api/v1/operations/{id} слишком часто. Практически безопасно проверять статус примерно раз в секунду.Длительность ролика. Варианты: 5 (5 секунд), 10 (10 секунд). Нужен только при generation_type = "reference_to_video". Влияет на итоговую цену. |
enable_audio | boolean | Нет | Включить звук в результате. Влияет на итоговую цену. |
enable_prompt_expansion | boolean | Нет | Автоматически расширяет и уточняет промпт перед генерацией. Может улучшить стабильность результата. |
shot_type | enum | Да | Количество сцен в ролике. Варианты: single (один непрерывный кадр), multi (несколько сцен в одном ролике). |
negative_prompt | string | Нет | Что не должно появляться в результате. Максимум 500 символов. Например: "низкое качество, размыто, артефакты, лишние пальцы". |