# Kling 4.0

Kling 4.0: видео до 30 секунд по референсам — картинкам и роликам — или по ключевым кадрам, 720p и 1080p.

## Обзор

- **Modality:** Видео
- **Modes:** Кадры → Видео, Референсы → Видео
- **Страница модели:** https://iskragen.ru/models/kling-4-0
- **`modelSlug` для API:** `kling-4-0-keyframe-to-video`, `kling-4-0-reference-to-video`

## Стоимость

- Базовая цена: 72–1050 ₽ за `video_3s`
- Цена с референс-видео — до 3780 ₽: секунды референс-видео входят в цену — она умножается на `(вход + выход) / выход` и на коэффициент модели 0.600. Референс-видео (`params.video_urls`) — только файлы из `POST /v1/files`, суммарно до 150 секунд.

| Разрешение | Цена за 1 секунду | Примечание |
| --- | --- | --- |
| 720p | 24 ₽ | по умолчанию |
| 1080p | 35 ₽ | |

Длительность от 3 до 30 секунд, цена растёт посекундно.

**Включено:**
- 720p или 1080p
- Нативный звук
- Референсы и ключевые кадры

## Сценарии и параметры

### Кадры → Видео

- Mode ID: `frames-to-video`
- `modelSlug` для API: `kling-4-0-keyframe-to-video`

| Поле | Тип | По умолчанию | Диапазон / опции | Описание |
| --- | --- | --- | --- | --- |
| `duration` | select | `5` | `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30` | Длина видео от 3 до 30 секунд. Цена растёт посекундно. |
| `resolution` | select | `720p` | `720p`, `1080p` |  |
| `aspect_ratio` | select | `16:9` | `auto`, `16:9`, `9:16`, `1:1`, `21:9` | Если кадры загружены, формат задаёт первый кадр. |
| `first_frame_url` | file | — | image, до 20 МБ | В промпте — @first_frame |
| `last_frame_url` | file | — | image, до 20 МБ | В промпте — @last_frame |
| `keyframe_urls` | file-list | [] | image[], до 8 шт, 20 МБ | До 8 кадров по порядку, в промпте — @keyframe_1, @keyframe_2… Всего кадров с первым и последним: 3 с → 4, 4 с → 5 … от 9 с → 10. |

### Референсы → Видео

- Mode ID: `reference-to-video`
- `modelSlug` для API: `kling-4-0-reference-to-video`

| Поле | Тип | По умолчанию | Диапазон / опции | Описание |
| --- | --- | --- | --- | --- |
| `duration` | select | `5` | `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20`, `21`, `22`, `23`, `24`, `25`, `26`, `27`, `28`, `29`, `30` | Длина видео от 3 до 30 секунд. Цена растёт посекундно. |
| `resolution` | select | `720p` | `720p`, `1080p` |  |
| `aspect_ratio` | select | `auto` | `auto`, `16:9`, `9:16`, `1:1`, `21:9` | «Авто» подбирает формат под референсы. |
| `image_urls` | file-list | [] | image[], до 10 шт, 20 МБ | До 10 картинок, стороны 300–65 536 px, пропорции 0.4–2.5. В промпте — @image_1, @image_2… |
| `video_urls` | file-list | [] | video[], до 5 шт, 100 МБ | До 5 роликов MP4 или MOV по 2–30 секунд. В промпте — @video_1, @video_2… |
| `keep_original_sound` | toggle | false | true / false | Работает только с загруженными видео. |
| `elements` | object-list | [] | object[], до 7 шт |  |
| `voices` | object-list | [] | object[], до 3 шт |  |

## Использование через API

Полный цикл интеграции: API-ключ → создание генерации → polling → результат. Базовый URL: `https://api.iskragen.ru/v1`.

### 1. Получите API-ключ

Личный кабинет → «API-ключи» (https://iskragen.ru/api-keys). Значение показывается один раз. Ключ передаётся в заголовке каждого запроса:

```
Authorization: Bearer iskr_live_<secret>
```

### 2. Создайте генерацию

```bash
curl -X POST https://api.iskragen.ru/v1/generations \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "modelSlug": "kling-4-0-keyframe-to-video",
  "prompt": "Опишите, что вы хотите сгенерировать",
  "params": {
    "duration": "5",
    "resolution": "720p"
  }
}'
```

У каждого сценария свой `modelSlug` — возьмите значение из раздела «Сценарии и параметры» выше.

Генерация асинхронная: ответ — `202 Accepted`, задача ставится в очередь, стоимость удерживается с баланса.

```json
{
  "id": "0192f0c4-8a1e-7b3d-9f21-2c5e6a4b7d90",
  "status": "PENDING",
  "costRub": 72
}
```

### 3. Дождитесь результата (polling)

Опрашивайте `GET /v1/generations/{id}` раз в ~2 секунды, пока `status` не станет `SUCCEEDED` или `FAILED`:

```bash
curl https://api.iskragen.ru/v1/generations/$GENERATION_ID \
  -H "Authorization: Bearer $ISKRAGEN_API_KEY"
```

```json
{
  "id": "0192f0c4-8a1e-7b3d-9f21-2c5e6a4b7d90",
  "status": "SUCCEEDED",
  "outputUrls": ["https://s3.twcstorage.ru/.../result.webp"],
  "costRub": 72,
  "errorCode": null,
  "errorMessage": null
}
```

- `outputUrls` — ссылки на готовые файлы; заполняются при `SUCCEEDED`.
- При `FAILED` средства возвращаются на баланс автоматически, причина — в `errorCode` / `errorMessage`.
- Лимит: 5 одновременных генераций (`PENDING` + `PROCESSING`), при превышении — `429`.
- Для длинных задач (видео, музыка) вместо polling'а используйте [Webhooks](https://iskragen.ru/docs/webhooks.md).

### Полная документация

- Generations API (все поля, image-to-image, ошибки): https://iskragen.ru/docs/api-generations.md
- Аутентификация: https://iskragen.ru/docs/authentication.md
- Ошибки: https://iskragen.ru/docs/errors.md
- Лимиты: https://iskragen.ru/docs/rate-limits.md
- Индекс всей документации для LLM: https://iskragen.ru/llms.txt
- Машиночитаемый каталог моделей (slug, params, цены): https://api.iskragen.ru/v1/catalog
