Loading...
Loading...
Nivel Veo 3.1 más rápido y económico, con texto a vídeo, imagen a vídeo, referencia a vídeo y transiciones entre fotograma inicial y final.
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/veo-3.1-fast/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.
Este es el endpoint que se usa cuando la misma cara, la misma chaqueta o el mismo escaparate tienen que sobrevivir a lo largo de todo un batch de clips. Operamos el Veo 3.1 Fast de Google como google/veo-3.1-fast/reference-to-video, acepta un array image_urls de hasta tres imágenes de referencia y facturamos por segundo: $0.01 por segundo, ×1.5 con el audio encendido. Aquí todos los clips son de 8 segundos, así que el precio es de $0.12 por clip a 720p con sonido.
¿Le basta con una imagen y le vendría bien un clip más corto? Use Veo 3.1 Fast image-to-video: anima un único fotograma inicial y le da 4 o 6 segundos. ¿No tiene nada que subir? Veo 3.1 Fast text-to-video funciona solo con un prompt.
La medición por segundo es universal para este modelo: Google, fal.ai y Replicate lo hacen así, y nosotros también. Como reference-to-video está fijado en 8 segundos, la tabla de abajo es la única configuración que importa. Cifras comprobadas el 26 de agosto de 2026, a 720p con audio:
| Proveedor de API | Facturación | Tarifa (720p, con audio) | Clip de 8 segundos | vs. nosotros |
|---|---|---|---|---|
| E2X (actual) | por segundo | $0.01/s ×1.5 audio | $0.12 | — |
| Google Gemini API | por segundo | $0.10/s | $0.80 | 6,7× nuestro precio |
| fal.ai | por segundo | $0.15/s | $1.20 | 10× nuestro precio |
| Replicate | por segundo | $0.15/s | $1.20 | 10× nuestro precio |
| Precio de lista E2X (antes del descuento) | por segundo | $0.10/s ×1.5 | $1.20 | nuestra tarifa sin descuento |
Lea la última fila contra los dos marketplaces. Nuestro precio de lista es $1.20 por un clip de 8 segundos: precisamente lo que facturan fal.ai y Replicate. Hoy usted paga una décima parte de eso, y aun así queda 6,7× por debajo de la propia API de Google. Esa diferencia es un descuento vivo sobre un modelo idéntico, no un nivel recortado.
Ponga precio al 1080p con cuidado: fal.ai y Replicate incluyen el salto de 720p a 1080p sin coste extra, mientras que Google cobra una tarifa por segundo más alta. La resolución también es un multiplicador de nuestro lado; la cifra vigente vive en el llms.txt de este modelo.
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.
El límite de Google es explícito: "Use hasta tres imágenes de referencia para guiar el contenido", descritas en su schema como "Hasta tres imágenes para usar como referencias de estilo y contenido". Tres. Una cuarta queda fuera de lo que el modelo acepta.
Ese presupuesto obliga a decidir, y ahí está lo interesante de este endpoint. Usted gasta tres huecos en aquello que no debe desviarse. Una sesión de campaña suele repartirlos así: un retrato limpio del presentador, un plano entero que muestra el vestuario, una foto del lugar. Cada clip del set vuelve entonces con la misma persona, la misma ropa, el mismo sitio; usted solo cambia el prompt.
El trabajo de producto se reparte distinto: dos ángulos del objeto, un fotograma del tratamiento de color de la marca. Mismo principio. Las referencias llevan la identidad, el prompt lleva la acción.
Este no es el trabajo de image-to-video. Allí su imagen es el fotograma uno. Aquí las referencias son una guía y el fotograma de apertura se genera a partir de ellas. ¿Necesita un clip que empiece en una imagen fija exacta y aprobada? Ese es el otro endpoint.
La regla de Google dice: la duración "Debe ser '8' cuando se usa extensión, imágenes de referencia o resoluciones de 1080p y 4k". Las imágenes de referencia están en esa lista, así que las opciones de 4 y 6 segundos que ofrecen los otros dos endpoints aquí no existen. Nuestro schema sigue mostrando el enum de duration; para esta capability el único valor válido es "8".
Presupueste en consecuencia. Una secuencia de seis clips son 48 segundos de salida: $0.72 con nosotros, $7.20 en fal.ai o Replicate.
Campos obligatorios: prompt e image_urls.
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/reference-to-video",
"input": {
"prompt": "La mujer de la imagen 1, con el abrigo de la imagen 2, entra en el vestíbulo de la imagen 3 y se sacude la lluvia. Levanta la vista y dice: \"Me esperaste.\" Luz cálida de tungsteno, eco de mármol.",
"image_urls": [
"https://example.com/talent-portrait.jpg",
"https://example.com/wardrobe-coat.jpg",
"https://example.com/lobby-set.jpg"
],
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
El submit devuelve un job ID; haga polling o registre un webhook:
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/reference-to-video",
input: {
prompt:
"La mascota de la imagen 1 salta sobre la encimera de la imagen 2, tira una taza y se queda inmóvil. Pasos chirriantes, un tintineo de cerámica, y luego silencio.",
image_urls: [
"https://example.com/mascot-turnaround.png",
"https://example.com/kitchen-set.jpg",
],
aspect_ratio: "9:16",
resolution: "720p",
duration: "8",
has_sound: "true",
seed: 60411,
},
}),
}).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));
}
El status va pending → processing → completed, o termina en failed / cancelled. Cuente con unos cuatro minutos por job: la ventana oficial de Google es un suelo de 11 segundos y 6 minutos en hora punta. Reutilice un mismo seed en todo un set si quiere que las generaciones rimen.
Pesos idénticos, precio por segundo idéntico. La forma de su entrada elige el endpoint:
| Endpoint | Opciones de duración | Clip de 8s, 720p + audio | Elíjalo cuando |
|---|---|---|---|
| Veo 3.1 Fast reference-to-video | solo 8s | $0.12 | Hasta 3 imágenes deben fijar una cara, un vestuario o un lugar entre clips |
| Veo 3.1 Fast image-to-video | 4 / 6 / 8s | $0.12 | Una imagen fija debe ser literalmente el primer fotograma |
| Veo 3.1 Fast text-to-video | 4 / 6 / 8s | $0.12 | Solo prompt, nada que subir |
| Omni Flash reference-to-video | — | $0.80 (configuración por defecto) | Otra familia, cuando el look de Veo no es el que quiere |
Preferimos que gaste menos. Si una sola imagen hace el trabajo, image-to-video cuesta lo mismo y además desbloquea clips de 4 y 6 segundos: una versión de 4 segundos cuesta $0.06, la mitad de los 8 segundos fijos que paga aquí. Venga a este endpoint cuando la consistencia entre varios clips sea el requisito real, porque eso es lo único que los otros no saben hacer. El resto de la categoría está en reference-to-video; todo lo demás, en el catálogo de modelos.
El modelo recibe un array sin etiquetas. Nada en el payload dice que el hueco dos era vestuario y no un segundo personaje, así que dígalo en el prompt.
Indexar funciona: "la mujer de la imagen 1", "el abrigo de la imagen 2", "el vestíbulo de la imagen 3". Unas pocas palabras, y desaparece la mayor parte de la ambigüedad que produce salidas mezcladas.
Tres hábitos más:
Dé a cada referencia un solo trabajo. Una foto cargada que contiene a una persona, un producto y una habitación obliga al modelo a adivinar qué le importaba a usted. Recorte apretado.
Repita la identidad con palabras. "El mismo pelo corto plateado, las mismas gafas redondas" refuerza lo que muestra la referencia. Un seguro barato.
Escriba el diálogo. Google genera el audio de forma nativa y sin interruptor de apagado en su API, así que el sonido va a ocurrir de todos modos: habla, efectos, ambiente. Ponga la línea entre comillas y caerá en los fotogramas correctos.
Google soporta el inglés por completo y no ha evaluado ningún otro idioma para este modelo, así que mantenga en inglés el texto de instrucciones; el diálogo entrecomillado puede estar en el idioma que pida la escena.
Dos días para descargar. La retención de Google sobre el vídeo generado es de dos días: "debe descargar su vídeo dentro de los 2 días siguientes a la generación". Para una campaña de veinte clips construida a lo largo de una semana, eso es una decisión de arquitectura, no una nota al pie. Copie outputs[0].url a su propio almacenamiento en cuanto un job se complete.
SynthID en cada salida. El watermark imperceptible de Google se aplica a todo el vídeo de Veo y es verificable a través de su plataforma. Ningún proveedor puede desactivarlo.
La generación de personas está limitada por región. En la UE, el Reino Unido, Suiza y MENA, personGeneration queda restringido a allow_adult.
Versione su set de referencias. La consistencia depende de enviar cada vez referencias byte a byte idénticas. Un retrato reexportado que se cuela a mitad de un batch se va a notar.
Facturamos $0.01 por segundo de salida, ×1.5 con el audio encendido. Este endpoint está fijado en 8 segundos, así que un clip en 720p con sonido son $0.12. Las resoluciones más altas llevan su propio multiplicador; consulte la página del modelo en vivo antes de planificar un batch en 1080p.
Tres como máximo. La documentación de Google dice que puede usar hasta tres imágenes de referencia para guiar el contenido, y su schema las describe como referencias de estilo y contenido. Menos está bien; dos es lo habitual.
Google exige 8 segundos siempre que hay imágenes de referencia de por medio, la misma regla que cubre 1080p y 4k. ¿Necesita 4 o 6 segundos? Use en su lugar el endpoint image-to-video o text-to-video: el mismo modelo, el mismo precio por segundo.
Image-to-video convierte una imagen en el fotograma de apertura literal. Reference-to-video toma hasta tres imágenes como guía de identidad, vestuario, estilo o localización, y luego genera un fotograma de apertura coherente con ellas. Use referencias cuando la consistencia entre varios clips importe más que un primer fotograma concreto.
Sí. Google genera diálogo, efectos de sonido y ambiente de forma nativa, sin manera de desactivarlo en su propia API. Nosotros exponemos has_sound con true por defecto, y ese ajuste aplica el multiplicador de precio ×1.5.
Toda salida de Veo lleva SynthID, el marcador imperceptible de Google para contenido generado por IA, verificable en su plataforma. Ningún proveedor —nosotros incluidos— puede desactivarlo.
Presupuestamos unos cuatro minutos. Google publica un mínimo de 11 segundos y un máximo de 6 minutos en hora punta, así que para un set completo de clips use un webhookUrl en vez de mantener abiertos bucles de polling.