Skip to Content
aicentos

Генерация видео Veo

Вызов моделей генерации видео Google Veo через aicentos — текст→видео, изображение→видео, первый и последний кадр, референс-изображения

Обновлено:

Статья для разработчиков: как вызывать модели генерации видео Google Veo через aicentos. API совместим с OpenAI Videos API, поэтому при подключении канала достаточно указать тип openai.

Возможности моделей

Тарификация — по длительности сгенерированного видео (в секундах). Актуальные цены смотрите в консоли aicentos; итоговое списание определяется фактическими записями системы.

Официальные возможности и поддержка в aicentos

МодельДлительность (с)РазрешенияСоотношение сторонАудиоПримечания
veo-3.1-generate-preview4, 6, 8720p, 1080p, 4k16:9, 9:16нативное аудиоДля 1080p и 4k — только 8 секунд; при использовании референс-изображений, первого/последнего кадра и других картинок также рекомендуется 8 секунд.
veo-3.1-fast-generate-preview4, 6, 8720p, 1080p, 4k16:9, 9:16нативное аудиоДля 1080p и 4k — только 8 секунд; при использовании референс-изображений, первого/последнего кадра и других картинок также рекомендуется 8 секунд.

Документация:

Соотношение сторон

Модель16:9 альбомное9:16 портретноеПо умолчаниюРекомендации
veo-3.1-generate-previewподдерживаетсяподдерживается16:9Для 4K — только 8 секунд; расширение видео пока недоступно.
veo-3.1-fast-generate-previewподдерживаетсяподдерживается16:9Для 4K — только 8 секунд; расширение видео пока недоступно.

Соотношение сторон можно задать в запросе через metadata.aspectRatio или поле формы aspectRatio:

{
  "metadata": {
    "aspectRatio": "9:16"
  }
}

Если aspectRatio не передан явно, система сначала выводит его из size: например, 1280x720 → 16:9, 720x1280 → 9:16. Если не передан и size, апстрим по умолчанию использует 16:9.

Аудио

МодельАудио (официально)Поддержка generateAudioРекомендации
veo-3.1-generate-previewнативное аудионе поддерживаетсяНе передавайте generateAudio; нужные звуки опишите в prompt.
veo-3.1-fast-generate-previewнативное аудионе поддерживаетсяНе передавайте generateAudio; нужные звуки опишите в prompt.

Модели серии Veo 3.1 генерируют звук нативно, но в текущей спецификации Veo в Gemini API параметр generateAudio не вынесен в управляемые. Если передать это поле, апстрим может вернуть INVALID_ARGUMENT.

Чтобы управлять аудиосодержимым, опишите в prompt диалоги, окружающие звуки, эффекты или стиль музыки, например:

Маяк на морском берегу в сумерках, волны бьются о камни, вдали глухой шум ветра и крики чаек, кинематографичный свет, стабильная камера

Работа с изображениями на входе

ВозможностьОфициально в Google VeoПоддержка в aicentosПримечания
Видео из одного начального изображенияподдерживаетсяподдерживаетсяЗагрузите 1 изображение через input_reference — оно станет стартовым кадром видео.
Первый/последний кадр / промежуточные кадрыв серии Veo 3.1 поддерживаются image + lastFrameподдерживаетсяПервый кадр — input_reference, последний — last_frame или lastFrame. Рекомендуется серия Veo 3.1 и 8 секунд.
Несколько референс-изображенийв серии Veo 3.1 — до 3 referenceImagesподдерживаетсяЗагрузка через reference_image, reference_images или referenceImages; referenceType — только asset. Рекомендуется 8 секунд.
Расширение видеоVeo 3.1 / Fast поддерживают расширение существующих видео Veoпока не поддерживаетсяВ текущем API aicentos официальный вход video не открыт.
  • Поддерживаются MIME-типы изображений image/jpeg, image/png, image/webp. Рекомендуется передавать файл или Base64, а не URL удалённого изображения.
  • Внимание для режима референсов: апстрим в этом сценарии не поддерживает negativePrompt и может вернуть Negative prompt is not supported in your use case. Не передавайте negativePrompt в запросах с референсами.
  • Техническая деталь: в Veo predictLongRunning в Gemini API изображения передаются через bytesBase64Encoded + mimeType, а не через inlineData, как в обычном generateContent. aicentos конвертирует изображения из multipart в формат, нужный апстриму.

