← Блог

Kling O3 по API: aspect_ratio с картинкой, 429 и цена ролика

· 8 минут чтения

Вы отправляете кадр в kling-o3, дописываете "aspect_ratio":"16:9" и ждёте ролик. У Kling O3 с картинкой формат задаёт сам кадр, а этот параметр по документации вендора работает только в режиме, который через наш API не включается. 22.09.2026 мы прогнали модель из текста и из картинки и записали время, ошибки и то, во что обходится ролик.

Kling O3 доступна в altrouter по OpenAI-совместимому API. Ролик на 5 секунд в 720p без звука стоит $0,42 на 22.09.2026, но скидки на эту модель у нас нет: это наш минус, цена равна официальной цене вендора. Первый вызов можно начать с регистрации в altrouter.

Главная практическая мысль такая: для генерации из текста aspect_ratio задаёт формат ролика, а для генерации из картинки формат должен следовать из самого первого кадра. Вызов «картинка плюс aspect_ratio» я не прогонял, поэтому ниже не буду утверждать, что он обязательно падает или игнорируется.

Первый запуск Kling O3 из текста: 429 и повтор

Около 14:51 МСК я отправил первый проверочный запрос из текста: 3 секунды, 720p, 16:9, без звука. В этот момент мы одновременно запустили пачку проверочных задач по нескольким моделям. В нашем API такой запрос выглядит так:

curl -s https://api.altrouter.ai/v1/videos \
  -H "Authorization: Bearer $ALTROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-o3","prompt":"A slow cinematic camera push-in, gentle natural motion, soft light","seconds":3,"resolution":"720p","aspect_ratio":"16:9"}'

Вместо задачи пришёл 429 с текстом Your call frequency is too high. Please try again later. Деньги не списались, задача не создалась. Ошибка 429 — это ответ «слишком часто», а не сообщение о поломке видеомодели.

Я повторил тот же запуск в 14:53:44 МСК. В 14:54:34 МСК ролик был готов, то есть этот прогон занял 50 секунд.

Что это значит для вас: не повторяйте запрос мгновенно после 429. Сделайте паузу и отправьте его снова, особенно если до этого разом запускали несколько задач. Подробно про такой сценарий можно прочитать в материале про ошибку 429.

Запуск Kling O3 из картинки

Между этими двумя попытками, в 14:51:46 МСК, ушёл запуск из изображения. Поле image — это массив ссылок на картинки, который передаёт первый кадр. В этом запросе я не передавал aspect_ratio. В нашем API он выглядит так:

curl -s https://api.altrouter.ai/v1/videos \
  -H "Authorization: Bearer $ALTROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kling-o3","prompt":"A slow cinematic camera push-in, gentle natural motion, soft light","seconds":3,"resolution":"720p","image":["https://example.com/frame.png"]}'

Запуск начался в 14:51:46 МСК и завершился в 14:53:09 МСК. Ролик на 3 секунды в 720p без звука был готов за 83 секунды.

Создание асинхронное: сначала задача принимается, а файл появляется позже. Здесь важнее другое наблюдение: режим из картинки отработал без переданного aspect_ratio, формат взялся из кадра.

Столбчатая диаграмма: время ролика Kling O3 720p на 3 секунды из текста и из картинки
Из картинки ролик шёл на 33 секунды дольше, чем из текста.

Что это значит для вас: если вы подаёте готовый кадр, сначала подготовьте его в нужной ориентации. В моём замере картинка дала результат за 83 секунды, а повторный текстовый запуск — за 50 секунд, но это по одному прогону на режим, а время зависит от очереди.

aspect_ratio с картинкой

В каталоге API у Kling O3 есть aspect_ratio со значениями 16:9, 9:16 и 1:1. Для генерации из текста это прямой параметр запроса: его можно указать рядом с seconds и resolution, как в первом примере.

С картинкой ситуация тоньше. В документации вендора Kling 3.0 Omni сказано: 16:9, 9:16 и 1:1 можно выбирать только при включённом пользовательском мультикадровом режиме через customize_multi_shots; иначе нужно использовать auto. В примере image-to-video у вендора передан aspect_ratio: auto.

Мультикадровый режим через наш API не включается. В ролике используется один план, поэтому рекомендация для вызова через altrouter простая: не передавайте aspect_ratio вместе с image, а нужный формат задайте самим кадром.

Развилка: aspect_ratio для запроса из текста и формат из кадра для запроса с картинкой
С картинкой формат задаёт кадр, поэтому aspect_ratio лучше не передавать.

Есть важная оговорка. Связку «картинка плюс aspect_ratio: 16:9» мы не прогоняли: на серию статей был заложен бюджет на один видеоролик. Поэтому я не называю такой запрос гарантированно ошибочным и не говорю, что параметр точно будет проигнорирован.

Что это значит для вас: для текста задайте aspect_ratio явно. Для картинки подготовьте первый кадр в нужной ориентации и не добавляйте этот параметр в запрос.

Сколько стоит Kling O3 по API

На 22.09.2026 Kling O3 стоит $0,084 за секунду в 720p без звука. Это одновременно наша цена и официальная цена вендора для Kling O3 standard на fal. Скидки на Kling O3 у нас нет, и это наш минус.

