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 elementos
Inicia sesión para ejecutar modelos
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)Costo estimado por generación según duración y resolución. Solo pagas por lo que uses.
Una campaña nunca es un clip. Es una lista de planos —once filas, la misma bandolera de mensajero en todas ellas— y sin presupuesto para la tarde en que la bandolera se vuelve gris por la fila seis. Reference-to-video mantiene la bandolera siendo la misma bandolera. La operamos como google/omni-1.1-flash/reference-to-video y cobramos $0.09 por segundo de salida en 720p, así que el clip por defecto, de ocho segundos, sale por $0.72, audio incluido.
El campo que hace el trabajo es image_urls: un array, con minItems: 1 y maxItems: 7 en nuestro schema. Ese techo es la razón de ser de esta página. Siete huecos enseñan un sujeto desde suficientes ángulos como para que el modelo deje de inventarse los que usted no le dio.
Otro material, otra puerta: una imagen fija suelta es Omni 1.1 Flash image-to-video, los dos extremos de un plano con un hueco entre ellos son start-end-frame-to-video, y un briefing sin ningún asset es Omni 1.1 Flash text-to-video, que lleva la tabla de precios completa.
Nuestra tarifa, leída del catálogo en vivo el 28 de agosto de 2026:
| Duración del clip | Precio en 720p |
|---|---|
| 4 segundos | $0.36 |
| 6 segundos | $0.54 |
| 8 segundos (por defecto) | $0.72 |
| 10 segundos | $0.90 |
La lista está en $0.15 por segundo; un descuento permanente del 40% la deja en $0.09. La resolución escala desde ahí: $0.0297 en 360p y $0.18 en 4K, con lo que un render de diez segundos en 4K son $1.80. Y luego la cifra que decide cómo construye usted: adjunte una referencia o siete, que nada de lo anterior se mueve. duration y resolution son la fórmula entera. Las referencias son peso gratis.
Los precios y las condiciones de los productos pueden cambiar con el tiempo; consulte los precios vigentes de cada proveedor antes de tomar una decisión de compra. Los precios de Google Batch o Flex no son directamente equivalentes a un request estándar de API bajo demanda, porque la programación, la disponibilidad y las condiciones de procesamiento son distintas; por eso quedan excluidos de esta comparación. Se trata de una comparación acotada, no de una afirmación de que E2X sea la opción más barata del mundo en cualquier configuración.
La API descarga todas las URLs del array, así que tienen que estar donde nuestros workers puedan alcanzarlas por HTTPS a secas: un bucket público, un enlace firmado sin caducar, nada detrás de un login.
Siete es un máximo validado, no una frase en una página de documentación. Envíe una octava y el request se rechaza antes de tocar una GPU. Suena a límite; trátelo como un presupuesto. Un juego que se gana las siete lleva tres cuartos, perfil, espalda, un detalle que cargue con la marca, uno a la distancia a la que el clip va a encuadrar y uno con luz neutra. Duplicar el ángulo estrella desperdicia un hueco. Los ángulos que usted se guarde, el modelo los adivina.
Ahí está el cambio respecto a la generación anterior. Nuestro endpoint de Gemini Omni Flash reference-to-video hace lo mismo a $0.075 por segundo y sin ningún techo documentado: Google nunca publicó uno, así que nos negamos a imprimir un número del que no pudiéramos responder. Es el endpoint más barato, un veinte por ciento, y se ve por qué: no hay máximo validado de siete huecos ni nivel de 360p con el que ensayar un juego de referencias antes de gastar. Google retira ese modelo el 30 de septiembre de 2026. Si un pipeline suyo sigue apuntando allí, la migración es un cambio de slug, cuesta una quinta parte más por segundo y aterriza aquí.
Construya el array una vez. Guarde las siete URLs junto a su lista de planos y envíe ese mismo array idéntico con cada job. El juego es el término fijo; el prompt es la variable.
Esa inversión es el flujo de trabajo. Como las referencias cargan con el sujeto, cada prompt deja de describir qué aspecto tiene la cosa y pasa a describir qué le ocurre: la cámara, qué se mueve, la luz, el sonido. Los prompts se acortan y los clips salen más consistentes, que no es el intercambio que la gente espera. Fije un seed cuando compare dos formulaciones de un mismo plano, para poder saber si lo que ayudó fue la reescritura o el azar.
Cuente con 240 segundos por job y lance la lista en paralelo. Y después manténgase calibrado por lo que la propia model card de Google admite:
"Mantener una consistencia completa a lo largo de las ediciones, generar escenas con movimiento complejo o renderizar texto perfectamente exacto sigue siendo un desafío."
Siete referencias estrechan la deriva. No la abolen.
Dos campos son obligatorios: prompt e image_urls. Mantenga su key en el servidor y envíe el 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": "La imagen 1 es la bicicleta plegada, la imagen 2 la bisagra, la imagen 3 el ciclista. Patio adoquinado al amanecer. El ciclista la despliega y cierra el cuadro de golpe. Plano general fijo. Canto de pájaros, un tranvía a lo lejos.",
"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"
}
}'
Vuelve data.jobId. Los renders tardan minutos, así que haga polling despacio, o pase un webhookUrl y sáltese el polling.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
// Un solo array, reutilizado por todos los prompts.
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:
"La imagen 1 es la marioneta de zorro. Se asoma desde la izquierda del cuadro y ladea la cabeza. Dolly lento hacia dentro. Crujido de papel, tono de sala suave.",
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));
}
Los status recorren pending → processing → completed, o se quedan en failed / cancelled. Una trampa: duration y resolution son strings. "10", nunca 10. El schema y el precio viven en la especificación legible por máquina.
Veo 3.1 Fast reference-to-video cuesta $0.01 por segundo en esta misma plataforma. Nueve veces menos. Ocho segundos allí son $0.08 frente a los $0.72 de aquí, y no lo vamos a enterrar debajo de una tabla.
Así que la respuesta por defecto es Veo. Si una lista de planos necesita tres referencias, ocho segundos y 720p, llamar a cualquier otra cosa es gastar dinero en nada.
Cuatro cosas le dan la vuelta. Necesita más referencias de las que Veo acepta, que se planta en tres frente a nuestras siete: la diferencia entre cubrir un sujeto y muestrearlo. Necesita diez segundos, que Veo no le va a dar. Necesita 4K. O quiere el nivel de 360p, donde veinte borradores cuestan menos que un clip terminado y el ganador se vuelve a renderizar desde el mismo array y el mismo seed. Fuera de esos cuatro casos, tire de lo barato. Hay más en la categoría reference-to-video, y el resto en el catálogo de modelos.
Sus referencias son subidas de cosas reales y, a veces, de personas reales. Google bloquea las subidas de imágenes en las que aparecen menores, o ciertas personas reconocibles, para los usuarios del Reino Unido, Suiza y el Espacio Económico Europeo. Aquí eso es una restricción de casting, no una nota al pie. Póngalo en el briefing, no en un job fallido a las dos de la mañana.
Todos los fotogramas llevan SynthID. El watermark invisible de Google está en toda la salida y ningún proveedor puede desactivarlo, nosotros incluidos. Resuelva cualquier contrato que prohíba assets de IA etiquetados antes de integrar.
El sonido sale de las palabras. El audio se genera junto a la imagen y se dirige desde el mismo prompt: sin interruptor has_sound, sin subir ninguna referencia de audio.
Las URLs de resultado caducan. Copie cada salida a su propio almacenamiento en el mismo handler que lee outputs[0].url. Una campaña que hay que volver a renderizar es una campaña pagada dos veces.
El inglés es el único idioma de prompt totalmente soportado, y figura en la Gemini Enterprise Agent Platform, el sucesor que Google puso en lugar de Vertex AI en abril de 2026. El contexto está en nuestro texto de lanzamiento.
Adjuntar siete imágenes le dice al modelo qué existe. No le dice cuál es la protagonista. Eso lo hace usted en prosa: la imagen 1 es la tetera, la imagen 2 es la tapa esmaltada, la imagen 3 es la cocina. Numeradas, en la primera línea, antes de cualquier indicación.
Y después deje de describir el sujeto. Un prompt que vuelve a especificar el color y la forma de algo que usted ya adjuntó discute con sus propias referencias, y el modelo parte la diferencia. Gaste las palabras en lo que el array no puede contener: la cámara, un movimiento, la luz, el ambiente. Mantenga cada prompt en un solo plano continuo; pida una narrativa de tres escenas y obtendrá un borrón. Nuestra guía de prompting de Gemini Omni entra más a fondo en el vocabulario de plano.
Siete, y el límite está publicado en vez de adivinado: image_urls se valida con minItems: 1 y maxItems: 7, así que una octava entrada falla al enviar. El predecesor no tenía ningún techo documentado. Esa es la mayor diferencia práctica.
No. Cobramos por segundo de vídeo terminado, escalado por resolución; el número de referencias no entra en ese cálculo. Con una referencia o con siete, un clip de ocho segundos en 720p son $0.72. La duración y la resolución son las únicas palancas.
Numérelas en el prompt —qué imagen lleva el producto, cuál el detalle, cuál el entorno— y después describa la acción. image_urls es una lista pelada hasta que su prosa reparte los papeles.
Esa es justo la forma prevista. Guarde el array una vez y envíelo sin cambios con cada prompt, variando solo la indicación. Un seed fijado mantiene la luz lo bastante estable como para que los clips se puedan montar juntos.
Casi siempre, a $0.01 por segundo: Veo 3.1 Fast es nueve veces más barato para un request equivalente. Muévase aquí cuando tres referencias no den suficiente cobertura, cuando el montaje necesite diez segundos, cuando el entregable sea 4K, o para el bucle de borradores en 360p.
360p, 720p, 1080p o 4K, en 16:9 o 9:16, en 4, 6, 8 o 10 segundos, siempre a 24 fps. Las dos resoluciones de arriba son escaladas y no renderizadas de forma nativa, así que juzgue la nitidez con su propio metraje.
Google marca gemini-omni-flash-preview como obsoleto ese día, y todos los proveedores que operan esos pesos paran a la vez. Apunte sus jobs aquí: misma forma de request, techo de referencias documentado. La página anterior de reference-to-video se queda publicada como referencia de migración.