> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elumenta.ru/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Text-to-video и image-to-video с Kling, Luma Ray2, MiniMax

<Note>
  Генерация видео **всегда асинхронна**. Вы получаете ID генерации сразу, затем опрашиваете статус. Обычно занимает 20–180 секунд.
</Note>

## Модели и стоимость

| Модель            | Описание                         | Токенов |
| ----------------- | -------------------------------- | ------- |
| `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](/ru/api-reference/models/calculate-price) для точной суммы.

## Text-to-video

```bash theme={null}
curl -X POST https://elumenta.ru/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

```bash theme={null}
curl -X POST https://elumenta.ru/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
    }
  }'
```

## Опрос статуса

```python theme={null}
import requests, time

def ждать_видео(gen_id: int, api_key: str) -> str:
    headers = {"Authorization": f"Bearer {api_key}"}
    while True:
        data = requests.get(
            f"https://elumenta.ru/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)
```
