Loading...
Loading...
Generate video from up to seven reference images with Gemini Omni 1.1 Flash. The reference images carry character and style consistency into the result.
0/7 элементов
Войдите, чтобы запускать модели
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/omni-1.1-flash/reference-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)Оценочная стоимость генерации по длительности и разрешению. Вы платите только за то, что запускаете.
Кампания никогда не состоит из одного ролика. Это шот-лист — одиннадцать строк, одна и та же курьерская сумка в каждой строке, и никакого бюджета на тот день, когда к шестой строке сумка вдруг посереет. Reference-to-video оставляет сумку той же сумкой. Мы держим её как google/omni-1.1-flash/reference-to-video и берём $0.09 за секунду вывода 720p, так что восьмисекундный ролик по умолчанию стоит $0.72, звук включён.
Работу здесь делает поле image_urls — массив, у которого в нашей schema стоят minItems: 1 и maxItems: 7. Ради этого потолка страница и написана. Семь слотов показывают объект с достаточного числа ракурсов, чтобы модель перестала выдумывать те, которые вы не дали.
Другой материал — другая дверь: одинокий кадр идёт в Omni 1.1 Flash image-to-video, два конца кадра с разрывом между ними — в start-end-frame-to-video, а бриф без единого ассета — в Omni 1.1 Flash text-to-video, где лежит полная сетка цен.
Наша ставка, прочитана из живого каталога 28 августа 2026 года:
| Длина ролика | Цена на 720p |
|---|---|
| 4 секунды | $0.36 |
| 6 секунд | $0.54 |
| 8 секунд (по умолчанию) | $0.72 |
| 10 секунд | $0.90 |
Прайс — $0.15 за секунду; постоянная скидка 40% сводит его к $0.09. Дальше масштабирует разрешение: $0.0297 на 360p, $0.18 на 4K, так что десятисекундный рендер в 4K — это $1.80. И теперь цифра, которая определяет, как вы всё построите: приложите вы один референс или семь, ничто выше не сдвинется. duration и resolution — вся формула целиком. Референсы едут бесплатным весом.
Цены и условия продуктов со временем меняются; проверьте актуальные цены каждого провайдера, прежде чем принимать решение о покупке. Цены Google Batch или Flex не эквивалентны напрямую стандартному on-demand API request, поскольку планирование, доступность и условия обработки отличаются; поэтому они исключены из этого сравнения. Это ограниченное по охвату сравнение, а не утверждение, что E2X — самый дешёвый вариант в мире при любой конфигурации.
API забирает каждую ссылку из массива, поэтому они должны лежать там, куда наши воркеры дотянутся по обычному HTTPS: публичный бакет, неистёкшая подписанная ссылка, ничего за логином.
Семь — это провалидированный максимум, а не строчка в документации. Отправьте восьмой, и request отклонят раньше, чем тронут GPU. Звучит как ограничение; относитесь к нему как к бюджету. Набор, который отрабатывает все семь слотов, идёт так: три четверти, профиль, спина, одна деталь с брендом, одна с той дистанции, которой будет снят ролик, одна при нейтральном свете. Дубли героического ракурса тратят слот впустую. Ракурсы, которые вы придержали, будут угаданы.
Вот в чём сдвиг относительно прошлого поколения. Наш endpoint Gemini Omni Flash reference-to-video делает то же самое по $0.075 за секунду и вообще без задокументированного потолка — Google его так и не опубликовала, и мы не стали печатать цифру, за которую не можем отвечать. Дешевле там — на двадцать процентов, и видно почему: нет проверенного максимума в семь слотов и нет уровня 360p, на котором можно прогнать набор референсов до того, как платить. Эту модель Google снимает 30 сентября 2026 года. Если ваш конвейер всё ещё смотрит туда, миграция — это замена slug, секунда обходится на пятую часть дороже, и приземлится она здесь.
Соберите массив один раз. Держите семь ссылок рядом с шот-листом и отправляйте один и тот же массив с каждым job. Набор — постоянный член, prompt — переменный.
Эта инверсия и есть весь workflow. Раз объект несут референсы, каждый prompt перестаёт описывать, как эта штука выглядит, и начинает описывать, что с ней происходит: камера, что движется, свет, звук. Prompt становятся короче, а ролики — консистентнее, и это не тот размен, которого ждут. Фиксируйте seed, когда сравниваете две формулировки одного кадра, — иначе не поймёте, помогла переписка или просто выпали другие кости.
Закладывайте 240 секунд на job и разворачивайте список параллельно. И держите ожидания там, где их держит сама карточка модели Google:
«Сохранение полной консистентности на протяжении всех правок, генерация сцен со сложным движением и отрисовка идеально точного текста остаются сложной задачей.»
Семь референсов сужают дрейф. Они его не отменяют.
Обязательных полей два: prompt и image_urls. Держите ключ на сервере и отправьте job.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/omni-1.1-flash/reference-to-video",
"input": {
"prompt": "Изображение 1 — сложенный велосипед, изображение 2 — шарнир, изображение 3 — велосипедист. Мощёный двор на рассвете. Велосипедист раскладывает раму и защёлкивает замок. Статичный общий. Птицы, далёкий трамвай.",
"image_urls": [
"https://example.com/bike-folded.jpg",
"https://example.com/bike-hinge.jpg",
"https://example.com/rider.jpg"
],
"duration": "8",
"aspect_ratio": "16:9"
}
}'
Обратно приходит data.jobId. Рендер занимает минуты, поэтому опрашивайте неспешно — или передайте webhookUrl и обойдитесь без polling.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
// Один массив, который переиспользует каждый prompt.
const image_urls = [
"https://example.com/fox-puppet-front.jpg",
"https://example.com/fox-puppet-muzzle.jpg",
"https://example.com/fox-puppet-profile.jpg",
];
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/reference-to-video",
input: {
prompt:
"Изображение 1 — кукла-лиса. Она наклоняется в кадр слева и склоняет голову. Медленный наезд. Шорох бумаги, мягкий тон помещения.",
image_urls,
duration: "10",
aspect_ratio: "9:16",
resolution: "1080p",
seed: 70413,
},
}),
}).then((r) => r.json());
const { jobId } = submitted.data;
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);
await new Promise((r) => setTimeout(r, 5000));
}
Статусы идут pending → processing → completed либо оседают на failed / cancelled. Одна ловушка: duration и resolution — строки. "10", никогда 10. Schema и цена живут в машиночитаемой спецификации.
Veo 3.1 Fast reference-to-video стоит $0.01 за секунду на этой же платформе. В девять раз меньше. Восемь секунд там — $0.08 против $0.72 здесь, и мы не станем прятать это под таблицей.
Так что ответ по умолчанию — Veo. Если шот-листу нужны три референса, восемь секунд и 720p, вызывать что-либо ещё значит платить за ничто.
Переворачивают картину четыре вещи. Вам нужно больше референсов, чем принимает Veo: она встаёт на трёх против наших семи — это разница между тем, чтобы покрыть объект, и тем, чтобы его выборочно пощупать. Вам нужны десять секунд, которых Veo не даст. Вам нужен 4K. Или вам нужен уровень 360p, где двадцать черновиков стоят меньше одного готового ролика, а победитель перерисовывается с тем же массивом и тем же seed. За пределами этих четырёх — берите дешёвое. Больше вариантов в категории reference-to-video, остальное — в каталоге моделей.
Ваши референсы — это загруженные снимки реальных вещей, а иногда и реальных людей. Google блокирует загрузку изображений с несовершеннолетними и с частью узнаваемых людей для пользователей в Великобритании, Швейцарии и Европейской экономической зоне. Здесь это ограничение на кастинг, а не сноска. Впишите его в бриф, а не узнавайте о нём из упавшего job в два часа ночи.
Каждый кадр несёт SynthID. Невидимый водяной знак Google стоит на всём выводе, и выключить его не может ни один провайдер, мы в том числе. Если договор запрещает маркированные ИИ-материалы, закройте этот вопрос до интеграции.
Звук идёт из слов. Аудио генерируется вместе с картинкой и управляется из того же prompt — ни переключателя has_sound, ни загрузки звукового референса.
Ссылки на результат истекают. Копируйте каждый вывод в собственное хранилище в том же обработчике, который читает outputs[0].url. Кампания, которую вы перерисовываете, — это кампания, оплаченная дважды.
Полностью поддерживается только английский язык prompt, и модель числится в Gemini Enterprise Agent Platform — преемнике, который Google поставила на место Vertex AI в апреле 2026 года. Контекст — в нашем разборе релиза.
Приложив семь изображений, вы сообщаете модели, что существует. Вы не сообщаете, что здесь главное. Это делается прозой: изображение 1 — чайник, изображение 2 — эмалированная крышка, изображение 3 — кухня. С номерами, первой строкой, до любой режиссуры.
Дальше перестаньте описывать объект. Prompt, который заново задаёт цвет и форму того, что вы уже приложили, спорит с вашими же референсами, и модель делит разницу пополам. Тратьте слова на то, чего массив вместить не может: камера, одно движение, свет, атмосфера. Держите каждый prompt в одном непрерывном кадре — попросите повествование из трёх сцен, и получите кашу. Наш гайд по prompt для Gemini Omni разбирает операторскую лексику подробнее.
Семь, и этот предел опубликован, а не угадан: image_urls валидируется через minItems: 1 и maxItems: 7, поэтому восьмая запись падает уже на отправке. У предшественницы задокументированного потолка не было вовсе. Это и есть главное практическое отличие.
Нет. Мы считаем по секундам готового видео с поправкой на разрешение; количество референсов в этот расчёт не входит. Один референс или семь — восьмисекундный ролик на 720p стоит $0.72. Единственные рычаги — длительность и разрешение.
Пронумеруйте их в prompt — на каком изображении продукт, на каком деталь, на каком окружение, — и только потом описывайте действие. image_urls остаётся голым списком, пока ваша проза не раздаст роли.
Именно так это и задумано. Сохраните массив один раз и отправляйте его неизменным с каждым prompt, меняя только режиссуру. Зафиксированный seed держит свет достаточно ровным, чтобы ролики монтировались друг с другом.
Почти всегда, по $0.01 за секунду: Veo 3.1 Fast для эквивалентного request дешевле в девять раз. Переходите сюда, когда трёх референсов не хватает для покрытия, когда монтажу нужны десять секунд, когда сдавать надо 4K или ради чернового цикла на 360p.
360p, 720p, 1080p или 4K, в 16:9 или 9:16, длиной 4, 6, 8 или 10 секунд, всегда при 24 fps. Два верхних разрешения получаются апскейлом, а не нативной отрисовкой, так что судите о резкости по собственному материалу.
В этот день Google выводит gemini-omni-flash-preview из эксплуатации, и каждый провайдер, работающий на этих весах, останавливается тогда же. Наведите свои job сюда: та же форма request, задокументированный потолок референсов. Старая страница reference-to-video останется как ориентир для миграции.