Генерирует короткие видео из изображения и делает плавный переход (морфинг) между двумя кадрами по вашему описанию. Цена варьируется от 56 до 480 рублей за одно видео - зависит от длительности (5/8/10 сек), разрешения (360p-1080p) и включения аудио.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
PixVerse 5.6 делает короткие ролики на 5, 8 или 10 секунд из готовых картинок. Можно оживить одно изображение: модель добавит движение, камеру и, если нужно, звук. А можно дать первый и последний кадр, и модель построит между ними плавный переход. Подходит для анимированных обложек, роликов для соцсетей, карточек товаров и эффектных «было - стало».
Основные сценарии:
pixverse_generation_type: "image_to_video", картинка становится первым кадром ролика.pixverse_generation_type: "transition", ролик начинается с первого кадра и приходит ко второму.Каждый вызов создаёт асинхронную операцию. После запуска сохраните id и проверяйте статус отдельным запросом.
POST /api/v1/operationsAuthorization: Bearer brth_...id операции и стартовый статус queued.Сценарий задаёт параметр pixverse_generation_type:
image_to_video - видео из одного изображения (нужен image_url);transition - переход между кадрами (нужен first_image_url, end_image_url по желанию, можно выбрать aspect_ratio).{
"tool": "pixverse-5-6",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "pixverse-5-6".input - параметры запуска. Все поля передаются прямо внутри этого объекта, без дополнительной вложенности.image_to_video нужна одна картинка в image_url, в transition - кадры в first_image_url и end_image_url.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
pixverse_generation_type | enum | Да | Сценарий. image_to_video - видео из изображения, transition - переход между кадрами. Если поле не передать, используется image_to_video. |
prompt | string | Да | Что происходит в ролике: действие, движение камеры, настроение, звук. От 3 до 4000 символов. Нужен в обоих сценариях. |
image_url | string (url) | Да, для image_to_video | Ссылка на изображение, из которого делается ролик. Только в сценарии image_to_video. Один файл: jpg, jpeg, png или webp. |
first_image_url | string (url) | Да, для transition | Первый кадр перехода. Только в сценарии transition. Один файл: jpg, jpeg, png или webp. |
end_image_url | string (url) | Нет | Последний кадр перехода. Только в сценарии transition. Если не передать, модель сама решит, чем закончить ролик. Форматы те же. |
aspect_ratio | enum | Нет | Соотношение сторон ролика. Только в сценарии transition, если не указано - 16:9. Варианты: 16:9, 4:3, 1:1, 3:4, 9:16. В image_to_video пропорции берутся из картинки, поле игнорируется. |
resolution | enum | Да | Разрешение: 360p, 540p, 720p или 1080p. Если не указать - 720p. 1080p не сочетается с duration: "10". |
duration | enum | Да | Длительность ролика в секундах, строкой: "5", "8" или "10". Если не указать - "5". Число без кавычек не подходит. |
generate_audio_switch | boolean | Нет | Добавить к ролику звук: фон, эффекты, речь по заданию. По умолчанию false. Заметно повышает цену. |
thinking_type | enum | Да | Улучшение задания перед генерацией: auto - модель решает сама, enabled - всегда дописывать детали, disabled - использовать задание как есть. Если не указать - auto. |
use_negative_prompt | boolean | Нет | Включите, если хотите передать negative_prompt. По умолчанию false. |
negative_prompt | string | Нет | Чего не должно быть в ролике, например blurry, text, watermark. Передавайте вместе с use_negative_prompt: true. |
Ссылки на картинки передавайте как внешние http/https URL с расширением jpg, jpeg, png или webp. Файл должен открываться без авторизации, размер - до 128 МБ.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "pixverse-5-6",
"input": {
"pixverse_generation_type": "image_to_video",
"prompt": "Девушка в жёлтом плаще оборачивается и улыбается, ветер шевелит волосы, камера медленно приближается",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration": "5",
"generate_audio_switch": false,
"thinking_type": "auto"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'pixverse-5-6',
input: {
pixverse_generation_type: 'image_to_video',
prompt: 'Девушка в жёлтом плаще оборачивается и улыбается, ветер шевелит волосы, камера медленно приближается',
image_url: 'https://cdn.example.com/source-image-1.jpg',
resolution: '720p',
duration: '5',
generate_audio_switch: false,
thinking_type: 'auto',
},
}),
})
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': 'pixverse-5-6',
'input': {
'pixverse_generation_type': 'image_to_video',
'prompt': 'Девушка в жёлтом плаще оборачивается и улыбается, ветер шевелит волосы, камера медленно приближается',
'image_url': 'https://cdn.example.com/source-image-1.jpg',
'resolution': '720p',
'duration': '5',
'generate_audio_switch': False,
'thinking_type': 'auto',
},
},
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": "pixverse-5-6",
"input": {
"pixverse_generation_type": "image_to_video",
"prompt": "Бариста наливает молоко в капучино и рисует сердце на пенке, слышен шум кофейни",
"image_url": "https://cdn.example.com/source-image-1.png",
"resolution": "720p",
"duration": "8",
"generate_audio_switch": true,
"thinking_type": "disabled",
"use_negative_prompt": true,
"negative_prompt": "blurry, text, watermark, extra fingers"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'pixverse-5-6',
input: {
pixverse_generation_type: 'image_to_video',
prompt: 'Бариста наливает молоко в капучино и рисует сердце на пенке, слышен шум кофейни',
image_url: 'https://cdn.example.com/source-image-1.png',
resolution: '720p',
duration: '8',
generate_audio_switch: true,
thinking_type: 'disabled',
use_negative_prompt: true,
negative_prompt: 'blurry, text, watermark, extra fingers',
},
}),
})
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': 'pixverse-5-6',
'input': {
'pixverse_generation_type': 'image_to_video',
'prompt': 'Бариста наливает молоко в капучино и рисует сердце на пенке, слышен шум кофейни',
'image_url': 'https://cdn.example.com/source-image-1.png',
'resolution': '720p',
'duration': '8',
'generate_audio_switch': True,
'thinking_type': 'disabled',
'use_negative_prompt': True,
'negative_prompt': 'blurry, text, watermark, extra fingers',
},
},
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": "pixverse-5-6",
"input": {
"pixverse_generation_type": "transition",
"prompt": "Утренний город плавно превращается в ночной, в окнах зажигается свет, камера неподвижна",
"first_image_url": "https://cdn.example.com/first-frame-1.jpg",
"end_image_url": "https://cdn.example.com/last-frame-1.jpg",
"aspect_ratio": "9:16",
"resolution": "540p",
"duration": "5",
"generate_audio_switch": false,
"thinking_type": "auto"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'pixverse-5-6',
input: {
pixverse_generation_type: 'transition',
prompt: 'Утренний город плавно превращается в ночной, в окнах зажигается свет, камера неподвижна',
first_image_url: 'https://cdn.example.com/first-frame-1.jpg',
end_image_url: 'https://cdn.example.com/last-frame-1.jpg',
aspect_ratio: '9:16',
resolution: '540p',
duration: '5',
generate_audio_switch: false,
thinking_type: 'auto',
},
}),
})
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': 'pixverse-5-6',
'input': {
'pixverse_generation_type': 'transition',
'prompt': 'Утренний город плавно превращается в ночной, в окнах зажигается свет, камера неподвижна',
'first_image_url': 'https://cdn.example.com/first-frame-1.jpg',
'end_image_url': 'https://cdn.example.com/last-frame-1.jpg',
'aspect_ratio': '9:16',
'resolution': '540p',
'duration': '5',
'generate_audio_switch': False,
'thinking_type': 'auto',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "pixverse-5-6",
"cost": 72,
"balance_after": 928,
"created_at": "2026-09-30T19:51:19.56991+00:00"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "pixverse-5-6",
"cost": 72,
"created_at": "2026-09-30T19:51:19.56991+00:00",
"completed_at": "2026-09-30T19:51:59.157372+00:00",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/pixverse-5-6/video-1.mp4"
]
},
"error_message": null
}
Сохраните id из ответа на создание и проверяйте операцию по нему:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
async function waitForResult(id: string) {
while (true) {
const response = await fetch(`https://bratuha.ru/api/v1/operations/${id}`, {
headers: { Authorization: 'Bearer brth_ваш_ключ' },
})
const operation = await response.json()
if (operation.status === 'completed' || operation.status === 'failed') {
return operation
}
await new Promise((resolve) => setTimeout(resolve, 5000))
}
}
Обычно ролик готов за 30-60 секунд: пятисекундное видео в 360p в пробном запуске пришло через 40 секунд. Одну операцию можно опрашивать не чаще раза в секунду, разумный интервал - 5 секунд.
После завершения в result приходит одно видео:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/pixverse-5-6/video-1.mp4"
]
}
type - всегда "video".urls - массив с одной ссылкой на MP4.duration: "5" файл длится около 5,04 секунды.resolution: например, горизонтальная картинка в 360p даёт ролик 640x360. В image_to_video пропорции повторяют исходное изображение, в transition - задаются aspect_ratio.generate_audio_switch: true, без него ролик приходит без звука.Цена фиксирована за ролик и зависит от трёх параметров: длительности, разрешения и звука. Сценарий (image_to_video или transition), улучшение задания и негативный промпт на цену не влияют. 360p и 540p стоят одинаково.
| Длительность | Разрешение | Без звука | Со звуком |
|---|---|---|---|
| 5 сек. | 360p / 540p | 56 ₽ | 128 ₽ |
| 5 сек. | 720p | 72 ₽ | 144 ₽ |
| 5 сек. | 1080p | 120 ₽ | 240 ₽ |
| 8 сек. | 360p / 540p | 112 ₽ | 256 ₽ |
| 8 сек. | 720p | 144 ₽ | 288 ₽ |
| 8 сек. | 1080p | 240 ₽ | 480 ₽ |
| 10 сек. | 360p / 540p | 123 ₽ | 282 ₽ |
| 10 сек. | 720p | 158 ₽ | 317 ₽ |
Самый дешёвый запуск - 5 секунд в 360p или 540p без звука за 56 ₽. Сочетания 1080p и 10 секунд нет: такой запрос сразу получит 400 validation_error, деньги не спишутся. Полная сумма списывается при создании операции и видна в поле cost.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую платную операцию. Если ответ на создание потерялся, не отправляйте запрос вслепую ещё раз.queued, результат забирайте через GET /api/v1/operations/{id}.http/https URL на jpg, jpeg, png или webp. Адреса localhost и внутренних сетей не принимаются.duration передаётся строкой ("5", а не 5), как и resolution. Другое значение вернёт 400 validation_error со списком допустимых вариантов.image_url в режиме transition модели не передаётся. Проверьте, что ссылка лежит в поле своего сценария, иначе получите ошибку об обязательном поле.thinking_type: "disabled" - задание уйдёт модели без изменений.360p без звука, а чистовик - в нужном качестве.