По возможностям
Видео
Видео всегда генерируется как задача: отправьте запрос, затем проверяйте статус или дождитесь обратного вызова. Чем длиннее и чётче ролик, тем он дороже.
#1. Выберите модель
kling-v3$0.0672 / запросЛимиты и статус
Доступных моделей для этой задачи: 13. При переключении код ниже меняется.
#2. Скопируйте запрос
Замените YOUR_API_KEY своим ключом и выполните запрос. Показаны параметры, которые принимает эта модель.
https://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",
"prompt": "A cinematic scene with careful composition",
"mode": "std",
"duration": 5,
"size": "16:9",
"metadata": {
"generate_audio": false,
"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Точный идентификатор модели для этого запроса.
kling-v3promptИнструкция с описанием желаемого результата.
durationOutput seconds from 3 to 15.
sizeSent to the model as its aspect ratio.
16:99:161:1imagesOne public URL is the first frame; two public URLs are first and last frames.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video",
"model": "Kling V3",
"status": "queued"
}Ожидание
queued · submitted · in_progress · processing
Успех
completed · succeeded · success
Ошибка
failed · failure · cancelled · canceled
#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- Когда показывать
- Показывайте только интеграторам бэкенда, а не обычным пользователям.
- Рекомендуемое значение по умолчанию
- В продуктах с интерфейсом лучше использовать опрос.
- Почему это важно
- Они нужны для системной интеграции, а не для творчества пользователей, поэтому им не место в пользовательском интерфейсе.
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Один источник истины для результатов
Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.