По возможностям
Видео
Видео всегда генерируется как задача: отправьте запрос, затем проверяйте статус или дождитесь обратного вызова. Чем длиннее и чётче ролик, тем он дороже.
#1. Выберите модель
doubao-seedance-2.5$0.216 / запросЛимиты и статус
Доступных моделей для этой задачи: 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": "Seedance 2.5",
"prompt": "A cinematic scene with careful composition",
"nsfw_check": false,
"duration": 5,
"resolution": "720p",
"metadata": {
"generate_audio": true,
"watermark": false,
"output_format": "mp4",
"return_last_frame": false
},
"size": "1:1"
}')
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Точный идентификатор модели для этого запроса.
doubao-seedance-2.5promptИнструкция с описанием желаемого результата.
durationOutput seconds; -1 lets Seedance choose automatically.
-1456789101112131415161718192021222324252627282930resolutionЗапрошенное разрешение результата.
480p720p1080psizeFirst/last-frame and edit modes require adaptive.
adaptive21:916:94:31:13:49:16imagesUp to 30 image references. Use image_tail with exactly one first-frame image for first/last-frame mode.
metadata.video_urlsПубличные HTTP(S)-URL исходных видео. Максимум элементов: 10.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
Жизненный цикл ответа
Статусы задачи, конечные состояния и примеры ответов с результатом.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video",
"model": "Seedance 2.5",
"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 запроса или текст ошибки, и мы разберёмся.