Руководство по использованию
Создание коротких видео с Kling 3.0 «изображение в видео» через API HiAPI
Короткие видео — это формат, который в итоге должна поддерживать любая контент-конвейерная система, а самый дешёвый способ надёжно производить их массово — это «изображение в видео»: взять статичный кадр, который вы уже контролируете (фотографию продукта, дизайн персонажа, сгенерированный ключевой кадр), и позволить видеомодели его оживить. Точка входа «изображение в видео» модели Kling 3.0 на HiAPI отлично справляется с этой задачей и предлагает функцию, которую пропускает большинство i2v-моделей: вы можете одновременно задать первый и последний кадры, так что модель будет анимировать между двумя состояниями, а не просто экстраполировать движение из одного кадра.
Этот учебник строит полный, скриптуемый рабочий процесс: сгенерировать первый кадр, отправить его в асинхронный API задач Kling 3.0, опрашивать до завершения и скачать готовый клип с нативно синхронизированным звуком — всё через обычные HTTP-вызовы, которые можно сразу поместить в пакетное задание.
Почему «изображение в видео», а не «текст в видео»
«Текст в видео» каждый раз преподносит сюрприз. «Изображение в видео» даёт вам отправную точку, которую вы уже одобрили — это важно, когда этот кадр является фотографией продукта, брендовым персонажем или чем-то, что должно выглядеть определённым образом до начала движения. Модель «изображение в видео» Kling 3.0 развивает это дальше с помощью управления первым и последним кадром: передайте одно референсное изображение, и модель использует его только как начало; передайте два, и второе станет целевым конечным состоянием, а модель интерполирует движение между ними. Это по сути программируемая покадровая анимация через один вызов API, без необходимости в каком-либо редакторе временной шкалы.
Структура запроса
Kling 3.0 «изображение в видео» работает на единой точке входа асинхронных задач HiAPI — POST /v1/tasks, затем опрос GET /v1/tasks/{id} до завершения. Входная схема модели намеренно минимальна:
{
"model": "kling-3.0/image-to-video",
"input": {
"prompt": "фонарь медленно загорается, пока камера наезжает, тёплое кинематографичное свечение",
"image_urls": ["https://static.hiapi.ai/blog/kling-3-0-image-to-video-short-form-workflow/first-frame-v2.jpg"],
"duration": 3,
"resolution": "720p",
"sound": true
}
}
Прежде чем строить вокруг этого, стоит знать несколько вещей:
image_urlsпринимает 1 или 2 элемента. Одно изображение означает «анимировать, начиная с этого кадра». Два изображения означают «анимировать от первого ко второму» — это и есть упомянутое управление первым и последним кадром. Отдельного поляtail_image_urlнет; всё выражается через позицию в массиве.duration— целое число от 3 до 15 секунд. Платформы коротких видео в основном хотят клипы в диапазоне 3–8 секунд, поэтому для одной сцены обычно нужен нижний край этого диапазона.resolution— до 4K, выше, чем у родственной моделиkling-3.0-turbo(максимум 1080p). Цена — стоимость, см. цены ниже — поэтому 720p или 1080p покрывают большинство случаев коротких видео без переплаты за разрешение, которое никто не заметит на экране телефона.sound— логическое значение, и это настоящая синхронная генерация звука, а не беззвучный клип с музыкой, добавленной постфактум. Включайте его, когда движение в сцене разумно порождает звук (закрытие двери, ветер, шаги) — результат будет заметно убедительнее беззвучного рендера.- Поля
aspect_ratioнет — выходное изображение сохраняет соотношение сторон вашего входного изображения.
Сквозной скрипт
Это полный поток на Python: создать задачу, опрашивать до завершения, скачать результат.
import requests
import time
API_KEY = "YOUR_HIAPI_KEY"
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
def submit_i2v(image_url, prompt, duration=3, resolution="720p", sound=True):
payload = {
"model": "kling-3.0/image-to-video",
"input": {
"prompt": prompt,
"image_urls": [image_url],
"duration": duration,
"resolution": resolution,
"sound": sound,
},
}
resp = requests.post(BASE, headers=HEADERS, json=payload, timeout=60)
resp.raise_for_status()
return resp.json()["data"]["taskId"]
def wait_for_result(task_id, poll_interval=5, timeout_s=600):
deadline = time.time() + timeout_s
while time.time() < deadline:
resp = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30)
resp.raise_for_status()
task = resp.json()["data"]
if task["status"] == "success":
return task["output"][0]["url"]
if task["status"] == "fail":
raise RuntimeError(task.get("error"))
time.sleep(poll_interval)
raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")
task_id = submit_i2v(
image_url="https://static.hiapi.ai/blog/kling-3-0-image-to-video-short-form-workflow/first-frame-v2.jpg",
prompt="фонарь медленно загорается, пока камера наезжает, тёплое кинематографичное свечение",
)
video_url = wait_for_result(task_id)
print(video_url) # временный подписанный URL — скачайте сразу, не сохраняйте его как постоянную ссылку
Есть одна деталь, на которой легко споткнуться, когда вы подключаете это к реальному конвейеру: output[0].url, который вы получаете, — это временная ссылка, которая истекает. Скачайте байты немедленно и переместите их в собственное хранилище, а не сохраняйте выходной URL задачи куда-либо надолго.
Вот первый кадр, использованный в этом примере, и клип, сгенерированный из него моделью Kling 3.0 с sound: true:

