Veo 3.1 API

model: veo/3-lite

model: veo/3-fast

model: veo/3

Цена: за секунду, от 9 кр. ($0.045) до 14.4 кр. ($0.072). Разрешения: 720p, 1080p.

Цена: за секунду, от 18 кр. ($0.09) до 54 кр. ($0.27). Разрешения: 720p, 1080p, 4k.

Цена: за секунду, от 72 кр. ($0.36) до 108 кр. ($0.54). Разрешения: 720p, 1080p, 4k.

кр. — кредиты, покупаются за рубли.

Уровень

Песочница

Input

Столько стоит этот ролик: цена зависит только от уровня, разрешения и длительности, а их вы задали в форме. Столько и спишется, когда работа закончится.

Ролик собирается после входа: новому счёту начисляют 50 кредитов, и первые ролики идут на них. Самая дешёвая секунда стоит 9 кр. Войдите, чтобы начать.

{
  "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
  "model": "veo/3-fast",
  "resolution": "720p",
  "duration": 4
}
Столько стоит этот ролик: цена зависит только от уровня, разрешения и длительности, а их вы задали в форме. Столько и спишется, когда работа закончится.
Output

Нажмите «Запустить» — готовый ролик появится здесь

Ролик делается минуты. Задача живёт не дольше 60 минут, после чего шлюз закрывает её сам и возвращает удержание целиком.

{
  "code": 200,
  "msg": "success",
  "data": {
    "successFlag": 1,
    "response": {
      "resultUrls": [
        "https://file.example/result.mp4"
      ]
    },
    "errorMessage": null
  }
}

Цена Veo 3.1

Цена за ролик целиком: ставка выбранного разрешения, умноженная на запрошенные секунды и округлённая вверх до целого кредита. Она известна до вызова, ровно эта сумма удерживается на время работы, и ровно она списывается при готовности — неудачный ролик не стоит ничего.

Разрешение За секунду Ролик 4 сРолик 6 сРолик 8 с Официальная
720p 9 кр. · $0.0454,5 ₽ 36 кр.54 кр.72 кр. $0.05/с
1080p 14.4 кр. · $0.0727,2 ₽ 58 кр.87 кр.116 кр. $0.08/с
Разрешение За секунду Ролик 4 сРолик 6 сРолик 8 с Официальная
720p 18 кр. · $0.099 ₽ 72 кр.108 кр.144 кр. $0.1/с
1080p 21.6 кр. · $0.10810,8 ₽ 87 кр.130 кр.173 кр. $0.12/с
4k 54 кр. · $0.2727 ₽ 216 кр.324 кр.432 кр. $0.3/с
Разрешение За секунду Ролик 4 сРолик 6 сРолик 8 с Официальная
720p 72 кр. · $0.3636 ₽ 288 кр.432 кр.576 кр. $0.4/с
1080p 72 кр. · $0.3636 ₽ 288 кр.432 кр.576 кр. $0.4/с
4k 108 кр. · $0.5454 ₽ 432 кр.648 кр.864 кр. $0.6/с

Veo 3.1 Lite — 720p, 1080p; Veo 3.1 Fast — 720p, 1080p, 4k; Veo 3.1 Quality — 720p, 1080p, 4k. Разрешения, которого нет в этом списке, у уровня нет и в продаже: шлюз отвечает на такой запрос отказом 422.

Официальная цена взята из таблицы цен Vertex AI, строка Veo, колонка «Video + Audio»: ролики приходят со звуком, и сравнивать нашу цену надо с тем тарифом, по которому этот же ролик обошёлся бы у Google. кр. — кредиты, покупаются за рубли.

Вызов через API

Адреса вызова

Veo вызывается не через createTask, а своими двумя адресами — теми же, что у поставщика: код, написанный под его generate и record-info, работает со шлюзом сменой адреса и ключа.

POST https://api.gen202.com/api/v1/veo/generate
GET https://api.gen202.com/api/v1/veo/record-info?taskId=…

Первый вызов ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние, а когда ролик готов — ссылку на файл. Ключ передаётся в обоих запросах заголовком Authorization: Bearer sk-… и выпускается в кабинете.

Поля запроса

