По возможностям

Видео

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

#1. Выберите модель

kling-v3-omni$0.0672 / запросЛимиты и статус

Доступных моделей для этой задачи: 13. При переключении код ниже меняется.

#2. Скопируйте запрос

Замените YOUR_API_KEY своим ключом и выполните запрос. Показаны параметры, которые принимает эта модель.

POSThttps://www.aisplice.store/v1/videosBearer API keyАсинхронная задача

ПараметрыПоказаны только параметры, опубликованные для этой модели.

# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"

# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
  -d '{
  "model": "Kling V3 Omni",
  "prompt": "A cinematic scene with careful composition",
  "mode": "std",
  "duration": 5,
  "size": "16:9",
  "metadata": {
    "watermark": false
  },
  "nsfw_check": false
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
  printf '%s\n' "$SUBMITTED" >&2
  exit 1
fi
echo "task_id=$TASK_ID"

# 2. Poll until terminal
while true; do
  STATUS_JSON=$(curl --fail-with-body -sS \
    "https://www.aisplice.store/v1/videos/$TASK_ID" \
    -H "Authorization: Bearer $API_KEY")
  STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|succeeded|success) break ;;
    failed|failure|cancelled|canceled)
      printf '%s\n' "$STATUS_JSON" | jq .
      exit 1
      ;;
  esac
  sleep 5
done

# 3. Fetch the final result
curl --fail-with-body -sS \
  "https://www.aisplice.store/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" | jq .

Этой модели нужны публичные URL медиафайлов. Сначала загрузите локальный файл, затем укажите public_url в запросе к модели. Избегайте больших тел в Base64.

Руководство по загрузке

Все параметры

Все поля, которые принимает эта модель, и допустимые значения.

model
stringобязательно

Точный идентификатор модели для этого запроса.

kling-v3-omni
prompt
stringобязательно

Video prompt. Name a picture by position as <<<image_N>>>; a subject from element_list as @name.

duration
integerнеобязательно

Output seconds from 3 to 15.

size
stringнеобязательно

Sent to the model as its aspect ratio.

16:99:161:1
images
string[]необязательно

One public URL is the first frame; two are first and last frames. Beside a video, or with image_reference_mode=multi, every picture is a subject reference instead.

metadata.video_urls
string[]необязательно

Публичные HTTP(S)-URL исходных видео. Максимум элементов: 1.

Жизненный цикл ответа

Статусы задачи, конечные состояния и примеры ответов с результатом.

Отправка
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "Kling V3 Omni",
  "status": "queued"
}

Ожидание

queued · submitted · in_progress · processing

Успех

completed · succeeded · success

Ошибка

failed · failure · cancelled · canceled

Все поля: /v1/videos в справочнике API →

#3. Получите результат

Запрос на отправку сразу возвращает task_id. Проверяйте задачу каждые несколько секунд, пока status не станет completed, или передайте webhook_url — и мы сообщим вам, когда всё будет готово.

GET https://www.aisplice.store/v1/videos/{task_id}

GET https://www.aisplice.store/v1/videos/{task_id}/content

Длительность и разрешение определяют ценовой уровень. Выполняющуюся задачу можно отменить — см. справочник API.

Оплата только при успехе

За неудачную или отменённую задачу средства возвращаются автоматически. Итоговая стоимость каждой задачи видна в журнале запросов.

Значения статуса и опрос →Обратный вызов вместо проверок →

#Если что-то пошло не так

  • 400 с названием поля: эта модель не принимает такой параметр; используйте значения, указанные на шаге 2.
  • Референсное изображение или видео отклонено: нужен публичный URL, который модель может скачать.
  • Модель отклонила содержимое: переформулируйте промпт; отклонённые запросы не оплачиваются.
  • 402: баланса не хватает на этот запрос; пополните его в разделе «Кошелёк» и повторите.
  • 429: снизьте частоту и повторите через Retry-After секунд.
  • 503 model_not_found: имя модели неверное или модель недоступна; выберите модель на шаге 1.

Найти другую ошибку →

#Первый и последний кадры, референсные изображения и видео

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

Как загрузить локальный файл →

Встраивание в ваш продуктКакие параметры показать пользователям сразу, а какие оставить на потом.
Какие настройки показать пользователям в первую очередьНачните с промпта и одной настройки, влияющей на цену; остальное добавляйте, когда базовый сценарий заработает.+

Творческий замысел

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

Множитель стоимости

Поля вроде duration, resolution, size и count стоит добавлять, только когда ценообразование уже можно понятно объяснить.

Переключатель режима

Поля вроде image, mask или ID для продолжения меняют сам сценарий работы и должны появляться только в отдельных режимах.

Служебные параметры

Поля вроде webhook_secret нужны интеграторам, а не обычным пользователям, поэтому не выносите их в стандартный интерфейс.

  • prompt
    Когда показывать
    Всегда. Задаёт сцену или направление движения.
    Рекомендуемое значение по умолчанию
    Обязательно в интерфейсе.
    Почему это важно
    Без него пользователи не смогут управлять замыслом ролика.
  • image / images
    Когда показывать
    Показывайте только в продуктах на основе референсов или генерации видео по изображению.
    Рекомендуемое значение по умолчанию
    Скрывайте в сценариях только с промптом.
    Почему это важно
    Меняет режим создания, поэтому это должно быть осознанное продуктовое решение.
  • duration
    Когда показывать
    Показывайте, когда базовый асинхронный сценарий стабилен, а цены видны пользователю.
    Рекомендуемое значение по умолчанию
    Начните с минимальной поддерживаемой длительности.
    Почему это важно
    Один из самых сильных множителей стоимости и задержки при генерации видео.
  • resolution
    Когда показывать
    Показывайте, когда клиенты явно сравнивают результат в 720p, 1080p или 4K.
    Рекомендуемое значение по умолчанию
    Выберите на сервере одно рекомендуемое разрешение.
    Почему это важно
    Чем выше разрешение, тем выше стоимость, время в очереди и риск ошибки.
  • webhook_url / webhook_secret
    Когда показывать
    Показывайте только интеграторам бэкенда, а не обычным пользователям.
    Рекомендуемое значение по умолчанию
    В продуктах с интерфейсом лучше использовать опрос.
    Почему это важно
    Они нужны для системной интеграции, а не для творчества пользователей, поэтому им не место в пользовательском интерфейсе.
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

Один источник истины для результатов

Когда задача завершится, стройте приложение вокруг URL платформы, который возвращает /content. Так детали вышестоящего провайдера остаются скрытыми, а воспроизведение старых результатов — стабильным.

Проблема не решена?

Пришлите нам ID запроса или текст ошибки, и мы разберёмся.