Правила тарификации

  • Тарификация — по длительности видео, в секундах. Используйте значения из таблицы выше; произвольные значения передавать не рекомендуется.
  • Если длительность видео в запросе не указана, по умолчанию тарифицируется 8 секунд.
  • Приоритет определения длительности: metadata.durationSeconds > duration > seconds > 8 секунд по умолчанию.
  • Приоритет определения разрешения: metadata.resolution > size > 720p по умолчанию.
  • 720p / 1080p / 4K тарифицируются по одинаковым правилам, надбавки за разрешение нет.
  • aspectRatio влияет только на ориентацию кадра и не тарифицируется отдельно.
  • Для 4K доступно только 8 секунд.
  • Актуальные цены — в консоли aicentos.

Эндпоинты

Сейчас рекомендуются эти 3 эндпоинта:

НазначениеМетодПуть
Создание задачиPOST/v1/videos
Запрос статусаGET/v1/videos/{task_id}
Скачивание результатаGET/v1/videos/{task_id}/content

Если при запросе статуса нужна сразу и ссылка на результат, можно использовать:

НазначениеМетодПуть
Запрос статуса и ссылки на результатGET/v1/video/generations/{task_id}

Аутентификация

export BASE_URL="https://aicentos.com"
export AICENTOS_API_KEY="sk-xxxxxx"

Все запросы включают:

-H "Authorization: Bearer $AICENTOS_API_KEY"

Создание задачи «текст → видео»

curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $AICENTOS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-generate-preview",
    "prompt": "Маяк на морском берегу в сумерках, камера медленно наезжает, волны бьются о камни, кинематографичный свет, стабильная камера",
    "seconds": "8",
    "size": "1280x720",
    "metadata": {
      "negativePrompt": "blurry, watermark, distorted, low quality",
      "resolution": "720p",
      "aspectRatio": "16:9",
      "seed": 20260401
    }
  }'

Типичный ответ:

{
  "id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "object": "video",
  "model": "veo-3.1-generate-preview",
  "status": "queued",
  "progress": 0,
  "created_at": 1775025000
}

Создание задачи «изображение → видео» с первым кадром

Для image-to-video сейчас рекомендуется multipart/form-data; поле с первым кадром должно называться input_reference.

curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $AICENTOS_API_KEY" \
  -H "Accept: application/json" \
  -F "model=veo-3.1-generate-preview" \
  -F "prompt=Девушка на кадре поворачивает голову к камере, лёгкий ветер шевелит волосы, городские огни на фоне мягко размыты, камера плавно наезжает" \
  -F "input_reference=@./first-frame.png;type=image/png" \
  -F "seconds=8" \
  -F "size=1280x720" \
  -F "resolution=720p" \
  -F "aspectRatio=16:9" \
  -F "negativePrompt=blurry, watermark, deformed hands" \
  -F "seed=20260401"

Создание задачи с первым и последним кадром

Для такой задачи нужны оба изображения: первый кадр — input_reference, последний — last_frame или lastFrame.

curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $AICENTOS_API_KEY" \
  -H "Accept: application/json" \
  -F "model=veo-3.1-generate-preview" \
  -F "prompt=Естественный переход от первого кадра с девушкой к последнему кадру с юношей, камера плавно движется, городские огни размыты, волосы и одежда слегка колышутся на ветру, переход выглядит натурально" \
  -F "input_reference=@./first-frame.png;type=image/png" \
  -F "last_frame=@./last-frame.png;type=image/png" \
  -F "seconds=8" \
  -F "size=1280x720" \
  -F "resolution=720p" \
  -F "aspectRatio=16:9" \
  -F "negativePrompt=blurry, watermark, distorted face, deformed hands" \
  -F "seed=20260402"

Создание задачи с референс-изображениями

Задачи с референсами поддерживаются только в серии Veo 3.1, максимум 3 изображения, referenceType — только asset. Поля могут называться reference_image, reference_images или referenceImages. Не передавайте negativePrompt в таких задачах.