Поля лежат в корне тела запроса, а не внутри input. Обязателен один prompt: остальные шлюз подставит сам — теми значениями, что названы в столбце пояснения, и счёт посчитает по ним же.

ПолеТипОбяз.Допустимые значения
prompt текст обязательное не длиннее 20 000 символов · Описание ролика. Пустое — отказ 422 до обращения к поставщику.
imageUrls список ссылок опц. до 3 ссылок на изображение · Картинки на входе. Адрес проверяется теми же правилами, что у остальных моделей: схема, длина и запрет ходить внутрь чужой сети — отказ 422 до обращения к поставщику.
model значение из списка опц. veo/3, veo/3-fast, veo/3-lite · Уровень модели. Без него шлюз подставит veo/3-fast; написание поставщика (veo3_fast) принимается наравне с нашим.
generationType значение из списка опц. TEXT_2_VIDEO, FIRST_AND_LAST_FRAMES_2_VIDEO, REFERENCE_2_VIDEO · Что делать с картинками на входе: развернуть ролик вокруг одной, взять две как первый и последний кадр или до трёх как образцы. Сочетание с уровнем и длительностью проверяет поставщик.
aspect_ratio значение из списка опц. 16:9, 9:16, Auto · Форма кадра. Имя пишется через подчёркивание — так оно записано у поставщика. Не прислано — поле не уходит вовсе, кадр выбирает поставщик.
resolution значение из списка опц. 720p, 1080p, 4k · Разрешение ролика. Без него шлюз подставит 720p.
duration число из списка опц. 4, 6, 8 секунд · Длительность ролика в секундах — по ней считается цена. Без неё шлюз подставит 8.
enableTranslation да или нет опц. true или false · Флаг поставщика. Не прислан — шлюз его не отправляет.
watermark текст опц. не длиннее 20 000 символов · Водяной знак. Предела длины поставщик не называет — стоит наш общий потолок.
callBackUrl текст опц. полный адрес http или https · Адрес, на который шлюз постучится, когда ролик будет готов или отказан. Тело — то же, что отдаёт запрос состояния.

Значение вне списка шлюз отклоняет до обращения к поставщику ответом 422, и кредитов это не стоит. Поля, которых нет в таблице, он молча отбрасывает.

Как узнать готовность

Поля state у Veo нет: состояние приходит числом successFlag — 0 работает, 1 готово (ссылка на файл в response), 2 и 3 отказ, причина в errorMessage. Расчёт закрывается тем же запросом состояния: списание при готовности и возврат при отказе происходят в тот самый record-info, который увидел итог. Пока вы не спросили, кредиты остаются удержанными.

Счёт идёт за секунду видео и известен до запуска целиком — ровно эта сумма удерживается на время работы, и неудачный ролик не стоит ничего. Сочетание, которого нет в продаже (veo/3-lite в 4k), шлюз отклоняет ответом 422, а не считает по выдуманной.

Ответ, когда ролик готов

Конверт тот же, что у задач, а внутри — ответ поставщика как есть. Ссылка лежит объектом, а не строкой JSON внутри JSON: разбирать её вторым разбором, как resultJson обычных задач, не нужно.

record-info.json
{
  "code": 200,
  "msg": "success",
  "data": {
    "successFlag": 1,
    "response": { "resultUrls": ["https://file.example/result.mp4"] },
    "errorMessage": null
  }
}

Отказы

Тело отказа одно на все случаи: {"code":…,"msg":…,"data":null} — тот же конверт, что у задач. Ролик, не дошедший до результата, не тарифицируется: удержанные кредиты возвращаются целиком.

