Введение
Kling 2.5 Turbo Image to video оживляет первый кадр в клип на 5 или 10 секунд в 1080p, с настоящей звуковой дорожкой, сгенерированной за тот же проход. Добавьте необязательный последний кадр (last_image_url), чтобы зафиксировать концовку; соотношение сторон вывода следует за тем кадром, который вы отправляете, оба — только JPEG или PNG.
Выбор режима Kling 2.5 Turbo по стартовому материалу
| Что у вас есть на старте | Режим |
|---|---|
| текстовое описание сцены | Kling 2.5 Turbo текст в видео |
| утверждённый первый кадр | Kling 2.5 Turbo изображение в видео |
Ключевые возможности и особенности
Необязательный последний кадр
last_image_url не обязателен, но когда он задан, клип строится так, чтобы прийти именно к этому кадру, а не туда, где модель решит остановиться. Ничто не фиксирует середину клипа, так что держите оба кадра близкими по свету, позе и кадрированию для самого плавного результата.
Звук приходит вместе с картинкой
Звуковая дорожка генерируется за тот же проход, что и видео — поля, чтобы её отключить, нет. Пропишите в промпте, как сцена должна звучать, в том же месте, где вы описываете действие.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Да | Опишите только то, что происходит после первого кадра: действие и движение камеры. Не менее 1 символов · Не более 2500 символов |
image_url | Да | Первый кадр. Только JPEG или PNG. |
last_image_url | Нет | Необязательный последний кадр. Когда задан, клип строится так, чтобы прийти к нему; середина иначе не фиксируется. |
duration_seconds | Нет | Целые секунды, 5 или 10. Влияет на цену. |
negative_prompt | Нет | Короткий список того, чего клипу следует избегать. Не более 500 символов |
guidance_scale | Нет | От 0 до 1. Выше — ближе к вашей формулировке; ниже даёт модели больше свободы. |
Стоимость
$0.056 / секунда
Оплата за секунду выходного клипа в 1080p. Загрузка, которую Kling отклоняет, не оплачивается.
Сценарии использования
Оживить утверждённый кадр
Начните со стоп-кадра, который вам уже нравится — портрета, предметной съёмки, концепт-арта — и опишите только то, что происходит дальше; сам кадр не меняется.
Соединить кадр за кадром в более длинной сцене
Отправьте последний кадр одного утверждённого клипа как первый кадр следующего и используйте last_image_url на этом новом клипе, чтобы прийти к конкретной позе — полезно, чтобы сшить несколько клипов по 5 или 10 секунд в одну непрерывную сцену.
Руководство по промптам и практические советы
Описывайте только то, что меняется
Первый кадр уже задаёт субъект, гардероб и обстановку — промпту нужно только сказать, что происходит дальше: действие, движение камеры и как это звучит.
Держите оба кадра близко при использовании last_image_url
Последний кадр, сильно отличающийся позой, светом или кадрировкой от первого, даёт модели больше работы по согласованию пространства между ними, и середина 10-секундного клипа может поплыть. Держите оба кадра близко и дайте промпту нести движение между ними.
Пишите звук в том же предложении, что и движение
Поскольку в каждом клипе звук генерируется вместе с картинкой, описывайте, как звучит движение, прямо там, где вы описываете само движение — шаги, ткань, ветер, дальний гул толпы, — а не как запоздалую мысль в конце промпта.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "kling/2.5-turbo/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.











