Video
Gemini Omni 1.2 Flash
Genera vídeos de Gemini Omni 1.2 Flash de 3 a 15 segundos con sonido nativo a partir de texto, imágenes, primer y último fotograma o referencias, o edita y extiende un vídeo, de 360p a 4K.
Gemini Omni 1.2 Flash es el modelo multimodal de vídeo de Google para generación rápida, edición conversacional y control cinematográfico (actualizado en noviembre de 2026). Un único ID de modelo cubre texto a vídeo, imagen a vídeo, interpolación entre primer y último fotograma, referencias del sujeto a partir de hasta 10 imágenes, edición de vídeo y extensión de vídeo. Cada clip tiene sonido nativo, dura de 3 a 15 segundos y se renderiza en 360p, 720p, 1080p o 4K. Envía la solicitud, guarda el ID de tarea devuelto y lee el vídeo terminado desde la tarea. La multimedia se introduce como URL.
ID de modelo
| ID de modelo | Modos | Resoluciones | Duración |
|---|---|---|---|
gemini-omni-1.2-flash | texto, imagen, fotogramas, referencias, editar, extender | 360p, 720p, 1080p, 4k | De 3 a 15 segundos |
Consulta la página del modelo para ver los precios actuales.
Ejemplo rápido
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "A glass marble rolls fast along a wooden chain-reaction track through a sunlit workshop, one continuous smooth tracking shot. No text, no logos.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9"
}'Endpoint
POST https://api.seedrouter.ai/v1/videos/generations| Encabezado | Valor |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
La respuesta es una tarea ({"id": "task_...", "status": "processing"}), no el vídeo terminado. Sondea GET /v1/tasks/{task_id} para obtener el resultado. Guarda las claves de API en código del lado del servidor.
Parámetros
| Campo | Tipo | Por defecto | Notas |
|---|---|---|---|
model | string | obligatorio | gemini-omni-1.2-flash |
prompt | string | obligatorio | Obligatorio en todos los modos: el plano, el cambio para una edición o lo que sucede después para una extensión. Describe también el sonido; pon aquí las instrucciones negativas. |
duration | integer | 10 | De 3 a 15 segundos. Como máximo 10 con primer y último fotograma y para una extensión (la parte añadida). Una edición lo ignora y conserva la duración del original. |
resolution | enum | 720p | 360p, 720p, 1080p o 4k (2160p equivale a 4k), sin distinguir mayúsculas de minúsculas. 1080p y 4k se reescalan desde una resolución inferior. |
aspect_ratio | enum | 16:9 | 16:9 o 9:16. |
image_urls | lista de URL | ninguno | Una imagen es el fotograma inicial; varias son referencias del sujeto. Hasta 10 imágenes en total, incluidos los fotogramas y las imágenes con roles. |
first_frame_image | URL | ninguno | El clip empieza con esta imagen; con last_frame_image, el modelo interpola entre ambas. |
last_frame_image | URL | ninguno | El clip termina con esta imagen. Requiere un primer fotograma. |
image_with_roles | lista de objetos | ninguno | {"url", "role"} con rol first_frame, last_frame o cualquier otro rol para una referencia. Proporciona los fotogramas así o con los dos campos de fotogramas, no de ambas formas. |
video_urls | lista de URL | ninguno | Un clip de como máximo 15 segundos para editar o extender. |
omni_reference_task_type | enum | auto | auto, edit, extend, reference, text_to_video, image_to_video o reference_to_video. |
extend_from_task_id | string | ninguno | El ID de una de tus tareas completadas de gemini-omni-1.2-flash, para editar o extender su vídeo sin subirlo. |
Cada clip viene con sonido; no hay ningún interruptor de sonido. No hay negative_prompt, seed, entrada de audio ni callback_url. El esquema es estricto: los campos desconocidos se rechazan en lugar de ignorarse.
Modos
| Modo | Cómo seleccionarlo |
|---|---|
| Texto a vídeo | Sin imágenes ni vídeo. |
| Imagen a vídeo | Una imagen en image_urls o un primer fotograma. |
| Primer y último fotograma | first_frame_image y last_frame_image, o los dos roles. Como máximo 10 segundos. |
| Referencias | Varias imágenes en image_urls o roles de referencia; omni_reference_task_type: "reference" para indicarlo explícitamente. |
| Editar | Un vídeo en video_urls o extend_from_task_id; auto o edit. |
| Extender | Un vídeo como el anterior y omni_reference_task_type: "extend". Añade hasta 10 segundos. |
Un vídeo de entrada se edita salvo que pidas extend; con un vídeo se rechazan reference, text_to_video, image_to_video y reference_to_video.
Primer y último fotograma
{
"model": "gemini-omni-1.2-flash",
"prompt": "Smooth transition, the camera slowly pushes in.",
"first_frame_image": "https://example.com/start.jpg",
"last_frame_image": "https://example.com/end.jpg",
"duration": 8
}Editar
{
"model": "gemini-omni-1.2-flash",
"prompt": "Make the violin invisible. Keep everything else the same.",
"video_urls": ["https://example.com/clip.mp4"]
}La edición conserva la duración del original; duration no tiene efecto. Las instrucciones breves y concretas funcionan mejor; para un cambio localizado, añade "Mantén todo lo demás igual".
Extender una tarea anterior
{
"model": "gemini-omni-1.2-flash",
"prompt": "The camera keeps panning across the mountains.",
"extend_from_task_id": "task_...",
"omni_reference_task_type": "extend",
"duration": 8
}El resultado contiene el original seguido de la nueva parte; se facturan los segundos nuevos, más una octava parte de la duración del original. Para extender tu propio clip, envíalo en video_urls en lugar de extend_from_task_id.
Entradas multimedia
Las imágenes y vídeos son URL HTTP(S) públicas. Los URI de datos en base64 no se aceptan: carga los archivos a tu propio almacenamiento y pasa sus URL. El vídeo para editar o extender debe durar como máximo 15 segundos; su duración se lee cuando se acepta la solicitud, y un vídeo cuya duración no se puede leer se rechaza antes de que se cobre nada.
Dimensiones de precios
Consulta la sección de precios del modelo para ver las tarifas actuales. Gemini Omni 1.2 Flash se factura por segundo de vídeo, a una tarifa establecida por la resolución:
text, image, frames, references: cost = duration × rate
edit: cost = (source + source / 8) × rate
extend: cost = (added seconds + source / 8) × ratesource es la duración de la pista de vídeo de entrada, redondeada al alza a segundos completos y medida cuando se acepta la solicitud, por lo que la cantidad reservada es la cantidad cobrada; la octava parte cubre la lectura del vídeo de entrada. Ejemplos en 720p: editar un clip de 6,2 segundos factura 7 + 7/8 = 7,875 segundos; extender un clip de 8 segundos en 4 segundos factura 4 + 1 = 5 segundos. Las tareas fallidas no se cobran.
Esquema de salida
El envío devuelve la tarea:
{"id": "task_...", "model": "gemini-omni-1.2-flash", "status": "processing", "created_at": 1789689600}Obtén la tarea
GET https://api.seedrouter.ai/v1/tasks/{task_id}Sondea cada 10 a 20 segundos hasta que status sea completed o failed. Un agotamiento de tiempo de espera de red mientras sondea no significa que la generación falló: guarda el ID de tarea y reanuda su comprobación. No crees otra tarea para comprobar el progreso.
Tarea completada
{
"id": "task_...",
"model": "gemini-omni-1.2-flash",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689800,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}Cada vídeo lleva la marca de agua invisible SynthID de Google. En nuestras pruebas, los clips en 720p de 5–8 segundos llegaron como MP4 (H.264) a 1280 × 720 con una pista AAC estéreo, 66–86 segundos después del envío; una edición de un clip de 3 segundos llegó con una duración de 3 segundos.
Errores
Las solicitudes rechazadas antes de que se cree una tarea devuelven un error HTTP con un objeto error y no se cobran. Una tarea que falla después de la aceptación devuelve HTTP 200 cuando se consulta, con status: "failed" y un objeto error.
Consulta el catálogo de errores compartido para códigos, estados HTTP y orientación de reintentos.
{
"id": "task_...",
"model": "gemini-omni-1.2-flash",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}Si el envío en sí agota el tiempo de espera, comprueba tus tareas antes de enviar de nuevo: la primera solicitud puede haber sido aceptada.
Consejos
- Describe sujeto, lugar, movimiento de cámara, luz y sonido; el audio del clip sigue el prompt.
- Haz un borrador en
360py luego renderiza el plano que elijas en1080po4kcon la misma solicitud. - Para una edición, cambia una sola cosa cada vez e indica qué debe mantenerse igual.
- Añade
no text, no logospara mantener marcas inventadas fuera.
