Google: Veo 3.1 Lite
Veo 3.1 Lite генерирует видео со встроенным звуком по текстовому описанию или начальному изображению. Документированный процесс Lite выдаёт один клип длительностью 4, 6 или 8 секунд, в горизонтальном или вертикальном кадре, с особыми ограничениями, отличающимися от Veo 3.1 и Fast.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Veo 3.1 Lite — модель Lite в линейке генерации видео Veo 3 от Google. Она синтезирует видео со звуком по описанию на естественном языке или исходному изображению. Результат — созданный клип, а не текстовый анализ существующей записи. Карточка Lite ссылается на Veo 3 в части архитектуры, обучающих материалов и известных ограничений, тогда как документация именно Lite задаёт собственные функции и пределы генерации.
Указанная архитектура использует латентную диффузию временных представлений аудио и пространственно-временных представлений видео. Базовая модель обучалась на аудио, видео и изображениях с подписями разной подробности и отфильтрованными материалами без дубликатов. Это объясняет назначение совместной генерации изображения и звука. Описание не раскрывает отдельное число параметров Lite и не подтверждает физическую достоверность каждого движения. Для практической сцены решайте видимое действие и соответствующий звук вместе.
Точная документация Lite задаёт предел текста 1 024 токена и одно выходное видео. Столбец Lite в руководстве генерации перечисляет длительности 4, 6 и 8 секунд; по умолчанию 720p, а 1080p требует восьмисекундный клип. Горизонтальное соотношение 16:9 используется по умолчанию, также указан вертикальный 9:16; документирована частота 24 кадра/с. Встроенный звук в этом процессе всегда включён. Значения относятся к названному процессу Lite разработчика, а не иной версии Veo или отдельно измеренному ответу приложения.
Lite не поддерживает результат 4K и продление видео. В таблице параметров многореференсная функция referenceImages и видео для продления также отмечены как недоступные в столбце Lite. Начальное изображение может задать первый кадр; таблица перечисляет lastFrame вместе с начальным изображением для перехода. Различайте этот способ управления кадрами и смешивание нескольких референсов стиля или объекта. Настройки генерации людей зависят от режима: таблица Lite указывает allow_all для текста и allow_adult для генерации по изображению и интерполяции; региональные правила могут дополнительно ограничивать профиль. Выберите начальное изображение под действительно нужную первую сцену, подготовив объект, кадрирование и видимые детали до запроса движения.
Для генерации по тексту опишите объект, действие, окружение и нужный стиль. При необходимости добавьте положение и движение камеры, кадрирование, фокус и свет. Авторская товарная сцена может удерживать предмет в центре, пока камера приближается к детали материала, а окружающий свет мягко меняется. Задайте начальное состояние, главное действие и финальный момент, чтобы короткий клип завершал одну связную идею. Длинная коллекция несвязанных действий — другая задача, чем сосредоточенный план.
Для генерации по изображению предоставьте чёткий начальный кадр и объясните, что движется, а что остаётся стабильным. Отдельно задайте движение объекта и камеры. При ограничении последним кадром подготовьте совместимую конечную композицию и опишите переход. Проверяйте результат, не предполагая, что запрошенные идентичность, положение или форма полностью неизменны на протяжении ролика. Указанная карточка модели относит полное постоянство сложных сцен и сложного движения к нерешённым задачам.
Руководство по промптам поддерживает явные указания диалога, эффектов и атмосферы. Заключите точную речь в кавычки, обозначьте говорящего и опишите звуки в связи с действием. Звуковой эффект и фоновая атмосфера не должны смешиваться с репликой. Английский документирован как полностью поддерживаемый язык промптов, остальные языки в этом руководстве не оценены. Проверяйте слышимые слова, тайминг и качество звука как часть того же материала, не считая аудио гарантированно точным воспроизведением промпта.
Процесс разработчика асинхронный: запрос генерации возвращает операцию, а готовый результат получают после сообщения о завершении. Сохраните идентификатор операции и проверьте полученный клип. Руководство описывает хранение у разработчика два дня и маркировку SynthID, поэтому сохраняемый материал должен включать скачанный результат, промпт, исходные изображения и настройки. Seed может улучшить повторяемость, но не гарантирует детерминированность. Проверяйте постоянство объекта, действие, кадрирование, звук и конечную точку сцены до монтажа; завершённая обработка сама не доказывает выполнение творческих требований.
Ailoot Ultra · Видео POST /v1/videos google/veo-3.1-lite
google/veo-3.1-liteНачало
Превратите описание сцены в видео длительностью 4, 6 или 8 секунд с разрешением 720p.
- Покажите товар в движении
- Создайте сцену, задающую место действия
- Попробуйте короткое движение камеры
- Допустимые входные данные
- Текст · Картинки
- Результаты
- Видео
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Видео POST /v1/videos
- Входные данные
text,image- Результат
video- Выходной формат
- mp4
- Число результатов
- До 4 выходs
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения google/veo-3.1-lite | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения Минимальная длина: 1 Максимум байтов: 10 000 Единица: байты UTF8 | По умолчанию— |
Полеduration | Типinteger | ТребованиеОбязательно | Значения и ограничения 4, 6, 8 Единица: секунды | По умолчанию— |
Полеresolution | Типstring | ТребованиеОбязательно | Значения и ограничения 720p | По умолчанию— |
Полеaspect_ratio | Типstring | ТребованиеОбязательно | Значения и ограничения 16:9, 9:16 | По умолчанию— |
Полеgenerate_audio | Типboolean | ТребованиеОбязательно | Значения и ограничения false | По умолчанию— |
Полеframe_images | Типarray | ТребованиеНеобязательно | Значения и ограничения Условия: Не передавайте для text_to_video. Если поле передано: ровно один элемент {"type":"image_url","image_url":{"url":"<actual HTTPS URL>"},"frame_type":"first_frame"}; элемент содержит только type,image_url,frame_type; image_url содержит только url. Дополнительные и повторяющиеся ключи запрещены. Допустимы только duration=4,resolution="720p",aspect_ratio="16:9",generate_audio=false. URL должен разбираться со схемой https, непустым именем хоста, без userinfo и буквального #; подписанная строка запроса и закодированный путь сохраняются. Исходная реализация не проверяет MIME-тип входных данных, размер файла или размеры изображения в пикселях. | По умолчанию— |
Сочетания входных материалов
Из текста в видео · Обязательно: prompt
Из изображения в видео · Обязательно: prompt, frame_images
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt, duration, resolution, aspect_ratio, generate_audio |
Параметрother_options | Контрактfalse |
Параметрresolution | Контракт720p |
Параметрprompt_max_bytes | Контракт10000 |
Параметрduration | Контракт4, 6, 8 |
Параметрaspect_ratio | Контракт16:9, 9:16 |
Параметрgenerate_audio | Контрактfalse |
Параметрmaterial_types | Контрактtext, image |
Параметрparameters | Контракт{"name":"model","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["google/veo-3.1-lite"],"availability":"source_interface"}, {"name":"prompt","type":"string","required":true,"default_known":false,"default":null,"enum_known":false,"enum":null,"availability":"source_interface","min_length":1,"maximum_bytes":10000,"maximum_length":null,"unit":"байты UTF8"}, {"name":"duration","type":"integer","required":true,"default_known":false,"default":null,"enum_known":true,"enum":[4,6,8],"availability":"source_interface","unit":"секунды"}, {"name":"resolution","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["720p"],"availability":"source_interface"}, {"name":"aspect_ratio","type":"string","required":true,"default_known":false,"default":null,"enum_known":true,"enum":["16:9","9:16"],"availability":"source_interface"}, {"name":"generate_audio","type":"boolean","required":true,"default_known":false,"default":null,"enum_known":true,"enum":[false],"availability":"source_interface"}, {"name":"frame_images","type":"array","required":false,"default_known":false,"default":null,"enum_known":false,"enum":null,"availability":"source_interface","conditions":"Не передавайте для text_to_video. Если поле передано: ровно один элемент {\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}; элемент содержит только type,image_url,frame_type; image_url содержит только url. Дополнительные и повторяющиеся ключи запрещены. Допустимы только duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=false. URL должен разбираться со схемой https, непустым именем хоста, без userinfo и буквального #; подписанная строка запроса и закодированный путь сохраняются. Исходная реализация не проверяет MIME-тип входных данных, размер файла или размеры изображения в пикселях."} |
Псевдонимы метода: /v1/videos/generations, /videos, /videos/generations
Жизненный цикл: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Создайте один раз и сохраните возвращённый ID.
Проверяйте исходный статус; сохраняйте каждый готовый ресурс и его длительность.
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Создавать аудио | Разрешение | Расчётная единица | Условия расчёта | Плата |
|---|---|---|---|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Создавать аудио— | Разрешение— | Расчётная единица— | Условия расчёта— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияЦена видео | Шкала ставок— | Прогноз количества— | Создавать аудио— | Разрешение— | Расчётная единицаза секунду видео | Условия расчётааудио: with_audio | Плата Выход · Цена видео · Оценка только для сравнения $0.16 за секунду видео |
| КонфигурацияЦена видео | Шкала ставок— | Прогноз количества— | Создавать аудио— | Разрешение— | Расчётная единицаза секунду видео | Условия расчётааудио: with_audio; разрешение: 720p | Плата Выход · Цена видео · Оценка только для сравнения $0.1 за секунду видео |
| КонфигурацияЦена видео | Шкала ставок— | Прогноз количества— | Создавать аудио— | Разрешение— | Расчётная единицаза секунду видео | Условия расчётааудио: without_audio | Плата Выход · Цена видео · Оценка только для сравнения $0.1 за секунду видео |
| КонфигурацияUltra | Шкала ставок— | Прогноз количестваЗапрошенная конфигурация; только оценка. | Создавать аудиоБез аудио | Разрешение720p | Расчётная единицаза секунду выходного видео | Условия расчёта— | Плата Выход · Оценочная секунда выходного видео · Оценка только для сравнения $0.06 за секунду выходного видео Показанная ставка служит оценкой стоимости до генерации. Итоговое начисление рассчитывается по стоимости, зафиксированной для исходной генерации. Физическая длительность видео не используется как тарифицируемая величина. |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Создавать аудио— | Разрешение— | Расчётная единица— | Условия расчёта— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.24 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Сведения о справочном тарифе
Справочные шкалы модели не меняют выбор метода, расчёт стоимости или списания. Действующая плата определяется ставками выбранного метода Ailoot.
Ссылки на цены конфигураций видео
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Условия расчёта | Плата |
|---|---|---|
| КонфигурацияЦена видео | Условия расчётааудио: with_audio | Плата Выход · Цена видео $0.16 за секунду видео Опубликованный ориентир цены для показанной конфигурации. Итоговые списания зависят от фактической оплачиваемой конфигурации. |
| КонфигурацияЦена видео | Условия расчётааудио: without_audio | Плата Выход · Цена видео $0.1 за секунду видео Опубликованный ориентир цены для показанной конфигурации. Итоговые списания зависят от фактической оплачиваемой конфигурации. |
| КонфигурацияЦена видео | Условия расчётааудио: with_audio; разрешение: 720p | Плата Выход · Цена видео $0.1 за секунду видео Опубликованный ориентир цены для показанной конфигурации. Итоговые списания зависят от фактической оплачиваемой конфигурации. |
| КонфигурацияЦена видео | Условия расчётааудио: without_audio; разрешение: 720p | Плата Выход · Цена видео $0.06 за секунду видео Опубликованный ориентир цены для показанной конфигурации. Итоговые списания зависят от фактической оплачиваемой конфигурации. |
Примеры запросов
Ailoot Ultra · Видео
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/veo-3.1-lite", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 4, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": false}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os,re
from pathlib import Path
from urllib.parse import urlsplit
image=os.environ["AILOOT_IMAGE_URL"]
try:
parsed=urlsplit(image)
valid=(image.startswith("https://") and parsed.scheme=="https" and bool(parsed.hostname)
and parsed.username is None and parsed.password is None and "#" not in image
and not any(ord(c)<32 or ord(c)==127 for c in image)
and re.search(r"%(?![0-9A-Fa-f]{2})",image) is None)
except ValueError:
valid=False
if not valid:
raise SystemExit("Use your actual HTTPS image URL with a hostname, no userinfo and no fragment")
p={"model":"google/veo-3.1-lite","prompt":"The subject makes a slow, natural movement. Keep the opening composition.","duration":4,"resolution":"720p","aspect_ratio":"16:9","generate_audio":False,"frame_images":[{"type":"image_url","image_url":{"url":image},"frame_type":"first_frame"}]}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print("Keep the complete JSON, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.")
PY_RESULT
Получить и сохранить результаты
Ailoot Ultra · Видео
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Проверить статус задачи
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
for x in r.get("data",[]):print(x)
PY_STATUS
Сохраните все готовые материалы
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
u=urljoin("https://api.ailoot.ai",x)
z=urlsplit(u)
if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
index=$((index + 1))
done < asset-urls.txt
Чтение другого содержимого
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id/content" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Сохраняйте все готовые результаты
Сохраните каждое готовое видео или полученный файл; загрузите содержимое по каждому фактически полученному URL материала.
Готовый data[] содержит все подписанные ссылки содержимого, принадлежащие Ailoot. Получите данные по каждому возвращённому URL либо используйте конечную точку содержимого, указав в index фактический индекс результата. Неудачная исходная задача может вернуть charge_pending_check; проверяйте её, а не создавайте заново. Корректная аудиодорожка AAC может присутствовать даже при generate_audio=false; сохраняйте исходный MP4 целиком, включая аудио.
Если нужно проверить исходный ответ
Проверяйте существующую исходную задачу; никогда не повторяйте отправку с неизвестным исходом.
Максимум результатов: 4.
Поля ответа
| Поле | Тип | Значение |
|---|---|---|
Полеid | Типstring | Значение— |
Полеobject | Типstring | Значение— |
Полеmodel | Типstring | Значение— |
Полеstatus | Типstring | Значение— |
Полеdata[] | Типsigned content URL | Значение— |
Полеcharge_pending_check | Типboolean | Значение— |
Полеerror.code | Типstring | Значение— |
Полеerror.message | Типstring | Значение— |
Полеoperation_id | Типstring | ЗначениеОтвет исходного статуса или содержимого HTTP503 result_pending_check: в id указан тот же исходный публичный ID видео. |
Полеerror.type | Типstring | Значениеserver_error при HTTP503 result_pending_check. |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеНеверные обязательные поля, представление материалов или значение параметра | Следующий шагИсправьте указанные поля перед новым запросом на создание. |
Ответ409 · video_not_ready | УсловиеСодержимое исходного результата пока недоступно | Следующий шагПроверяйте исходный возвращённый ID и соблюдайте Retry-After. |
Ответserver_error | УсловиеВозвращённый ответ указывает, что операция или результат требуют проверки | Следующий шагСохраните исходный возвращённый ID операции или задачи, заголовки запроса и ответ; продолжайте поддерживаемые операции чтения исходной операции. Не отправляйте запрос создания повторно. |
Ответ503 · result_pending_check | УсловиеGET исходного статуса или содержимого: задача не опубликована, исходная задача не имеет статуса failed/cancelled/expired, а локальное состояние — unknown либо статус исходной задачи — completed. | Следующий шагСохраните исходные id и operation_id (тот же публичный ID видео), ответ и заголовки; читайте только исходный статус или содержимое. Никогда не отправляйте новый запрос на генерацию. |
Ответ422 · price_unavailable | УсловиеПереданный объект frame_images или его условный профиль не проходит разбор либо для полностью разобранного профиля нет готовой точной тарифной карточки. | Следующий шагСохраните model, prompt, duration, resolution, aspect_ratio и generate_audio. Добавьте frame_images, содержащий ровно один элемент first_frame в указанном формате объекта. Укажите duration=4, resolution="720p", aspect_ratio="16:9" и generate_audio=false. Эта проверка выполняется до отправки запроса. |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra google/veo-3.1-lite
Псевдонимы путей метода
/v1/videos/generations, /videos, /videos/generations
Связанные ID для вызова
FAQ · Google: Veo 3.1 Lite
- Какие входные данные и результаты доступны?
POST /v1/videos·google/veo-3.1-lite:text,image→video- Какие поля использует запрос?
POST /v1/videos·google/veo-3.1-lite:model,prompt,duration,resolution,aspect_ratio,generate_audio,frame_images