Генерация видео всегда асинхронна. Вы получаете ID генерации сразу, затем опрашиваете статус. Обычно занимает 20–180 секунд.
Модели и стоимость
| Модель | Описание | Токенов |
|---|
luma-ray2-flash | Быстрые прототипы (Starter) | 42 |
luma-ray2-flash | Быстрая генерация | 42 |
kling-v2.1 | Универсальная, высокое качество | 44 |
kling-v2.1-pro | Высокое качество, про-тариф | 88 |
minimax-video | Консистентные персонажи | 88 |
luma-ray2 | Кинематографичное качество 720p | 125 |
luma-ray2-1080p | Кинематографичное качество 1080p | 151 |
mj-video-480p | Художественный стиль 480p | 84 |
mj-video-720p | Художественный стиль 720p | 269 |
Стоимость зависит от длительности и разрешения. Используйте Calculate Price для точной суммы.
Text-to-video
curl -X POST https://neuralbox.top/api/v2/generate \
-H "Authorization: Bearer nb_ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v2.1",
"prompt": "Облёт дрона над футуристическим городом ночью, дождь, неоновые вывески",
"params": {"duration": 5, "aspect_ratio": "16:9"}
}'
Image-to-video
curl -X POST https://neuralbox.top/api/v2/generate \
-H "Authorization: Bearer nb_ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"model": "luma-ray2",
"prompt": "Камера медленно отъезжает назад",
"params": {
"image_url": "https://example.com/my-image.jpg",
"duration": 5
}
}'
Опрос статуса
import requests, time
def ждать_видео(gen_id: int, api_key: str) -> str:
headers = {"Authorization": f"Bearer {api_key}"}
while True:
data = requests.get(
f"https://neuralbox.top/api/v2/generate/{gen_id}",
headers=headers
).json()
if data["status"] == "completed":
return data["result_url"]
if data["status"] == "failed":
raise Exception(data.get("error"))
print(f"Статус: {data['status']}, ждём...")
time.sleep(5)