Skip to Content

Генерация видео

Видео-модели — от 30 секунд до нескольких минут. Используйте async + SSE или webhooks, sync-режим (/run) для них почти всегда отвалится по 5-минутному таймауту.

Минимальный пример

import { fetchEventSource } from '@microsoft/fetch-event-source' const NA_API_KEY = process.env.NA_API_KEY const BASE = 'https://api.neuroartist.ru' // 1. Отправить задачу const submit = await fetch(`${BASE}/queue/wan-25-preview/text-to-video`, { method: 'POST', headers: { Authorization: `Bearer ${NA_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ prompt: 'A cinematic shot of a snowy forest at dawn, slow camera pan', duration: 5, aspect_ratio: '16:9' }) }).then(r => r.json()) // { requestId: "req_abc", status: "IN_QUEUE" } // 2. Подписка на прогресс await new Promise((resolve, reject) => { fetchEventSource( `${BASE}/queue/wan-25-preview/text-to-video/requests/${submit.requestId}/progress/stream`, { headers: { Authorization: `Bearer ${NA_API_KEY}` }, onmessage(msg) { const e = JSON.parse(msg.data) if (e.stage === 'completed') resolve(e.result) if (e.stage === 'failed') reject(new Error(e.error?.message)) } } ) })

Результат:

{ "video": { "url": "https://s3.cloud.ru/neuroartist/.../result.mp4", "content_type": "video/mp4", "duration": 5.0 }, "seed": 42 }

Популярные модели

modelIdНазначениеЦена
wan-25-preview/text-to-videotext-to-video, до 8 сек60 ₽ / 5 сек
kling-video/v2/standard/text-to-videotext-to-video Kling80 ₽ / 5 сек
kling-video/v2/standard/image-to-videoimage-to-video Kling80 ₽ / 5 сек
runway-gen3/turbo/image-to-videoRunway Gen-3 Turbo100 ₽ / 5 сек
luma-dream-machineLuma Dream Machine90 ₽ / 5 сек
minimax/video-01-liveMiniMax video-0170 ₽ / 5 сек

Полный каталог — GET /models?category=video или /generate.

Image-to-video

Передайте URL стартового кадра в image_url:

curl -X POST https://api.neuroartist.ru/queue/kling-video/v2/standard/image-to-video \ -H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://your-cdn.example.com/keyframe.jpg", "prompt": "slow camera dolly forward", "duration": 5 }'

Источники изображения — Загрузка файлов.

Webhook вместо SSE (для production)

Видео-генерация может занять 1–5 минут. Если ваш runtime serverless или клиент закрывает вкладку — используйте webhook:

curl -X POST 'https://api.neuroartist.ru/queue/kling-video/v2/standard/text-to-video?webhook=https://your.app/cb' \ -H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"prompt":"…","duration":5}'

Готовый код приёмника с подписью — приём webhook.

Что НЕ делать

  • ❌ Не используйте POST /run для видео — sync-таймаут 5 минут, видео часто длиннее.
  • ❌ Не открывайте 10 SSE-стримов сразу: лимит 5 на пользователя. Для batch — webhook.
  • ❌ Не игнорируйте failed стадию — генерация может упасть через несколько секунд после submit (например, NSFW-фильтр).

Что приходит

{ "video": { "url": "https://s3.cloud.ru/neuroartist/.../result.mp4", "content_type": "video/mp4", "duration": 5.0 }, "seed": 42, "timings": { "inference": 47.3 } }

URL ведёт в наш S3. Срок жизни — пока не удалите через /me/activity.

Стоимость

Цена считается за длительность (duration). До запуска можно посчитать:

curl -X POST https://api.neuroartist.ru/models/kling-video/v2/standard/text-to-video/estimate \ -H "Authorization: Bearer na_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"prompt":"…","duration":5}'
{ "estimatedCostRub": 80, "priceUnit": "second", "quantity": 5 }

Дальше