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

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

> Видео по тексту, одному начальному кадру, изображениям и видеореференсам, редактирование и продолжение. Только 720p, 3–20 секунд генерации, 24fps.

> [!NOTE]
>
> Этот эндпоинт работает асинхронно. После отправки используйте полученный `task_id` в `GET /v1/tasks/{task_id}`, чтобы узнать статус и результат задачи.

```bash cURL theme={null}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v4-flash",
    "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://api.apimart.ai/v1/videos/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "kling-v4-flash",
        "prompt": "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.apimart.ai/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "kling-v4-flash",
    prompt: "A paper boat drifts along a gutter on a rainy night, with the gentle sound of rain",
    duration: 5,
    resolution: "720p",
    aspect_ratio: "9:16"
  })
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

## Выбор режима

Во всех пяти режимах используется одно имя модели — `kling-v4-flash`. Режим выбирается по переданным материалам и `omni_reference_task_type`.

| Режим | Входные данные |
| - | - |
| Генерация по тексту | Без изображений, видео и аудио |
| Генерация по изображению | Ровно один первый кадр через `first_frame_image`, `first_frame` в `image_with_roles` либо единственное изображение в `image_urls` |
| Генерация по референсам | Передать `video_urls` или `reference_image` в `image_with_roles`; также можно явно задать `omni_reference_task_type: "reference"` |
| Редактирование видео | Укажите `omni_reference_task_type: "edit"` и входное видео |
| Продление видео | Укажите `omni_reference_task_type: "extend"` и входное видео |

Значение `omni_reference_task_type` по умолчанию — `auto`, что равнозначно отсутствию поля. При явном `reference` изображения из `image_urls` используются как референсы.

> [!WARNING]
>
> Если передать только `video_url` без `edit` или `extend`, возвращается HTTP 400. Чтобы использовать видео как референс, передайте его в `video_urls`.

## Заголовки запроса

**Authorization** `string` *required*

Аутентификация Bearer: `Bearer <token>`, где `<token>` — ваш API-ключ APIMart.

## Параметры запроса

**model** `string` *required*

Должно быть `kling-v4-flash`.

**prompt** `string`

Описание генерации или редактирования. Необязателен только при генерации по изображению. Ссылки на материалы: `@Image1` / `@Video1`, нумерация с 1 по порядку каждого массива. При редактировании входное видео — `@Video1`, изображения — `@Image1`, `@Image2` и далее.

**duration** `integer`

Целые секунды от `3` до `20`, обычно по умолчанию `5`. При редактировании без этого поля используется длительность входа с округлением вверх. При продолжении это длина добавленного фрагмента. Явный `0` возвращает HTTP 400, `null` равен отсутствию поля. Оплата по этому целому числу; файл может быть примерно на один кадр длиннее.

**seconds** `integer`

Псевдоним `duration` с теми же правилами. Если переданы оба поля, каждое должно быть в пределах `3`–`20`, а значения должны совпадать, иначе HTTP 400.

**resolution** `string` (default: 720p)

Только `720p`, также используется по умолчанию. `1080p` возвращает HTTP 400. Выбор уровня через `mode` не поддерживается.

**aspect\_ratio** `string`

Генерация по тексту, по референсам и редактирование поддерживают `16:9`, `9:16`, `1:1` и `21:9`; `auto` доступно только для референсов. Генерация по изображению не принимает `aspect_ratio` / `size`: непустое значение возвращает HTTP 400, пустая строка считается отсутствующим параметром. Для другого соотношения сторон заранее обрежьте первый кадр.

| Режим | Поведение по умолчанию |
| - | - |
| Генерация по тексту | `16:9` |
| Генерация по изображению | Не передавайте `aspect_ratio` / `size`: используется соотношение сторон первого кадра. Для изменения заранее обрежьте изображение |
| Генерация по референсам | `auto` |
| Редактирование видео | Следует за входным видео |
| Продление видео | Поле не поддерживается; сохраняется исходное соотношение сторон |

**image\_urls** `string[]`

Генерация по изображению принимает один первый кадр; два изображения возвращают HTTP 400. В режиме референсов и редактирования — до 10 референсов. Для генерации только по референсным изображениям явно задайте `omni_reference_task_type: "reference"`. URL должны быть публично доступны. Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

**image\_with\_roles** `object[]`

Каждый элемент содержит `url` и `role`. Генерация по изображению принимает ровно один `first_frame`; референсы и редактирование используют `reference_image`. Последние и промежуточные кадры не поддерживаются. До 10 изображений и суммарно до 15 материалов с учётом видеореференсов. Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

**first\_frame\_image** `string`

URL первого кадра для генерации по изображению. Его также можно передать как `first_frame` в `image_with_roles` или первым изображением в `image_urls`. Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

**video\_urls** `string[]`

До 5 видеореференсов общей длительностью не более 20 секунд. Превышение возвращает HTTP 400, без обрезки. Для редактирования или продолжения можно передать ровно один элемент вместо `video_url`, явно задав соответствующий тип задачи.

Видеореференсы: только MP4 / MOV, ширина и высота — каждая в пределах 700–4553px. Длительность определяется по видеопотоку, а не контейнеру: не менее 3 секунд на клип и не более 20 секунд суммарно. Если хотя бы один видеореференс короче 3 секунд, при отправке возвращается HTTP 400 без списания средств.

**video\_url** `string`

Входное видео для редактирования или продолжения. Обязательно явно задать `omni_reference_task_type: "edit"` или `"extend"`, иначе HTTP 400. Вход для редактирования должен длиться 3–20 секунд. Более короткие или длинные видео отклоняются без оплаты.

Для редактирования подходят MP4 / MOV с шириной и высотой в пределах 700–4553px каждая. Ограничение 3–20 секунд относится к видеопотоку, а не контейнеру. Неверные формат, ширина, высота или длительность входного видео возвращают HTTP 400 при отправке без списания средств.

На вход для продолжения не распространяются ограничения редактирования по высоте и минимуму 3 секунды. Например, можно продолжить видео 480p длительностью 2 секунды.

**omni\_reference\_task\_type** `string` (default: auto)

Поддерживаются `auto`, `reference`, `edit` и `extend`.

* `auto`: выбирает генерацию по тексту, изображению или референсам в зависимости от материалов; равнозначно отсутствию поля.
* `reference`: генерация по референсам; изображения из `image_urls` используются как референсы.
* `edit`: редактирование видео; требуется входное видео.
* `extend`: продление видео; требуется входное видео.

**audio\_setting** `string`

Для генерации с видеореференсами: `origin` сохраняет звук первого видеореференса, `auto` создаёт новый звук и используется по умолчанию. Для `origin` нужен видеореференс; если в первом нет аудиодорожки, её не будет и в результате. Редактирование создаёт новый звук и не сохраняет исходный; не передавайте этот параметр при редактировании. Продолжение его не поддерживает.

## Размеры результата и частота кадров

Используется уровень `720p`; фактические размеры в пикселях зависят от соотношения сторон. Частота — 24fps. Файл может быть примерно на один кадр длиннее `duration`: например, запрос на 3 секунды даёт около 3.04 секунды.

| Соотношение сторон / режим | Размеры в пикселях |
| - | - |
| `16:9` | 1280×720 |
| `9:16` | 720×1280 |
| `1:1` | 960×960 |
| `21:9` | 1464×628 |
| По изображению | Соотношение сторон первого кадра, всего около 0.92MP; кадр 1:2.5 даёт 604×1516 |

## Примеры запросов

URL материалов ниже приведены для примера. Замените их реальными общедоступными адресами.

### Генерация по изображению: один первый кадр

```json theme={null}
{
  "model": "kling-v4-flash",
  "image_urls": [
    "https://example.com/start.png"
  ]
}
```

Передайте только один первый кадр; `prompt` необязателен. Последние, промежуточные кадры и второе изображение не поддерживаются.

Не передавайте `aspect_ratio` / `size`: используется соотношение сторон первого кадра. Для изменения заранее обрежьте изображение.

Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

### Генерация по референсам

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The girl in @Image1 runs along the beach with the camera movement from @Video1.",
  "image_with_roles": [
    {
      "url": "https://example.com/girl.png",
      "role": "reference_image"
    }
  ],
  "video_urls": [
    "https://example.com/camera.mp4"
  ],
  "aspect_ratio": "auto",
  "duration": 5
}
```

