Veo 3 (fast / quality / extend)
Veo 3 — флагман Google для text-to-video и image-to-video, доступен в трёх режимах:
veo-3-fast— быстрая генерация для черновиковveo-3-quality— финальное качество, дольше и дорожеveo-extend— удлинение существующего Veo-видео ещё на 8 секунд
Маршрутизируется primary через runblob, fallback через grsai-provider.
Параметры запроса
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
model_name | string | да | veo-3-fast, veo-3-quality, или veo-extend |
prompt | string | да | Текстовое описание сцены |
duration | int | да | Длительность в секундах. 5-8 |
aspect_ratio | string | да | 16:9 или 9:16 |
image_url | string | нет | image-to-video: URL стартового кадра |
seed | int | нет | Для воспроизводимости |
webhook_url | string | нет | URL для callback’а на завершение |
Для veo-extend дополнительно:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
source_video_url | string | да | URL видео, которое удлиняем (должно быть Veo) |
Пример: text-to-video
curl -X POST https://nexusapi.dev/generate \ -H "Authorization: Bearer $NEXUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "params": { "model_name": "veo-3-fast", "prompt": "Аэрофотосъёмка горного озера на рассвете, туман над водой, синематик", "duration": 8, "aspect_ratio": "16:9" } }'import os, requests, time
r = requests.post( "https://nexusapi.dev/generate", headers={"Authorization": f"Bearer {os.environ['NEXUS_KEY']}"}, json={"params": { "model_name": "veo-3-fast", "prompt": "Аэрофотосъёмка горного озера на рассвете, туман над водой, синематик", "duration": 8, "aspect_ratio": "16:9", }},)task_id = r.json()["task_id"]
while True: s = requests.get( f"https://nexusapi.dev/tasks/{task_id}", headers={"Authorization": f"Bearer {os.environ['NEXUS_KEY']}"}, ).json() if s["status"] in ("completed", "failed"): print(s) break time.sleep(5)Пример: image-to-video
Передай image_url со стартовым кадром:
{ "params": { "model_name": "veo-3-quality", "prompt": "Камера медленно отъезжает, раскрывая панораму", "image_url": "https://your-bucket.s3.amazonaws.com/start-frame.jpg", "duration": 8, "aspect_ratio": "16:9" }}Можно передать прямо base64-картинку в image_url — мы загрузим в S3 за тебя. Но публичный URL быстрее и не съедает quota запроса (base64 раздувает body в 1.3 раза).
Пример: extend
{ "params": { "model_name": "veo-extend", "prompt": "Камера продолжает движение, тот же стиль", "source_video_url": "https://nexusapi-s3.../result-of-previous-veo-task.mp4", "duration": 8, "aspect_ratio": "16:9" }}Структура result при completed
{ "video_url": "https://nexusapi-s3.../result.mp4", "duration": 8, "provider_task_id": "..."}video_url живёт постоянно — это публичный S3-URL.
Ограничения и тонкости
durationвалидируется провайдером. Сейчас Veo 3 принимает только 5-8 секунд. Запросы сduration: 10будут отклонены провайдером с ошибкой.- Safety-фильтры: Veo отказывает в реальных людях (особенно публичных лицах), грубом насилии и NSFW. Получишь
failedсerror: "Provider rejected prompt...". - Aspect ratio: только
16:9и9:16.1:1не поддерживается. - Изображения для image-to-video — рекомендуется не менее 1024×576 для
16:9. Меньше — провайдер апскейлит, качество падает.
Цены
Все три варианта Veo биллингуются за генерацию, не за секунду. Актуальная цена — в panel.nexusapi.dev/models или через GET /public/models.