Veo 3.1
Генерируйте ролики Veo 3.1 через единый API задач: три модели с оплатой за 8-секундный ролик и две с посекундной оплатой, с кадрами, звуком и выводом в GIF.
Veo 3.1 — модель генерации видео от Google. SeedRouter предлагает её под пятью ID моделей на одной конечной точке: три с оплатой за ролик, где каждый ролик длится 8 секунд, и две с посекундной оплатой и дополнительными настройками (длительность, звук, seed, негативный промпт, первый и последний кадр). Отправьте запрос, сохраните возвращённый идентификатор задачи и получите готовое видео из задачи. Изображения передаются как URL.
ID моделей
| ID модели | Оплата | Длительность | Изображения | Звук |
|---|---|---|---|---|
veo-3.1-fast | за ролик | 8 секунд | до 3, режим кадров или референсов | без переключателя |
veo-3.1-quality | за ролик | 8 секунд | до 3, режим кадров | без переключателя |
veo-3.1-lite | за ролик | 8 секунд | нет (текст в видео) | без переключателя |
veo-3.1-fast-official | за секунду | 4, 6 или 8 секунд | первый и последний кадр | generate_audio |
veo-3.1-quality-official | за секунду | 4, 6 или 8 секунд | первый и последний кадр | generate_audio |
Актуальные цены — на странице модели.
Краткий пример
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast",
"prompt": "A red paper boat drifts across a calm pond at sunrise, soft mist on the water, slow push-in on a 35mm lens, no text, no logos.",
"resolution": "720p",
"aspect_ratio": "16:9"
}'Конечная точка
POST https://api.seedrouter.ai/v1/videos/generations| Заголовок | Значение |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
В ответе приходит задача ({"id": "task_...", "status": "processing"}), а не готовое видео. Результат получайте опросом GET /v1/tasks/{task_id}. Храните API-ключи в серверном коде.
Параметры: модели с оплатой за ролик
veo-3.1-fast, veo-3.1-quality и veo-3.1-lite.
| Поле | Тип | По умолчанию | Примечания |
|---|---|---|---|
model | string | обязательно | Один из трёх ID выше. |
prompt | string | обязательно | Описывает сцену. |
duration | integer | 8 | Принимается только 8. |
aspect_ratio | enum | 16:9 или 9:16. | |
resolution | enum | 720p | 720p, 1080p или 4k (в любом регистре). У veo-3.1-lite нет 4k. |
enable_gif | boolean | false | Вернуть ролик как анимированный GIF вместо MP4. Только 720p. |
nsfw_check | boolean | false | Проверить промпт и изображения на небезопасный контент перед генерацией. |
image_urls | array | Только Fast и Quality. До 3 публичных URL изображений. | |
generation_type | enum | по числу изображений | Только Fast и Quality. frame или reference; Quality принимает только frame. |
Параметры: модели с посекундной оплатой
veo-3.1-fast-official и veo-3.1-quality-official.
| Поле | Тип | По умолчанию | Примечания |
|---|---|---|---|
model | string | обязательно | Один из двух ID выше. |
prompt | string | обязательно | Описывает сцену. |
negative_prompt | string | Чего не должно быть в ролике. | |
duration | integer | 8 | 4, 6 или 8 секунд. |
aspect_ratio | enum | 16:9 | 16:9 или 9:16. |
resolution | enum | 720p | 720p, 1080p или 4k (в любом регистре). |
first_frame_image | string | Публичный URL изображения. Ролик начинается с него. | |
last_frame_image | string | Публичный URL изображения. Требует first_frame_image. | |
seed | integer | случайный | От 0 до 4294967295. |
generate_audio | boolean | false | Добавить звуковую дорожку. Тарифицируется по более высокому посекундному тарифу. |
person_generation | enum | allow_adult | allow_adult или disallow. |
resize_mode | enum | pad | pad или crop. Требует first_frame_image. |
enhance_prompt | boolean | true | Принимается только true; в остальных случаях не передавайте поле. |
nsfw_check | boolean | false | Проверить промпт и изображения на небезопасный контент перед генерацией. |
Схема строгая: неизвестные поля отклоняются, а не игнорируются, и каждая модель принимает только свои поля. Колбэки недоступны; вместо этого опрашивайте задачу.
Режимы изображений
В veo-3.1-fast и veo-3.1-quality поле generation_type определяет, как используются image_urls:
generation_type | Изображения | Действие |
|---|---|---|
frame | 1 или 2 | Первое изображение — первый кадр, второе — последний кадр. |
reference | до 3 | Изображения служат референсами для объекта и стиля. Только Fast. |
| не указан | 2 или 3 | Два изображения используют режим кадров, три — режим референсов. |
veo-3.1-quality не поддерживает режим референсов, поэтому отклоняет generation_type: "reference", а также три изображения без generation_type. veo-3.1-lite не принимает изображений.
В моделях с посекундной оплатой задайте first_frame_image и при необходимости last_frame_image. resize_mode определяет, будет ли изображение другой формы дополнено полями или обрезано.
Медиавходы
Изображения передаются как публичные URL по HTTP(S):
{ "image_urls": ["https://example.com/first.jpg", "https://example.com/last.jpg"] }В моделях с оплатой за ролик каждое изображение должно быть в формате JPEG, PNG или WebP и весить не более 10 МБ; файл, нарушающий эти правила, приводит к сбою задачи без списания. Данные в base64 не принимаются: загрузите файл в собственное хранилище и передайте его URL.
Факторы стоимости
Актуальные тарифы смотрите в разделе цен модели.
per-clip models: cost = price of one clip at the output resolution (720p and 1080p cost the same)
per-second models: cost = duration × rate for the resolution and audio settingСумма фиксируется при приёме запроса, поэтому зарезервированная сумма равна списанной. Итоговые списания смотрите в истории использования своей учётной записи. Неуспешные задачи не тарифицируются.
Схема вывода
При отправке возвращается задача:
{"id": "task_...", "model": "veo-3.1-fast", "status": "processing", "created_at": 1789689600}Получение задачи
GET https://api.seedrouter.ai/v1/tasks/{task_id}Опрашивайте каждые 10–20 секунд, пока status не станет completed или failed. Сетевой тайм-аут во время опроса не означает, что генерация завершилась сбоем: сохраните идентификатор задачи и продолжите проверку. Не создавайте другую задачу, чтобы узнать ход выполнения.
Выполненная задача
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689720,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}video_url — это MP4 или GIF, если в запросе задан enable_gif. Ссылка ведёт в хранилище SeedRouter.
Что вернули наши тестовые запуски (по одному запуску, 2026-10-04):
| Запрос | Файл |
|---|---|
veo-3.1-fast, 9:16, режим кадров | MP4, H.264, 720 × 1280, 24 fps, 8 с, со стереодорожкой AAC |
veo-3.1-fast-official, 16:9, 720p, 4 с, без generate_audio | MP4, H.264, 1280 × 720, 24 fps, 4 с, без звуковой дорожки |
veo-3.1-lite, enable_gif | GIF, 480 × 270, 16 fps, 8 с |
У моделей с оплатой за ролик нет переключателя звука; модели с посекундной оплатой добавляют звуковую дорожку только с generate_audio.
Ошибки
Запросы, отклонённые до создания задачи, возвращают HTTP-ошибку вместе с объектом error и не тарифицируются. Задача, которая завершилась сбоем уже после приёма, при запросе возвращает HTTP 200 с status: "failed" и объектом error.
Коды, HTTP-статусы и рекомендации по повторным попыткам приведены в общем каталоге ошибок.
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}Если тайм-аут произошёл при самой отправке, сначала проверьте свои задачи и только потом отправляйте повторно: первый запрос мог быть уже принят.
Советы
- Начинайте с
veo-3.1-liteилиveo-3.1-fastв 720p, чтобы опробовать промпт, а для финального рендера переходите на Quality или 4k. - Называйте камеру и свет: объектив и движение камеры меняют план сильнее, чем прилагательные.
- Добавьте
no text, no logos, чтобы в кадре не появлялись выдуманные надписи и знаки. - Если план должен начинаться и заканчиваться заданными изображениями, используйте режим кадров с двумя изображениями или модели с посекундной оплатой с
first_frame_imageиlast_frame_image. - Зафиксируйте
seedв моделях с посекундной оплатой и меняйте по одной фразе за раз, чтобы дорабатывать план.