До 10 изображений и 5 видеореференсов, всего до 15 материалов. Видеореференсы суммарно не длиннее 20 секунд. Аудиореференсы не поддерживаются. Для звука первого видеореференса добавьте `audio_setting: "origin"`. При `origin`, если в первом видеореференсе нет аудиодорожки, её не будет и в результате.

Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

Видеореференсы: только MP4 / MOV, ширина и высота — каждая в пределах 700–4553px. Длительность определяется по видеопотоку, а не контейнеру: не менее 3 секунд на клип и не более 20 секунд суммарно. Если хотя бы один видеореференс короче 3 секунд, при отправке возвращается HTTP 400 без списания средств.

### Редактирование видео

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "Change the scene to a snowy winter night.",
  "omni_reference_task_type": "edit",
  "video_url": "https://example.com/in.mp4",
  "image_urls": [
    "https://example.com/style.png"
  ]
}
```

Длительность видеопотока для редактирования должна быть 3–20 секунд. Без `duration` используется длительность входа с округлением вверх; без `aspect_ratio` — его соотношение сторон. Редактирование создаёт новый звук, не сохраняя исходный. Не передавайте `audio_setting` в запросе.

Ширина и высота первого кадра и референсных изображений должны быть не менее 300px, а соотношение ширины к высоте — от 2:5 до 5:2. Нарушение возвращает HTTP 400 при отправке без списания средств.

Для редактирования подходят MP4 / MOV с шириной и высотой в пределах 700–4553px каждая. Ограничение 3–20 секунд относится к видеопотоку, а не контейнеру. Неверные формат, ширина, высота или длительность входного видео возвращают HTTP 400 при отправке без списания средств.

### Продление видео

```json theme={null}
{
  "model": "kling-v4-flash",
  "prompt": "The camera continues moving forward as the sky grows darker.",
  "omni_reference_task_type": "extend",
  "video_url": "https://example.com/in.mp4",
  "duration": 5
}
```

Создаёт новый фрагмент длиной 3–20 секунд от последнего кадра входного видео и возвращает только этот фрагмент, без исходного видео. Оплата начисляется за новый фрагмент. Изображения, целевой последний кадр, `aspect_ratio` и `audio_setting` не поддерживаются; сохраняется исходное соотношение сторон.

На вход для продолжения не распространяются ограничения редактирования по высоте и минимуму 3 секунды. Например, можно продолжить видео 480p длительностью 2 секунды.

## Запрос состояния задачи

Замените ID задачи в следующем запросе на ID, полученный при отправке:

```bash theme={null}
curl --request GET \
  --url 'https://api.apimart.ai/v1/tasks/<task_id>' \
  --header 'Authorization: Bearer <token>'
