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/image-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.
Entregue a este endpoint una imagen fija y se convierte en el primer fotograma de un plano en movimiento y con banda sonora. Operamos el Veo 3.1 Fast de Google como google/veo-3.1-fast/image-to-video y facturamos por segundo de salida: $0.01 por segundo, ×1.5 con la pista de audio encendida. Así que un clip de 8 segundos en 720p con sonido son $0.12: una imagen más un prompt, sin pelearse con referencias.
¿No tiene imagen de partida? Entonces su endpoint es Veo 3.1 Fast text-to-video: el mismo modelo, el mismo precio, solo prompt, y además le deja bajar a 4 o 6 segundos. Si en cambio tiene varias imágenes y lo que importa es mantener a un personaje consistente entre tomas, vaya a Veo 3.1 Fast reference-to-video.
Nadie vende este modelo por vídeo. Google, fal.ai, Replicate y nosotros medimos la salida segundo a segundo, así que una comparación justa tiene que fijar la configuración. Aquí van 8 segundos, 720p, audio encendido, según la última vez que lo comprobamos, el 26 de agosto de 2026:
| 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 |
Deténgase en esa última fila. Nuestro precio de lista sin descuento es $1.20 por un clip de 8 segundos: la misma cifra exacta que cobran fal.ai y Replicate. Los $0.12 que paga ahora son una décima parte de eso, y siguen quedando 6,7× por debajo de la propia API de Google.
La resolución golpea la factura de forma distinta según dónde compre. Subir de 720p a 1080p no cuesta nada extra en fal.ai ni en Replicate; Google cobra una tarifa por segundo más alta. Nosotros también tratamos la resolución como un multiplicador, así que lea la cifra vigente en el llms.txt de este modelo antes de planificar una tirada en 1080p.
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.
Su imagen ancla el fotograma uno. Todo lo que viene después está generado; quédese con ese modelo mental, porque explica tanto la virtud como el modo de fallo.
La virtud: composición, paleta, vestuario y decorado ya están cerrados. No se está jugando a que la prosa reproduzca una foto de producto que el cliente ya aprobó. Pase la imagen fija, describa el movimiento y obtenga un clip que empieza exactamente donde empezaba la imagen.
El modo de fallo: cuanto más se aleja el clip de ese fotograma, más improvisa. Pida una órbita de 180° en ocho segundos y el lado opuesto del sujeto será invención. Pida un push-in lento y un giro de cabeza, y aguanta.
El audio viene incluido en el viaje. Google lo genera de forma nativa y su API no tiene ningún interruptor para desactivarlo: diálogo sincronizado, pasos sobre la pisada, tono de sala por debajo. Entra una fotografía fija; sale algo con banda sonora.
Las restricciones de Google sobre la imagen de origen, sin rodeos:
image_url cuando se ejecuta el job, no cuando usted lo envía.Esta última causa más fallos que todas las demás juntas: los enlaces firmados de vida corta caducan en mitad de la cola.
Aquí hay dos campos obligatorios: prompt e image_url.
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/image-to-video",
"input": {
"prompt": "El barista desliza la taza hacia delante y el vapor se enrosca hacia arriba. Push-in lento sobre la crema. Silbido de la máquina de espresso, murmullo bajo de cafetería al fondo.",
"image_url": "https://example.com/counter-shot.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
Recibe un job ID de vuelta. Haga polling, o pásenos 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/image-to-video",
input: {
prompt:
"Ella se baja las gafas de sol y mira fuera de cuadro, hacia la izquierda. El dobladillo se levanta con el viento. Cámara fija, gaviotas y rompiente por debajo.",
image_url: "https://example.com/lookbook-03.jpg",
aspect_ratio: "9:16",
resolution: "720p",
duration: "8",
has_sound: "true",
seed: 88117,
},
}),
}).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 || "Animation failed");
}
await new Promise((r) => setTimeout(r, 5000));
}
Los jobs se mueven pending → processing → completed, o se detienen en failed / cancelled. Envíe un webhookUrl si prefiere no hacer polling. Nosotros planificamos unos cuatro minutos; el rango publicado por Google es de 11 segundos en el mejor caso y 6 minutos en hora punta.
Ojo con los tipos: duration, resolution y has_sound son strings. "true", no true.
Tres puertas hacia los mismos pesos, al mismo precio por segundo. Su entrada decide cuál:
| Endpoint | Clip de 8s, 720p + audio | Elíjalo cuando |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.12 | Una imagen fija ya aprobada debe ser el fotograma uno |
| Veo 3.1 Fast text-to-video | $0.12 | Todavía no existe nada, y quiere la opción de 4s o 6s |
| Veo 3.1 Fast reference-to-video | $0.12 | Hasta tres imágenes deben definir una cara, un producto o un lugar recurrente |
La división honesta: use este endpoint cuando la imagen fija sea el fotograma de apertura. Use reference-to-video cuando sus imágenes sean más bien una guía —el mismo actor a lo largo de cinco escenas— y asuma que le ata a 8 segundos. ¿Solo está explorando? No suba nada: text-to-video a 4 segundos cuesta $0.06 y le quema un storyboard en un momento. Explore el resto en la categoría image-to-video o en el catálogo completo de modelos.
El error habitual es volver a describir la imagen que acaba de subir. El modelo la ve. Cada palabra gastada en "una mujer con abrigo rojo en un muelle" es una palabra que no se gasta en lo que ocurre después, y encima invita a reinterpretar un fotograma que usted ya tenía cerrado.
Escriba el cambio. Tres hábitos aportan la mayor parte de la calidad:
Dé un movimiento principal. Un giro de cabeza, un avance de cámara, una puerta que se abre. Apile cuatro acciones en ocho segundos y no se lee ninguna.
Diga dónde está la cámara y si se mueve. "Fija", "dolly lento hacia dentro", "deriva a la derecha en cámara en mano". El silencio en este punto produce flotación sin rumbo.
Póngale sonido en voz alta. Nombre el ambiente y cualquier línea de diálogo entre comillas. El audio se genera lo planifique usted o no, así que planifíquelo.
Los prompts en inglés están totalmente soportados. Google no ha evaluado otros idiomas para este modelo, así que mantenga las instrucciones en inglés aunque la línea hablada esté en otro.
Dos días. Esa es su ventana de descarga. Google conserva el vídeo generado dos días; su redacción: usted debe descargar su vídeo dentro de los 2 días siguientes a la generación. Traiga outputs[0].url a su propio almacenamiento en la misma ruta de código que lo lee. El enlace devuelto es temporal.
SynthID está en cada fotograma. Google marca toda la salida de Veo con su marcador de procedencia imperceptible, verificable a través de su plataforma. Ningún proveedor puede desactivarlo, nosotros incluidos.
Personas en regiones reguladas. En la UE, el Reino Unido, Suiza y MENA, personGeneration queda limitado a allow_adult.
Haga coincidir el aspect ratio con su fuente. Una imagen 16:9 con 9:16 pedido obliga al modelo a inventarse los bordes.
Cobramos $0.01 por segundo de vídeo generado, multiplicado por 1,5 cuando el audio está encendido. Eso deja un clip de 8 segundos en 720p con sonido en $0.12. Las resoluciones más altas aplican su propio multiplicador, así que consulte la página del modelo en vivo antes de presupuestar un batch en 1080p o 4k.
Menos de 8 MB, al menos 720p, y 16:9 o 9:16. La descargamos desde el image_url que usted proporciona, así que el enlace tiene que seguir resolviendo cuando se ejecute el job: las URLs firmadas que caducan son el fallo más común aquí.
En este endpoint no: acepta exactamente un image_url. Si varias imágenes deben guiar una generación, use reference-to-video, que acepta un array de hasta tres.
Sí, y es una de las razones principales para recurrir a este modelo. Google produce diálogo, efectos y ambiente sincronizados de forma nativa, sin ningún interruptor de apagado en su propia API. Nuestro schema expone has_sound, con valor por defecto true, que arrastra el multiplicador ×1.5.
Hasta 8 segundos. Este endpoint acepta 4, 6 u 8, pero la salida en 1080p y 4k requiere los 8 completos. Nada en la familia Veo 3.1 Fast supera los 8 segundos en una sola llamada.
Todo vídeo de Veo lleva SynthID, el watermark imperceptible de procedencia de IA de Google, y se puede comprobar en su plataforma de verificación. Nadie ofrece una forma de desactivarlo.
Cuente con unos cuatro minutos por job. Las cifras oficiales de Google sitúan el suelo en 11 segundos y el techo en hora punta en 6 minutos, así que un webhook le gana a un bucle de polling en cuanto maneje volumen real.