КодАдресКогда
401 /api/v1/veo/generate Ни ключа в заголовке Authorization, ни входа по сессии; либо ключ неверный или отключён.
402 /api/v1/veo/generate Свободных кредитов меньше, чем стоит запрошенный ролик. Цена Veo известна до вызова целиком, и удерживается ровно она.
422 /api/v1/veo/generate Пустой prompt; значение model, resolution или duration вне списка; ссылка в imageUrls не прошла проверку адреса; сочетание уровня и разрешения, которого нет в продаже. Сюда же попадает запрос по сессии, назвавший чужой или отключённый ключ учёта.
502 /api/v1/veo/generate Поставщик не ответил или ответил ошибкой. Задача не создаётся, удержание снимается целиком.
503 /api/v1/veo/generate Поставщик перегружен или отбил запрос по своему лимиту. Удержание снимается, повторить можно через несколько секунд — срок назван в заголовке Retry-After.
401 /api/v1/veo/record-info Ни ключа в заголовке Authorization, ни входа по сессии; либо ключ неверный или отключён.
404 /api/v1/veo/record-info Задачи с таким номером нет или она создана другим аккаунтом.
502 /api/v1/veo/record-info Состояние узнать не удалось: поставщик не ответил или ответил ошибкой. Списание при этом не производится: расчёт закрывается по состоянию задачи, а оно осталось неизвестным.
503 /api/v1/veo/record-info Поставщик перегружен. Повторить опрос можно через несколько секунд — срок назван в заголовке Retry-After; удержание остаётся на месте.

Пример вызова

Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.

veo.sh
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
  -H "Authorization: Bearer sk-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
    "model": "veo/3-lite",
    "resolution": "720p",
    "duration": 8
  }' | jq -r '.data.taskId')

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
  RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
    -H "Authorization: Bearer sk-ваш-ключ")
  FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
  [ "$FLAG" != "0" ] && break
  sleep 3
done

# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
veo.py
import time

import requests

headers = {"Authorization": "Bearer sk-ваш-ключ"}

# 1. Поставить задачу — в ответе её номер
created = requests.post(
    "https://api.gen202.com/api/v1/veo/generate",
    headers=headers,
    json={
        "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
        "model": "veo/3-lite",
        "resolution": "720p",
        "duration": 8,
    },
).json()
task_id = created["data"]["taskId"]

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
    record = requests.get(
        "https://api.gen202.com/api/v1/veo/record-info",
        headers=headers,
        params={"taskId": task_id},
    ).json()["data"]
    if record["successFlag"] != 0:
        break
    time.sleep(3)

# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
    raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])

Пример вызова

Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.

veo.sh
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
  -H "Authorization: Bearer sk-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
    "model": "veo/3-fast",
    "resolution": "720p",
    "duration": 8
  }' | jq -r '.data.taskId')

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
  RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
    -H "Authorization: Bearer sk-ваш-ключ")
  FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
  [ "$FLAG" != "0" ] && break
  sleep 3
done

# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
veo.py
import time

import requests

headers = {"Authorization": "Bearer sk-ваш-ключ"}

# 1. Поставить задачу — в ответе её номер
created = requests.post(
    "https://api.gen202.com/api/v1/veo/generate",
    headers=headers,
    json={
        "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
        "model": "veo/3-fast",
        "resolution": "720p",
        "duration": 8,
    },
).json()
task_id = created["data"]["taskId"]

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
    record = requests.get(
        "https://api.gen202.com/api/v1/veo/record-info",
        headers=headers,
        params={"taskId": task_id},
    ).json()["data"]
    if record["successFlag"] != 0:
        break
    time.sleep(3)

# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
    raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])

Пример вызова

Показан весь путь: постановка задачи, ожидание с паузой в 3 секунды и ссылка на готовый ролик. Подставить остаётся только свой ключ.

veo.sh
# 1. Поставить задачу — в ответе её номер
TASK=$(curl -s https://api.gen202.com/api/v1/veo/generate \
  -H "Authorization: Bearer sk-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
    "model": "veo/3",
    "resolution": "720p",
    "duration": 8
  }' | jq -r '.data.taskId')

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while true; do
  RECORD=$(curl -s "https://api.gen202.com/api/v1/veo/record-info?taskId=$TASK" \
    -H "Authorization: Bearer sk-ваш-ключ")
  FLAG=$(echo "$RECORD" | jq -r '.data.successFlag')
  [ "$FLAG" != "0" ] && break
  sleep 3
done

# 3. Забрать ссылку: 1 — готово, 2 и 3 — отказ
echo "$RECORD" | jq -r '.data.response.resultUrls[0] // .data.errorMessage'
veo.py
import time

import requests

headers = {"Authorization": "Bearer sk-ваш-ключ"}