Клип длительностью 3 секунды, 720p, со звуком, как выше, стоит чуть больше $0.40 — достаточно дёшево, чтобы несколько раз итерировать промпт, прежде чем остановиться на версии, которую хотите выпустить.
Цены: разрешение и звук влияют на стоимость
Kling 3.0 «изображение в видео» тарифицируется за секунду выходной длительности, и разрешение с переключателем звука влияют на тариф:
| Разрешение | Без звука | Со звуком |
|---|---|---|
| 720p | $0.10/s | $0.143/s |
| 1080p | $0.129/s | $0.193/s |
| 4K | $0.479/s | — |
Пример расчёта: клип длительностью 3 секунды, 720p, со звуком — около $0.43. Клип длительностью 5 секунд, 1080p, без звука — $0.645; тот же клип со звуком — $0.965. Для коротких видео, где большинство готовых клипов попадают в диапазон 3–8 секунд, 720p или 1080p почти всегда правильный выбор — цена 4K оправдана только тогда, когда вы компонуете в что-то ниже по потоку, что действительно выиграет от дополнительного разрешения. Прежде чем запускать что-либо в масштабе, проверьте текущие цены, поскольку такие детали, как ставка за секунду, стоит сверять с актуальной страницей, а не кэшировать по памяти.
Пакетная обработка в реальный рабочий процесс
Для короткого видео любого масштаба вы не хотите отправлять одну задачу и постоянно смотреть на неё — вы хотите отправить пачку задач сразу и собирать результаты по мере поступления. Поскольку каждая задача независима и идентифицируется своим taskId, шаблон прост: сначала отправьте все запросы «изображение в видео», сохраните возвращённые ID задач, затем опрашивайте их в цикле, действуя только когда каждая задача переходит в success или fail. Так ваш конвейер будет работать на реальной пропускной способности платформы, а не сериализоваться на самой медленной генерации.
Несколько привычек, которые стоит завести с самого начала:
- Проверяйте доступность исходного изображения перед отправкой. API задач с радостью примет URL, а затем задача позже провалится, если изображение недоступно — проверка HEAD-запросом заранее сэкономит одну потраченную впустую генерацию.
- Считайте статус
failнормальным результатом, а не исключением. Вывод модели иногда отклоняет определённую комбинацию промпта и изображения; залогируйте ошибку и переходите к следующему элементу, а не прерывайте всю пачку. - Где возможно, переиспользуйте клипы между вариантами. Если вы тестируете несколько субтитров или звуковых дорожек на одной и той же сгенерированной анимации, нет нужды заново генерировать само видео — это чисто этап редактирования ниже по потоку.
Если вы впервые настраиваете API-ключ и аутентификацию, краткое руководство HiAPI охватывает основы получения ключа и выполнения первого аутентифицированного вызова, после чего вы сможете строить на этом полный пакетный конвейер.
Итог
Модель «изображение в видео» Kling 3.0 превращает один статичный кадр — или два, если нужно управление первым и последним кадром — в короткий видеоклип с синхронным звуком за один HTTP-вызов, а цена предсказуемо масштабируется по длительности, разрешению и необходимости звука. Для конвейера коротких видео сочетание такого контроля, низкой стоимости за клип в 720p/1080p и прямолинейного асинхронного API задач позволяет легко перейти от «одной статичной картинки» к «пачке готовых клипов», не открывая видеоредактор.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков