Loading...
Loading...
Более быстрый и дешёвый уровень Veo 3.1: текст в видео, изображение в видео, референс в видео и переходы между первым и последним кадром.
Войдите, чтобы запускать модели
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/veo-3.1-fast/text-to-video',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)Оценочная стоимость генерации по длительности и разрешению. Вы платите только за то, что запускаете.
Veo 3.1 Fast — это Veo 3.1 от Google, настроенный на скорость: те же разрешения, те же длительности 4/6/8 секунд, тот же всегда включённый нативный звук, только оборачивается быстрее и стоит дешевле. Мы отдаём её как google/veo-3.1-fast/text-to-video и тарифицируем посекундно — $0.01 за секунду, ×1,5 при включённой звуковой дорожке. Восьмисекундный ролик 720p со звуком выходит в $0.12. Загружать ничего не нужно. Весь вход — это prompt.
Есть неподвижное изображение, которое хочется оживить? Тогда вам нужен Veo 3.1 Fast image-to-video — та же модель, один стартовый кадр. Нужно, чтобы одно и то же лицо и та же куртка пережили серию кадров? Это Veo 3.1 Fast reference-to-video.
Каждый серьёзный провайдер этой модели тарифицирует посекундно, и мы тоже. Поэтому единственное честное сравнение — фиксированная конфигурация; вот она, 720p со звуком, проверено 26 августа 2026 года:
| API-провайдер | Тарификация | Ставка (720p, звук вкл.) | Ролик 8 секунд | против нас |
|---|---|---|---|---|
| E2X (текущая) | посекундно | $0.01/с ×1,5 за звук | $0.12 | — |
| Google Gemini API | посекундно | $0.10/с | $0.80 | в 6,7 раза дороже нас |
| fal.ai | посекундно | $0.15/с | $1.20 | в 10 раз дороже нас |
| Replicate | посекундно | $0.15/с | $1.20 | в 10 раз дороже нас |
| E2X по прайсу (до скидки) | посекундно | $0.10/с ×1,5 | $1.20 | наша ставка без скидки |
Прочтите последнюю строку рядом с fal.ai и Replicate. Наша прайсовая цена восьмисекундного ролика — $1.20, ровно столько, сколько берут они. Сегодня вы платите десятую часть этого и всё равно в 6,7 раза меньше, чем в собственном API Google за тот же самый request.
Планируйте бюджет с оглядкой на один нюанс: переход 720p → 1080p бесплатен на fal.ai и Replicate, а Google берёт за него больше за секунду. У нас разрешение — тоже множитель, поэтому вытяните живую цифру из llms.txt этой модели, прежде чем закладывать пайплайн на 1080p.
Цены и условия продуктов со временем меняются; проверьте актуальные цены каждого провайдера, прежде чем принимать решение о покупке. Цены Google Batch или Flex не эквивалентны напрямую стандартному on-demand API request, поскольку планирование, доступность и условия обработки отличаются; поэтому они исключены из этого сравнения. Это ограниченное по охвату сравнение, а не утверждение, что E2X — самый дешёвый вариант в мире при любой конфигурации.
Большинство моделей text-to-video отдают вам немой MP4 и оставляют звук на вас. Veo 3.1 Fast — нет. API Google генерирует звук нативно, и выключить его там вы не можете: синхронные диалоги, шумы и тон помещения, произведённые вместе с картинкой и прибитые к кадрам. В собственном документированном примере prompt у Google есть проговариваемые реплики.
Это меняет ценность одного вызова. Напишите «торговец рыбой роняет ящик на прилавок и кричит: свежая, привезли пять минут назад» — и вы получите удар и крик на нужных кадрах, а не пантомиму, которую придётся озвучивать потом. Для нарезок в соцсети и аниматиков целый постпродакшн-шаг исчезает.
Что вы всё-таки выбираете:
has_sound со значением true по умолчанию, который и включает множитель ×1,5.Восемь секунд — потолок для одного ролика. Последовательности — это несколько вызовов.
Заведите ключ в дашборде, держите его на сервере, отправьте job. Обязателен только prompt.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1-fast/text-to-video",
"input": {
"prompt": "Съёмка с рук вдоль мокрого от дождя переулка в Осаке ночью. Торговец рамэном приподнимает норэн, наружу валит пар, и он кричит проезжающему велосипедисту: \"Последняя миска за вечер!\" Отражения неона дрожат в лужах.",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
Мы возвращаем job ID. Опрашивайте его — или не опрашивайте:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/veo-3.1-fast/text-to-video",
input: {
prompt:
"Медленный наезд на смотрительницу маяка, которая пишет в вахтенном журнале. Ветер дребезжит стеклом. Она бормочет: \"Третья ночь, сигнала всё нет\". Луч лампы проходит по её лицу каждые четыре секунды.",
aspect_ratio: "9:16",
resolution: "720p",
duration: "6",
has_sound: "true",
seed: 41205,
},
}),
}).then((r) => r.json());
const jobId = submitted.data.jobId;
while (true) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
console.log(job.data.outputs[0].url);
break;
}
if (job.data.status === "failed") {
throw new Error(job.data.error?.message || "Generation failed");
}
await new Promise((r) => setTimeout(r, 5000));
}
Статусы идут pending → processing → completed либо приходят к failed / cancelled. Пришлите вместо этого webhookUrl, и мы позвоним вам. Закладывайте около четырёх минут на job; Google публикует нижнюю границу в 11 секунд и потолок в 6 минут в часы пик, так что стройте под потолок.
Одна ловушка схемы: duration и resolution — строки. "8", а не 8.
Те же веса, та же посекундная цена, три разных входных двери. Решает тот вход, который у вас уже есть:
| Endpoint | Ролик 8 с, 720p + звук | Когда брать |
|---|---|---|
| Veo 3.1 Fast text-to-video | $0.12 | У вас есть слова и больше ничего — и нужны 4 или 6 секунд |
| Veo 3.1 Fast image-to-video | $0.12 | Кадр уже существует и должен стать первым |
| Veo 3.1 Fast reference-to-video | $0.12 | Человек, продукт или место должны остаться идентичными во всех кадрах |
Цена спор не разрешит, поэтому идите за брифом. Если клиент уже утвердил ключевой визуал, отправить его стартовым кадром лучше, чем заново описывать прозой. Если шесть роликов должны выглядеть как одна кампания, загрузите до трёх референсов — только помните, что reference-to-video принудительно ставит восемь секунд, без исключений. Этот endpoint сохраняет короткие длительности, что делает его самым дешёвым способом наполнить раскадровку черновым движением. Остальное из того, что мы держим, лежит в категории text-to-video и в полном каталоге моделей.
Относитесь к prompt как к шот-листу с приложенным звуковым миксом. Четыре вещи сдвигают стрелку сильнее прилагательных:
Назовите движение камеры. «Статичный общий», «медленный наезд с тележки», «съёмка с рук в проводке» — модель их уважает. Расплывчатая раскадровка даст уплывающее, нерешительное движение.
Пишите диалог в кавычках. Короткие реплики, одна-две на ролик. Восемь секунд — это немного. Пересказ намерения («он говорит что-то ободряющее») даёт бормотание-затычку.
Просите атмосферу. Дождь по жести, гул холодильника, дальний трафик. Модель придумает звуковую подложку, если вы её не назовёте, и та может не совпасть с вашим монтажом.
Скажите, что делает свет. Пасмурный полдень, натриевый уличный фонарь, одна практическая лампа. Освещение решает, читается ли ролик уровня Fast как осознанный кадр или как рендер.
Английский поддерживается полностью; другие языки Google здесь не оценивал. Пишите диалог на том языке, на котором хотите слышать речь, и ждите большего разброса за пределами английского.
Скачивайте в течение 48 часов. Google хранит файл два дня — формулировка у них такая: вы должны скачать своё видео в течение 2 дней с момента генерации. Копируйте каждый результат в собственное хранилище тем же job, который читает outputs[0].url. Ссылка на CDN — не архив.
Каждый кадр несёт SynthID. Незаметный водяной знак Google накладывается на весь вывод Veo и проверяется на их платформе верификации. Выключить его не может никто, включая нас.
Региональные правила про людей. В ЕС, Великобритании, Швейцарии и на Ближнем Востоке и в Северной Африке personGeneration ограничен значением allow_adult.
Мы тарифицируем посекундно: $0.01 за секунду вывода, умноженные на 1,5 при включённом звуке. Восьмисекундный ролик 720p со звуком — $0.12, шестисекундный — $0.09, четырёхсекундный — $0.06. Разрешение выше 720p несёт собственный множитель.
В той конфигурации и на ту дату, которые мы проверяли — 8 секунд, 720p, звук включён, 26 августа 2026 года, — да: $0.12 у нас против $1.20 там. Наша собственная прайсовая цена без скидки — те же $1.20. Разрыв — это скидка, а не другой продукт.
Наша schema открывает has_sound, и по умолчанию мы ставим его в true. Собственный Gemini API от Google выключателя не предлагает вовсе, так что звук лучше воспринимать как часть того, чем эта модель является, — то же верно и на нашем endpoint image-to-video. Он же и причина ценового множителя ×1,5.
Восемь секунд за один вызов. На этом endpoint можно запросить 4 или 6, но 1080p и 4k требуют полных восьми. Более длинные последовательности означают, что вы сами сшиваете несколько job или удерживаете единый вид через reference-to-video.
Только 16:9 и 9:16, при 24 кадрах в секунду, в 720p, 1080p или 4k. По умолчанию у нас 16:9 и 720p. Ни квадрата, ни 4:5 нет, так что кропайте на постпродакшне, если нужно.
Да — каждый результат Veo помечен SynthID, незаметной меткой происхождения от Google, и её можно проверить через их платформу. Ни один провайдер не даёт параметра, чтобы её отключить.
Мы закладываем около четырёх минут на job. Google публикует минимум в 11 секунд и максимум в 6 минут в час пик, поэтому для массовой работы используйте webhook, а не плотный цикл polling.