# 1. Поставить задачу — в ответе её номер
created = requests.post(
    "https://api.gen202.com/api/v1/veo/generate",
    headers=headers,
    json={
        "prompt": "рыжий кот идёт по подоконнику, мягкий свет",
        "model": "veo/3",
        "resolution": "720p",
        "duration": 8,
    },
).json()
task_id = created["data"]["taskId"]

# 2. Спрашивать состояние, пока successFlag не перестанет быть 0
while True:
    record = requests.get(
        "https://api.gen202.com/api/v1/veo/record-info",
        headers=headers,
        params={"taskId": task_id},
    ).json()["data"]
    if record["successFlag"] != 0:
        break
    time.sleep(3)

# 3. Забрать ссылку. Разбор здесь один: у Veo response — объект, а не строка
if record["successFlag"] != 1:
    raise SystemExit("отказ: " + str(record.get("errorMessage")))
print(record["response"]["resultUrls"][0])

Общее для всех моделей — ключ и заголовки, баланс и расход, справочник по Veo.

Что делает нейросеть Google Veo 3.1

Google Veo 3.1 — нейросеть, которая снимает видео и сразу записывает к нему звук.

Начинается всё с описания словами. Присланные картинки меняют работу: по одной снимается целый ролик, две задают его начало и конец, а несколько сразу служат образцами.

Уровень модели — это значение поля model, и имена у него такие: veo/3, veo/3-fast и veo/3-lite.

Без описания запрос не уйдёт: поле prompt единственное обязательное, и пустое шлюз отбивает у себя.

Адресов у модели два: задача ставится запросом на /api/v1/veo/generate, а готовность спрашивают у /api/v1/veo/record-info. Оба разобраны выше, в разделе про вызов, и в справочнике «Veo».

Прошлое поколение линейки разобрано отдельно: что оно умело, чего в нём не было и что с ним стало у Google — на странице Veo 3.

Можно ли работать в Veo 3.1 бесплатно и что придётся скачать

Работать в Veo 3.1 бесплатно не получится: ролик считают по секундам, и ставка зависит от уровня и разрешения. Новому счёту при первом входе начисляют приветственные кредиты, и тратить их можно на любую модель каталога. Ежемесячного платежа нет: с баланса уходит только стоимость сделанных роликов.

Скачать Veo 3.1 себе на компьютер нельзя: модель работает у Google, а обращаются к ней по нашему адресу. Готовое видео, наоборот, скачивается: под проигрывателем в песочнице стоит кнопка «Скачать», и файл приходит в mp4.

Официальным сайтом Veo 3.1 мы не являемся: модель выпустил Google, а GEN202 открывает к ней доступ из России.

Как сделать видео в Veo 3.1: порядок работы

Порядок один на всех уровнях, и меняются в нём только значения полей. Ниже он разобран по шагам — от первой строки описания до готового файла.

  1. Напишите, что происходит в кадре. Поле prompt единственное обязательное. В нём называют, кто в кадре, что он делает, что вокруг него и как при этом ведёт себя камера.
  2. Назовите звук словами. Звуковую дорожку модель пишет по тому же описанию. Реплики героев, шум обстановки и отдельные звуки происходящего называют там же, где сюжет.
  3. Выберите уровень. Имя уровня уходит в поле model. От него зависят потолок разрешения и ставка за секунду, а набор полей у всех уровней общий.
  4. Задайте длину, разрешение и форму кадра. Это поля duration, resolution и aspect_ratio. Первые два вместе решают, во что обойдётся задача; остальные поля на цену не влияют.
  5. Приложите картинки, если они есть. Ссылки складывают в imageUrls, а поле generationType говорит, как их прочитать: развернуть одну, связать пару кадров или взять образцами.
  6. Запустите задачу и заберите ролик. Задача ставится на /api/v1/veo/generate, готовность спрашивают у /api/v1/veo/record-info. В песочнице ролик появляется в проигрывателе сам, и оттуда же скачивается файлом.

Чем различаются уровни Veo 3.1

Набор полей у всех уровней общий, поэтому переход с одного на другой — это правка одной строки запроса, а не переделка вызова.

