Введение
Vidu Q4 Preview Продление видео продолжает клип, который у вас уже есть. Отправьте его как video_url вместе с промптом о том, что происходит дальше. Последний кадр вашего клипа становится первым кадром нового плана «изображение в видео» в Vidu Q4 Preview длиной от 3 до 16 секунд, и оба фрагмента склеиваются в один MP4: сначала ваш оригинал, затем продолжение, без повторяющегося кадра на стыке. Новый фрагмент также возвращается отдельным файлом, так что можно продлевать дальше или монтировать части по отдельности.
Ключевые возможности и особенности
Непрерывность даёт последний кадр. Одежда, обстановка, свет и положение людей сохраняются, потому что новый фрагмент буквально начинается с вашего последнего кадра. Движение переносится иначе: модель видит один неподвижный кадр, а не весь клип. Поэтому опишите движение, которое нужно продолжить, а не рассчитывайте, что оно сохранит скорость или направление.
В ответ приходит один файл и отдельно новый фрагмент. Склеенный MP4 сохраняет частоту кадров и кадрирование вашего клипа, без чёрных полос. Чтобы стык совпал, изображение по краям может быть обрезано или слегка изменено на несколько процентов. Если модель вернёт заметно другие пропорции, новый фрагмент масштабируется так, чтобы заполнить ваш кадр, выравнивается по центру, а всё, что выходит за края, обрезается. Файл кодируется как MP4 H.264 со звуком AAC. Звук исходника сохраняется, звук, сгенерированный для нового фрагмента, идёт следом, а беззвучная сторона дополняется тишиной, чтобы картинка и звук не расходились на стыке. Второй ресурс на выходе — это сам новый фрагмент, готовый к очередному продлению или к редактору.
Всё остальное — это «изображение в видео» Vidu Q4 Preview. Новый фрагмент идёт по тем же маршрутам, с тем же диапазоном контента и той же ценой за секунду, что и эндпоинт «изображение в видео», а неудачная генерация возвращает деньги так же. Это относится и к отказам: запросы уровня «Очень сильный» отклоняются, и отклонённые запросы не списываются. Если генерация прошла, а склеить фрагменты не удалось, задача завершается ошибкой и списание возвращается.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Да | Обязательное поле, до 20 000 символов. Что происходит дальше: следующее действие, движение камеры и звук. Не менее 1 символов · Не более 20000 символов |
video_url | Да | Клип, который нужно продолжить: MP4, MOV или WebM, до 60 секунд. Его последний кадр становится первым кадром нового фрагмента, поэтому обрежьте клип на чистом, чётком кадре. Не менее 1 символов |
resolution | Нет | Чёткость создаваемого нового фрагмента: 540p, 720p, 1080p, 2k или 4k, по умолчанию 720p. |
duration_seconds | Нет | Длина нового фрагмента: любое целое число от 3 до 16. По умолчанию 5. |
generate_audio | Нет | По умолчанию включено, поэтому новый фрагмент получает сгенерированный звук. По умолчанию: |
enable_prompt_expansion | Нет | По умолчанию выключено. Если включить, модель перепишет и расширит промпт перед генерацией; для буквальных указаний оставьте выключенным. По умолчанию: |
seed | Нет | От 0 до 2147483647. Фиксируйте, чтобы сравнивать, меняя по одному полю; уберите, если нужно разнообразие. |
Стоимость
Оплачивается каждая секунда нового фрагмента в выбранном разрешении; отправленный исходный клип не оплачивается. Отклонённые запросы не оплачиваются.
| Спецификация | Стоимость |
|---|---|
| $0.045 / секунду |
| $0.095 / секунду |
| $0.12 / секунду |
| $0.19 / секунду |
| $0.39 / секунду |
Сценарии использования
Удлините план, который закончился слишком рано: вращающийся столик с товаром, остановившийся до того, как этикетка повернулась к камере, или проход, оборванный до того, как герой дошёл до двери. Продлите на несколько секунд и опишите только оставшееся движение.
Собирайте более длинную последовательность шаг за шагом. Сгенерируйте первый план, продлите его, а затем продлите склеенный результат ещё раз, пока он укладывается в лимит исходника в 60 секунд; каждый шаг оплачивает только добавленные секунды. Поскольку каждый шаг начинается с одного кадра, проверяйте каждый стык, прежде чем наращивать следующий.
Руководство по промптам и практические советы
Опишите следующий момент, а не всю сцену. Кадр уже определяет, кто и где, поэтому используйте промпт для следующего действия, движения камеры и звука. Повторите язык камеры, которым закончился ваш клип, например медленный наезд или статичный кадр, чтобы стык выглядел как единый дубль.
Обрежьте клип перед продлением. Последний кадр — единственное, что видит модель, поэтому размытая концовка, обрыв на середине движения или сильное сжатие напрямую попадут в продолжение. Сначала обрежьте исходник на чистом, чётком кадре. Принимаются исходники до 60 секунд в форматах MP4, MOV и WebM.
Сохраняйте одинаковое разрешение. Разрешение определяет только чёткость, с которой создаётся новый сегмент, поэтому более низкая настройка делает новую часть мягче оригинала. Подберите разрешение по исходнику и задайте duration_seconds ровно на нужную длину: оплачивается только новый сегмент.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "vidu/q4-preview/video-extend",
"input": {
"duration_seconds": 5,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p",
"video_url": "https://example.com/reference.mp4"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.




