Kling v2.1
Kling v2.1 создаёт видео по референсному изображению и текстовому заданию на движение. В документированном описании создания видео из изображения указаны длительности 5 и 10 секунд, а также режимы std и pro для планирования последовательности.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Kling v2.1 — видеомодель Kling, для которой в документированном каталоге указано создание видео из изображения. Начните с референсного статичного кадра, задающего сцену, затем опишите движение, которое превратит его в нужный видеоплан. Изображение товара, иллюстрированное окружение или кадр с персонажем могут задать композицию, из которой развивается последовательность.
Выберите референс, по которому легко понять задуманное действие. Персонаж рядом с дверью даёт понятную отправную точку для входа в комнату; предмет на незагромождённой поверхности позволяет лучше рассмотреть его контур. Сохраните референс в исходном качестве и храните его вместе со сгенерированным клипом.
Опишите одно связное действие. Укажите действующий объект, направление движения и желаемое конечное состояние. Для взаимодействия объясните связь между участниками: кто тянется, к чему прикасается и где заканчивается действие. Используйте видимые детали, которые можно проверить в полученной последовательности.
Выстройте кадр с учётом места его использования. В документированном описании создания видео из изображения указаны горизонтальные, вертикальные и квадратные пропорции, а также длительности 5 и 10 секунд. Определите, где главный объект должен оставаться внутри выбранного кадра. Вертикальная композиция и широкий общий план предъявляют разные требования к одному и тому же движению.
Документированные параметры создания видео из изображения включают режимы генерации std и pro. При сравнении вариантов храните выбранный режим вместе с результатом. Оценивайте видео по заданию: нужному действию, композиции, внешнему виду главного объекта и времени развития событий. Само название режима не показывает, насколько конкретный план отвечает этим требованиям.
Используйте указания для камеры, чтобы поддержать событие. Неподвижная камера может показать изменение позы, движение вбок — раскрыть обстановку, а движение вперёд — подчеркнуть деталь. Укажите желаемую связь между объектом и точкой съёмки, чтобы движение камеры не конкурировало с действием, за которым должен следить зритель.
Проверьте непрерывность всего клипа. Для товара проследите за формой, маркировкой и видом материала при смене ракурса. Для человека проверьте черты лица, руки, одежду и контакт с ближайшими предметами. Оцените финальную композицию в контексте следующего плана или графического элемента в монтаже.
Сохраняйте готовое видео, референс, промпт и выбранные параметры как единую запись о плане. При доработке определите конкретное визуальное несоответствие и сохраните части, которые уже подходят сцене. Сравнивайте варианты при одинаковых размере изображения и скорости воспроизведения, чтобы выбор отражал движение и композицию, которые действительно увидит зритель.
Ailoot Ultra · Video POST /v1/videos kling-v2-1
kling-v2-1Начало
Kling v2.1 создаёт видео по референсному изображению и текстовому заданию на движение. В документированном описании создания видео из изображения указаны длительности 5 и 10 секунд, а также режимы std и pro для планирования последовательности.
- Допустимые входные данные
- Текст · Картинки
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Video POST /v1/videos
- Входные данные
text,image- Результат
video
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения kling-v2-1 Условия: Используйте этот селектор маршрутизации Ailoot в точности. | По умолчанию— |
Полеmode | Типstring | ТребованиеНеобязательно | Значения и ограничения std, pro Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчаниюstd |
Полеaspect_ratio | Типstring | ТребованиеНеобязательно | Значения и ограничения 16:9, 9:16, 1:1 Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчанию— |
Полеduration | Типinteger | ТребованиеНеобязательно | Значения и ограничения 5, 10 Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчанию— |
Полеend_image | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчанию— |
Полеimage | Типstring or array<string> | ТребованиеОбязательно | Значения и ограничения Условия: Укажите фактический доступный URL вашего изображения. Список принимается только там, где схема параметра предусматривает массив. | По умолчанию— |
Полеnegative_prompt | Типstring | ТребованиеНеобязательно | Значения и ограничения Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения Условия: Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. | По умолчанию— |
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt, image |
Параметрoptional | Контрактmode, aspect_ratio, duration, end_image, negative_prompt |
Параметрmaterial_types | Контрактtext, image |
Параметрconditions | КонтрактИспользуйте этот селектор маршрутизации Ailoot в точности., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано., Укажите фактический доступный URL вашего изображения. Список принимается только там, где схема параметра предусматривает массив., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано., Используйте документированное поле выбранной модели и перечисленные варианты; не передавайте необязательное значение, если оно не задано. |
Псевдонимы метода: /v1/videos/generations
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Плата |
|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $6 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
: "${AILOOT_IMAGE_URL:?Set an actual customer material or documented value}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kling-v2-1", "prompt": "A cat is walking on grass.", "image": "YOUR_ACCESSIBLE_IMAGE_URL"}')
p['image']=os.environ['AILOOT_IMAGE_URL']
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
# Submit once. Retain the complete result, original identifiers and every response header.
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_STATUS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
u=urljoin("https://api.ailoot.ai",r["polling_url"])
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or p.username or p.password:
raise SystemExit("Unexpected returned polling URL; preserve the response")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-D","status-headers.txt","-o","status.json"],check=True)
# Read this same original polling_url again while pending.
# Preserve unknown/result_pending_check; do not repeat creation.
PY_STATUS
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path("status.json").read_text())
roles={}
def visit(v,path=""):
if isinstance(v,dict):
for k,x in v.items(): visit(x,path+"/"+k)
elif isinstance(v,list):
for i,x in enumerate(v): visit(x,path+"/"+str(i))
elif isinstance(v,str):
u=urljoin("https://api.ailoot.ai",v); p=urlsplit(u)
if p.scheme=="https" and p.netloc=="api.ailoot.ai" and not p.username and not p.password and p.path.startswith("/v1/media/assets/") and p.path.endswith("/content"):
roles.setdefault(u,[]).append(path)
visit(r)
if not roles: raise SystemExit("No completed owned assets; retain the original status")
manifest=[]
for i,(u,paths) in enumerate(roles.items()):
target=Path(f"asset-{i}.bin")
subprocess.run(["curl","--fail-with-body","--silent","--show-error",u,"-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"],"-o",str(target)],check=True)
raw=target.read_bytes()
if not raw: raise SystemExit("Empty asset; retain original status and metadata")
ext="glb" if raw[:4]==b"glTF" else "png" if raw[:8]==b"\x89PNG\r\n\x1a\n" else "jpg" if raw[:3]==b"\xff\xd8\xff" else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "mp4" if raw[4:8]==b"ftyp" else "bin"
name=f"asset-{i}.{ext}"
if target.name!=name: target.rename(name)
manifest.append({"file":name,"response_paths":paths,"bytes":len(raw)})
Path("asset-manifest.json").write_text(json.dumps(manifest,indent=2))
print("Saved",len(manifest),"unique owned assets; every response role retained")
PY_ASSETS
Получить и сохранить результаты
Ailoot Ultra · Video
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Сохраните полный ответ и заголовки, исходные идентификаторы, каждый фактический результат и все поля использования и учёта. Сохраните каждый уникальный ресурс, принадлежащий Ailoot, и каждую роль, которая на него ссылается.
Если нужно проверить исходный ответ
Сохраните возвращённый публичный id задачи или операции и все заголовки. Проверяйте только исходную задачу; unknown или result_pending_check не разрешают создавать новую.
Поля ответа
| Поле | Тип |
|---|---|
Полеid | Типstring |
Полеpolling_url | Типstring |
Полеprovider_task_id | Типstring |
Полеtask_id | Типstring |
Полеstatus | Типstring |
Полеvideo_url | Типstring |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеОбязательное поле, селектор модели, тип или представление входных данных недопустимы. | Следующий шагИзучите возвращённые сведения о проверке данных перед подготовкой отдельного запроса. |
Ответ | УсловиеИсходный запрос или результат неизвестен либо требует проверки. | Следующий шагСохраните исходные идентификаторы и заголовки; читайте только поддерживаемые записи статуса или библиотеки. Не отправляйте запрос на создание повторно. |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra kling-v2-1
Псевдонимы путей метода
/v1/videos/generations
Связанные ID для вызова
FAQ · Kling v2.1
- Какие входные данные и результаты доступны?
POST /v1/videos·kling-v2-1:text,image→video- Какие поля использует запрос?
POST /v1/videos·kling-v2-1:model,mode,aspect_ratio,duration,end_image,image,negative_prompt,prompt