Длина роликаЦена 720p без звука
3 секунды$0,252
5 секунд$0,42
10 секунд$0,84
15 секунд$1,26

Параметр seconds принимает целое значение от 3 до 15, а значение по умолчанию — 5 секунд. resolution может быть 720p, 1080p или 4k, но в замере я проверял только 720p.

При создании задачи баланс получает холд — деньги замораживаются с запасом 20%, но ещё не списываются. Для ролика на 5 секунд в 720p без звука холд составит $0,504, а после готовности спишется $0,42, остаток вернётся. Этот механизм мы проверили в тот же день на реальном вызове другой модели: холд $0,225, списание $0,1875.

Для sound: true холд вдвое больше. Для 1080p он вдвое больше, чем для 720p, а для 4k — впятеро больше. У вендора цена со звуком составляет $0,112 за секунду, поэтому включение звука меняет не только параметры ролика, но и расчёт суммы.

Шкала цены Kling O3 за секунду: официальная и наша цена совпадают, отдельно цена со звуком
Скидки на Kling O3 нет: платите ровно официальные $0,084 за секунду.

Что это значит для вас: проверяйте баланс с учётом холда, а не только итоговой цены ролика. Если денег на холд не хватает, задача не создаётся и видеомодель не запускается. Оплатить API можно картой РФ, через СБП или криптой; для пробы доступен $1 после подтверждения Telegram.

Как опрашивать асинхронный видео API

После POST https://api.altrouter.ai/v1/videos API возвращает HTTP 202, идентификатор задачи и статус in_progress. Затем нужно делать GET /v1/videos/{id} раз в 10 секунд, пока статус не станет completed или failed.

Ниже пример цикла. status — поле, где API сообщает состояние задачи, а url — ссылка на готовый mp4.

import os, time, requests
H = {"Authorization": f"Bearer {os.environ['ALTROUTER_API_KEY']}"}
job = requests.post("https://api.altrouter.ai/v1/videos", headers=H, json={
    "model": "kling-o3", "prompt": "A slow cinematic camera push-in",
    "seconds": 5, "image": ["https://example.com/frame.png"]}).json()
while job["status"] not in ("completed", "failed"):
    time.sleep(10)
    job = requests.get(f"https://api.altrouter.ai/v1/videos/{job['id']}", headers=H).json()
print(job.get("url"))

Для ориентира, реальный ответ нашего API выглядел так, но он относится к другой модели — kling-2.1-standard; формат тот же. При создании API вернул HTTP 202, id, model, status: "in_progress" и seconds: 5, а после готовности появились status: "completed" и поле url со ссылкой на mp4 на домене api.altrouter.ai.

Что это значит для вас: не держите HTTP-запрос открытым в ожидании файла. Сохраните id, опрашивайте задачу и забирайте url после статуса completed.

Чек-лист перед первым вызовом Kling O3

  1. Укажите модель kling-o3, а ключ передайте через переменную окружения ALTROUTER_API_KEY.
  2. Задайте seconds от 3 до 15 и выберите resolution.
  3. Для генерации из текста передайте aspect_ratio: 16:9, 9:16 или 1:1.
  4. Для генерации из картинки передайте image как массив ссылок и не добавляйте aspect_ratio.
  5. Учтите холд: для 5 секунд в 720p без звука это $0,504 при итоговой цене $0,42.
  6. После POST сохраняйте id и опрашивайте GET /v1/videos/{id} раз в 10 секунд.

Что именно не проверено

Я сделал по одному прогону на режим. Это недостаточно, чтобы считать 50 секунд и 83 секунды постоянным временем ответа.

Я не замерял 1080p, 4k, звук и длину больше 3 секунд. Вызов с картинкой и одновременно переданным aspect_ratio тоже не проверял, поэтому вывод про него основан на документации вендора и ограничении мультикадрового режима через наш API.

Ещё один минус altrouter для видео — цены в каталоге помечены как ориентировочные: итоговое списание считается по фактическому ролику. Для Kling O3 базовая цена совпадает с официальной, скидки нет.

FAQ

Сколько стоит Kling O3 по API?

$0,084 за секунду 720p без звука на 22.09.2026, ролик 5 с — $0,42; официальная цена такая же, скидки нет. Со звуком у вендора $0,112/с.

Можно ли сделать вертикальное видео 9:16 из картинки в Kling O3?

По документации вендора формат с картинкой берётся из кадра (auto), выбор 16:9/9:16/1:1 — только в мультикадровом режиме, который через наш API не включается. Нужна вертикаль — подайте вертикальный кадр.

Сколько ждать ролик Kling O3?

Замер 22.09.2026: 50 с из текста и 83 с из картинки, 3 секунды 720p, по одному прогону; время зависит от очереди. Это ориентир одного запуска, а не гарантированный срок.

Чем Kling O3 отличается от Kling 3.0?

Kling O3 — это Kling 3.0 Omni: 3–15 с, 720p/1080p/4k, звук по желанию, $0,084/с. Kling 3.0 в нашем каталоге — $0,0875/с, режимы std/pro/4K.

Почему Kling O3 вернул ошибку 429?

Это ответ «слишком часто»: мы получили его, запустив пачку задач разом. Повторите с паузой; деньги за непринятую задачу не списываются.