Расходится потолок разрешения: Veo 3.1 Fast и Veo 3.1 Quality доходят до 4k, у Veo 3.1 Lite он 1080p.

Расходится и цена: своя ставка за секунду стоит у каждого сочетания уровня с разрешением, и все они собраны в таблице выше.

Длительность, форма кадра и предел списка картинок у всех уровней одни и те же.

Уровень, который подставится сам, если поле model не прислать, — veo/3-fast.

ХарактеристикаLiteFastQuality
Имя для поля modelveo/3-liteveo/3-fastveo/3
Потолок разрешения1080p4k4k
Длительность, секунд4, 6 и 84, 6 и 84, 6 и 8
Формы кадра16:9, 9:16 и Auto16:9, 9:16 и Auto16:9, 9:16 и Auto
Ссылок в поле imageUrlsдо 3до 3до 3
Звукпишется вместе с картинкойпишется вместе с картинкойпишется вместе с картинкой

Длительность и разрешение ролика Veo 3.1

Длину берут из поля duration, и выбор такой: 4, 6 и 8 секунд. Не прислано — уйдёт 8.

Разрешение задаёт поле resolution: 720p, 1080p и 4k. Само подставляется 720p.

Форма кадра лежит в поле aspect_ratio: 16:9, 9:16 и Auto. Значение Auto отдаёт выбор поставщику — пропорции он берёт с присланной картинки.

Имя aspect_ratio пишется через подчёркивание, в отличие от соседних полей запроса: так его принимает поставщик, а слитное написание он пропускает молча.

Что кладут в запрос Veo 3.1 кроме описания

Картинки идут одним списком imageUrls, и берёт он до 3 ссылок. Отдельных полей под первый и последний кадр здесь не заведено.

Как их прочитать, говорит поле generationType: съёмка по одному описанию, работа по паре кадров и работа по образцам.

Своя надпись поверх кадра ставится полем watermark.

Как выглядит тело запроса целиком, показывает песочница; поля по одному разобраны в разделе «Veo».

Что писать в описании Veo 3.1, чтобы вышло задуманное

Описание — единственное обязательное поле, и от того, как оно составлено, зависит больше, чем от всех прочих значений вместе. Ниже — из чего его складывают.

  • Начинают с главного: кто в кадре, что он делает и что происходит вокруг. Начало описания модель выполняет точнее конца.
  • Героя и камеру разводят по разным предложениям. Если герой сам идёт на камеру, наезда камеры в ролике может не выйти вовсе.
  • Движение камеры называют одно. Два указания сразу модель разрешает самым простым способом — оставляет кадр неподвижным.
  • Действий в одном описании оставляют немного. Чем их больше, тем вернее указание про камеру потеряется первым.
  • Когда нужен один непрерывный план, это говорят прямо. Смену плана внутри ролика тоже заказывают словами описания.
  • Реплику подписывают именем того, кто её произносит, — иначе при двух героях она достанется не тому.
  • Реплики держат короткими: чем длиннее сказанное, тем хуже оно совпадает с движением губ.
  • Реплику отделяют двоеточием, а не кавычками: взятое в кавычки модель охотнее рисует в кадре надписью.
  • Звуки называют поимённо, а не одним словом «звуки»: модель пишет дорожку ровно по тем словам, которые прочитала.
  • Когда рассказ собирают из нескольких роликов, внешность героя и обстановку описывают заново в каждом.

Готовое описание вместе с остальными полями удобно собрать в песочнице: форма заполнена допустимыми значениями до первой правки.

Что Google обещает от Veo 3.1

Звук получается вместе с картинкой, а не накладывается после неё.

Слоёв в нём три: отдельные звуки происходящего, шум обстановки вокруг и реплики тех, кто в кадре.

Описание модель выполняет и короткое, и подробное, а движение и поведение предметов передаёт как в реальной жизни.

Veo 3.1 Quality предложен под съёмку, где важнее всего достоверность картинки в готовом монтаже.

Veo 3.1 Fast назван быстрым при сохранённом качестве и рассчитан на обычный ход работы. Отдельно он предложен тем, у кого ролики собирает программа: рекламные вставки, быстрая проверка нескольких замыслов, материал для лент.