```

Используйте [проверку задачи](https://docs.apimart.ai/ru/api-reference/tasks/status.md). Сохраните `task_id` и опрашивайте до `completed` или `failed`. По результатам тестов 3-секундное видео 720p занимает около 1–4 минут; это ориентир, а не фиксированный срок для признания задачи неуспешной.

## Оплата

Посекундная оплата; ставки указаны в [тарифах моделей](https://apimart.ai/pricing). Обычная генерация и видеовход используют разные ставки.

| Режим | Оплачиваемые секунды |
| - | - |
| Генерация по тексту, изображению, только изображениям-референсам | Секунды выхода; `kling-v4-flash@720P` |
| Продолжение видео | Секунды нового фрагмента; `kling-v4-flash@720P` |
| Редактирование, генерация с видеореференсами | Секунды выхода + max(секунды выхода, секунды видеовхода); `kling-v4-flash@720P-input` |

Входные секунды — сумма длительностей видеопотоков с последующим округлением вверх, а не длительностей контейнеров. Редактирование видео длиной 3.04 секунды с `duration: 3` оплачивается как 3 + 4 = 7 секунд. При отправке запросов редактирования и генерации с видеореференсами проверяются формат, ширина, высота и длительность видеопотока. Ошибка проверки, формат не MP4 / MOV, ширина или высота вне 700–4553px, сумма более 20 секунд или вход для редактирования короче 3 секунд возвращают HTTP 400 без списания средств. Каждый видеореференс проверяется по длительности видеопотока; клипы короче 3 секунд возвращают HTTP 400 при отправке без списания средств.

Неуспешные задачи полностью возмещаются, включая задачи, для которых платформа определила тайм-аут. Прекращение опроса клиентом не отменяет задачу; если позже она завершится успешно, оплата будет обычной.

## Неподдерживаемые параметры

Следующие параметры или значения возвращают HTTP 400:

* `resolution: "1080p"`
* `last_frame_image`, `role: "last_frame"`, `role: "keyframe"`
* `audio_urls`, `audio_url`
* `mode`, `negative_prompt`, `watermark: true`, `audio: false`
* `multi_shot`, `multi_prompt`, `element_list`, `video_list`
* `camera_control`, `voice_list`

## Частые ошибки

| Ошибка | Решение |
| - | - |
| `kling-v4-flash only supports resolution 720p (got: 1080p)` | Используйте `720p`, а не `1080p`. |
| `kling-v4-flash duration must be between 3 and 20 seconds` | `duration` / `seconds` — целое число от 3 до 20, не 0. |
| `kling-v4-flash image-to-video follows the first frame's aspect ratio; remove aspect_ratio / size` | Удалите `aspect_ratio` / `size` при генерации по изображению. Для изменения соотношения сторон заранее обрежьте первый кадр. |
| `kling-v4-flash first frame: image width and height must be at least 300px` | Ширина и высота первого кадра и референсных изображений должны быть не менее 300px. |
| `kling-v4-flash first frame: image aspect ratio (width:height) must be between 2:5 and 5:2` | Используйте соотношение ширины к высоте от 2:5 до 5:2. |
| `kling-v4-flash input video #1: unsupported video format webm/mkv (supported: mp4/mov)` | Для редактирования и видеореференсов используйте MP4 / MOV; WebM / MKV не поддерживаются. |
| `kling-v4-flash input video #1: video height must be between 700 and 4553px` | Ширина и высота видео для редактирования и референсов должны быть в пределах 700–4553px каждая. Для продолжения это ограничение не действует. |
| `kling-v4-flash input video #1: video width must be between 700 and 4553px` | Ширина и высота видео для редактирования и референсов должны быть в пределах 700–4553px каждая. Ширина вертикального видео также должна быть не менее 700px. |
| `kling-v4-flash reference video #1 must be at least 3 seconds` | Длительность видеопотока каждого видеореференса должна быть не менее 3 секунд. Более короткие клипы возвращают HTTP 400 при отправке без списания средств. |
| `kling-v4-flash only supports aspect_ratio 16:9, 9:16, 1:1 or 21:9 (got: auto)` | `auto` поддерживается только для референсов; при генерации по изображению не передавайте поля соотношения сторон. |
| `kling-v4-flash image-to-video only takes a first frame; last frame and keyframes are not supported` | Оставьте один первый кадр; удалите последние, промежуточные или второе изображение. |
| `kling-v4-flash reference-to-video does not take reference audios` | Удалите `audio_urls` / `audio_url`. |
| `kling-v4-flash video extend takes no images` | Удалите изображения и целевой последний кадр из запроса продолжения. |
| `kling-v4-flash input videos must be at most 20 seconds in total` | Сумма видеореференсов или вход редактирования не должны превышать 20 секунд. Автоматической обрезки нет. |
| `video edit requires an input video of at least 3 seconds` | Длительность видеопотока для редактирования должна быть не менее 3 секунд; длительность контейнера не используется. |
| `video_url needs omni_reference_task_type edit ... or extend` | Задайте `edit` / `extend`; видеореференсы передавайте в `video_urls`. |
| `Failed to probe the input video duration` | Проверьте доступность URL и корректность видеофайла. |
| `duration (3) and seconds (5) are aliases and must match` | Передавайте один псевдоним либо одинаковые значения от 3 до 20 в обоих. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.