curl -X POST "$BASE_URL/v1/videos" \
  -H "Authorization: Bearer $AICENTOS_API_KEY" \
  -H "Accept: application/json" \
  -F "model=veo-3.1-generate-preview" \
  -F "prompt=Опираясь на внешность персонажей с двух картинок и атмосферу ночного города, сгенерируй кинематографичный уличный кадр с двумя людьми: камера плавно движется, фонари на фоне мягко размыты, герои естественно смотрят в объектив" \
  -F "reference_image=@./ref-1.png;type=image/png" \
  -F "reference_image=@./ref-2.png;type=image/png" \
  -F "reference_type=asset" \
  -F "seconds=8" \
  -F "size=1280x720" \
  -F "resolution=720p" \
  -F "aspectRatio=16:9" \
  -F "seed=20260403"

Поддерживается также JSON / Base64:

{
  "model": "veo-3.1-generate-preview",
  "prompt": "Сгенерируй рекламный кадр, используя внешний вид продукта с референс-изображения",
  "duration": 8,
  "metadata": {
    "resolution": "720p",
    "aspectRatio": "16:9",
    "referenceImages": [
      {
        "image": {
          "bytesBase64Encoded": "BASE64_IMAGE",
          "mimeType": "image/png"
        },
        "referenceType": "asset"
      }
    ]
  }
}

Запрос статуса задачи

Сначала сохраните id или task_id, возвращённые при создании задачи:

export TASK_ID="task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Затем запросите статус:

curl -X GET "$BASE_URL/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $AICENTOS_API_KEY"

Во время обработки типичный ответ:

{
  "id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "object": "video",
  "model": "veo-3.1-generate-preview",
  "status": "in_progress",
  "progress": 50,
  "created_at": 1775025000
}

По завершении типичный ответ:

{
  "id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "object": "video",
  "model": "veo-3.1-generate-preview",
  "status": "completed",
  "progress": 100,
  "created_at": 1775025000,
  "completed_at": 1775025068
}

Запрос статуса и ссылки на результат

Если при опросе сразу нужна ссылка для скачивания, вызовите:

curl -X GET "$BASE_URL/v1/video/generations/$TASK_ID" \
  -H "Authorization: Bearer $AICENTOS_API_KEY"

Типичный ответ:

{
  "code": "success",
  "message": "",
  "data": {
    "error": null,
    "format": "mp4",
    "metadata": null,
    "status": "succeeded",
    "task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "url": "https://aicentos.com/v1/videos/task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/content"
  }
}

Скачивание видео

После завершения задачи скачайте файл напрямую:

curl -L "$BASE_URL/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $AICENTOS_API_KEY" \
  -o veo-result.mp4

Значения статусов

GET /v1/videos/{task_id} возвращает в основном такие статусы:

СтатусЗначение
queuedв очереди
in_progressгенерация
completedзавершено
failedошибка

GET /v1/video/generations/{task_id} возвращает в основном такие статусы:

СтатусЗначение
queuedв очереди
processingгенерация
succeededуспешно
failedошибка

Важные замечания

  • prompt обязателен.
  • Для image-to-video поле с изображением должно называться input_reference.
  • В задачах с первым и последним кадром нужны оба изображения: первый — input_reference, последний — last_frame или lastFrame.
  • Задачи с референсами поддерживаются только в серии Veo 3.1, максимум 3 изображения и обязательно 8 секунд.
  • В задачах с референсами не передавайте negativePrompt.
  • Для image-to-video в Gemini не рекомендуется передавать URL удалённых изображений — лучше файл или Base64.
  • Опрашивайте GET /v1/videos/{task_id} и скачивайте результат только после status=completed.
  • В серии Veo 3.1 можно передавать 4, 6 или 8 секунд; для 1080p и 4k — только 8 секунд. - Альбомное видео — aspectRatio=16:9, портретное — aspectRatio=9:16; если не передать, по умолчанию берётся 16:9.
  • Не передавайте параметр generateAudio. Модели Veo 3.1 генерируют звук нативно, но текущий Gemini API не позволяет включать/выключать звук через generateAudio; за передачу этого поля апстрим может вернуть INVALID_ARGUMENT.
  • Чтобы управлять аудиосодержимым, опишите в prompt диалоги, окружение, эффекты или стиль музыки.
  • Официальный Veo 3.1 поддерживает расширение видео, но в текущем API aicentos вход video пока не открыт.