Veo 3.1 Lite назван самым дешёвым — для тех, кто выпускает ролики потоком и переделывает их помногу раз.

Образцы служат одному: до 3 снимков одного человека, животного или товара, и внешность его обещано перенести в готовый ролик.

О чём Google предупреждает у Veo 3.1

Труднее прочего модели даётся связная человеческая речь, и заметнее всего это на коротких репликах.

Совпадение звука с движением губ дорабатывается до сих пор.

В запутанной сцене с быстрым движением предметы и обстановка к концу ролика держатся хуже, чем в простой.

Описание проходит через отсев по опасным разрядам — среди них насилие, непристойность, унижение и брань.

Похожий на снимок портрет известного человека модель делать отказывается.

Иногда работа обрывается на звуковой дорожке, и вместо готового файла приходит отказ.

Что в Veo 3.1 получается не сразу и как это обходят

Слова разработчика говорят, на что модель рассчитана. О том, обо что человек спотыкается на втором ролике, там нет ничего — это видно только за работой.

  • Написанную реплику модель иногда не произносит вовсе, а в другой раз добавляет речь, о которой не просили.
  • Когда в кадре двое, губы двигаются у того, кто молчит. Сцену после этого переснимают.
  • На репликах в кадре сами появляются надписи. Отдельной дорожки с ними нет — они впечатаны в картинку, и убирают их поверх готового ролика.
  • Одно бранное слово внутри реплики роняет всю работу. Та же сцена без него проходит.
  • Голос героя держится, пока куски делают в один заход, и меняется от ролика к ролику, когда их снимают порознь.
  • Неподвижная камера и крупный план даются модели легче всего, а достоверности в таком кадре больше.
  • Число планов модель выдерживает не всегда: смен, расписанных в описании по секундам, в готовом ролике оказывается меньше.
  • Часть названного в описании в готовый ролик не попадает вовсе. Тот же запрос, отправленный второй раз, даёт другой ролик, но причины не снимает.
  • Присланный образец держится не весь ролик: одежда и предметы в кадре могут поменяться к концу.
  • Когда заданы первый и последний кадр, недостающее модель дорисовывает ради совпадения с концом, а сам переход иногда выходит склейкой.
  • Сложное движение тела вроде переворота в воздухе модель не доводит до конца, сколько бы раз его ни просили.

Отсюда порядок, к которому приходят: длинный рассказ собирают не одним роликом, а несколькими короткими. Последний кадр готового ролика снимают и ставят первым кадром следующего, а негодный кусок переснимают отдельно от остальных.

Официальный канал Google DeepMind — представление Veo 3.1 от 15 октября 2025 года: что изменилось в звуке, в следовании описанию и в фактуре картинки. Идёт полторы минуты.

Частые вопросы

Как вызвать Veo 3.1 через API из России?
Запрос уходит на api.gen202.com, и это адрес GEN202, а не адрес Google: обращения за границу в вызове Veo 3.1 нет, поэтому VPN не требуется. В поле model уходит идентификатор выбранного варианта: lite (veo/3-lite), fast (veo/3-fast), quality (veo/3). Порядок вызова Veo 3.1 с примерами кода разобран в документации.
Сколько стоит Veo 3.1
Цена за секунду Veo 3.1 — от 9 кр. до 108 кр. У Veo 3.1 списывается фактический расход, а задача, завершившаяся ошибкой, не тарифицируется вовсе.
Нужны ли VPN и иностранная карта для Veo 3.1
Ни то, ни другое: обращение к Veo 3.1 идёт на наш адрес, а расчёты с Google ведём мы, поэтому договариваться с ним клиенту не о чем. Оплата рублями с карты российского банка.
Что Veo 3.1 принимает на вход
Обязательные поля запроса к Veo 3.1: prompt — не длиннее 20 000 символов. Остальные поля необязательны.
Как подключить Veo 3.1 API и сделать первый вызов
Войти на сайт и выпустить ключ в кабинете: при первом входе начисляется 50 кредитов, и этот же ключ открывает Veo 3.1 вместе с остальным каталогом. Собственного ключа Google и договора с ним для вызова Veo 3.1 не нужно.