Cómo extender un video con Gemini Omni 1.2 Flash

Cada extensión de Omni 1.2 añade entre 3 y 10 segundos, pero los límites varían según la plataforma y una cadena descuidada te hace perder el inicio. Aquí tienes la petición, los números y el costo.

Medy Evrard

6 November 2026

Cómo extender un video con Gemini Omni 1.2 Flash

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

Respuesta rápida: Para extender un video con Gemini Omni 1.2 Flash, envía tu clip y un prompt breve de continuación a la API de Interactions. Cada turno añade de 3 a 10 segundos y devuelve el clip más largo. La API de Gemini se detiene en 30 segundos en total. La Agent Platform de Google Cloud llega a 40, pero solo si planificas cada paso para que no recorte tu apertura.

Si buscas consejos para escribir prompts, consulta nuestra guía sobre la extensión de escenas de Omni 1.1. Esta guía cubre las novedades: las solicitudes, los cálculos del encadenamiento y el costo de un clip de 40 segundos.

Cómo funciona la extensión de video de Gemini Omni 1.2 Flash

La extensión de video genera una continuación al final de un clip. El modelo lee hasta los últimos 10 segundos de tu entrada como contexto, escribe de 3 a 10 segundos nuevos y los une al clip. Solo añade contenido al final: no puedes anteponer material ni extender la parte media.

Google documenta límites diferentes según dónde invoques al modelo:

Gemini API Agent Platform (Google Cloud)
Autenticación Clave de API Proyecto y token de acceso
Duración total 30 segundos 40 segundos
Duración de la entrada No se indica un límite específico Cualquier duración
Imágenes de referencia Hasta 6 en Omni Hasta 2 por extensión
Modo de extensión Prompt primero, task como alternativa task: "extend" en todos los ejemplos
Seed y labels Fuera de la documentación de Omni generation_config.seed, labels
Resultados almacenados 55 días en el plan de pago Hasta 7 días

Fuentes: la documentación de Omni de la API de Gemini y la documentación de extensión de Agent Platform.

En Agent Platform, el modelo lee hasta los últimos 10 segundos y luego concatena el nuevo segmento sobre los últimos 30 segundos de la entrada. El ejemplo de Google extiende una entrada de 60 segundos en 10 segundos y devuelve 40, por lo que los primeros 30 segundos se pierden.

Timeline showing a 60-second input clip where the first 30 seconds are dropped, the last 30 seconds are kept, the model reads the final 10 seconds, and the 40-second output is the kept 30 seconds plus 10 new seconds.

No tienes que unir nada manualmente, ya que la salida incluye el material anterior. Eso sí, Google edita algunos fotogramas finales de tu entrada para suavizar la transición.

Qué cambió en la extensión en la versión 1.2

Cómo extender un video paso a paso en la API de Gemini

  1. Genera un clip o sube uno mediante la API de Files. Los archivos subidos se eliminan a las 48 horas.
  2. Describe solo lo que sucede a continuación.
  3. Define duration entre "3s" y "10s" (10 por defecto).
  4. Guarda el ID de interacción para el siguiente turno.
from google import genai

client = genai.Client()

first = client.interactions.create(
    model="gemini-omni-1.2-flash",
    input="A courier in a yellow jacket cycles through a rainy night market.",
    response_format={"type": "video", "duration": "15s"},
)

second = client.interactions.create(
    model="gemini-omni-1.2-flash",
    previous_interaction_id=first.id,
    input="The courier brakes at a red door. Keep the same yellow jacket.",
    response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)

Para extender tu propio material, reemplaza previous_interaction_id por un array de entrada con {"type": "video", "uri": video_file.uri} y un elemento de texto.

Las subidas tienen dos límites adicionales: no se puede añadir diálogo en escenas donde alguien habla, y no se puede extender desde el EEE, Suiza o el Reino Unido. La extensión en varios turnos de un video generado evita ambas restricciones.

Ejemplo de solicitud en Agent Platform

Usa esta vía si necesitas 40 segundos o una cola de trabajos. La generación puede tardar más de un minuto, así que envía este cuerpo mediante POST a https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions con background activado:

{
  "model": "gemini-omni-1.2-flash",
  "background": true,
  "input": [
    { "type": "text", "text": "The courier opens the red door and steps inside." },
    { "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "gs://my-bucket/out/",
      "aspect_ratio": "16:9",
      "duration": "5s"
    }
  ],
  "generation_config": {
    "seed": 4242,
    "video_config": { "task": "extend" }
  },
  "labels": { "campaign": "courier", "hop": "2" }
}

La llamada devuelve un ID de interacción con estado in_progress. Consulta su estado con GET .../locations/global/interactions/INTERACTION_ID. Cuando termine, lee el URI gs:// del paso model_output dentro de steps. Ese URI se convierte en la entrada de tu siguiente salto.

También existen los modos sin estado (store: false), con estado (store: true) y de streaming. Los resultados almacenados y asíncronos se conservan hasta 7 días, así que copia todo lo que necesites.

[VERIFICAR] No ejecutado: no había un proyecto de Google Cloud disponible. El cuerpo de ejemplo de Google no muestra ni seed ni labels, así que confirma su ubicación.

Encadenamiento hasta el límite de 40 segundos

Un salto solo conserva todo tu material si su entrada es de 30 segundos o menos. Para llegar a 40 sin perder nada, alcanza exactamente 30 primero.

Salto duration planificado Salida planificada duration ingenuo Salida ingenua
Inicio 15s 15s 15s 15s
1 10s 25s 10s 25s
2 5s 30s 10s 35s
3 10s 40s 10s 40s, se pierden los primeros 5s
Two chaining plans compared: the planned chain of 15 seconds plus 10, 5 and 10 reaches 40 seconds with nothing lost, while the naive chain of 15 seconds plus three 10-second hops reaches 40 seconds but drops the first 5 seconds.

La cadena ingenua gana 5 segundos extra y luego descarta tu apertura. La duración del clip no te avisará, porque ambas cadenas devuelven 40 segundos.

Un inicio de 15 segundos no ahorra llamadas al llegar a 40: empezar con 10 también requiere tres extensiones. Pero ayuda en otros casos: llegar a 25 segundos requiere una extensión en lugar de dos, y llegar a 35 requiere dos en lugar de tres.

En la API de Gemini, detente después del salto 2. Google no dice qué ocurre con una solicitud que supera los 30 segundos.

Mantén la consistencia de los personajes con imágenes de referencia y seed

Un personaje que salió del cuadro antes de los últimos 10 segundos es invisible para el modelo, incluso si esos fotogramas permanecen en el clip. La solución de Google: menciónalo de nuevo o pasa una imagen de referencia en el mismo array de input:

{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }

Define generation_config.seed para obtener resultados reproducibles. Resulta más útil al depurar: vuelve a ejecutar un salto con la misma seed para ver si un cambio provino de tu prompt. Google no garantiza que una seed mantenga la consistencia de un personaje entre prompts diferentes, así que para eso confía en las referencias. Usa labels para rastrear la facturación por salto.

Cuánto cuesta un clip de 40 segundos

La página de precios de Google factura la salida de video de Omni 1.2 a $12.00 por millón de tokens. No especifica si una extensión factura solo los segundos nuevos o cada segundo devuelto. La cadena planificada genera 40 segundos, pero devuelve 15, 25, 30 y 40, lo que suma un total de 110.

Resolución Por segundo Si solo facturan los segundos nuevos Si factura cada segundo devuelto
360p $0.023 $0.93 $2.55
720p Aprox. $0.07 $2.78 $7.65
1080p (remuestreado) $0.104 $4.17 $11.47
4K (remuestreado) $0.209 $8.34 $22.94

Estas son tarifas de la API de Gemini, calculadas a partir de los tokens por segundo de Google. Los tokens de entrada ($1.50 por millón) y los tokens de razonamiento ($9.00 por millón) se suman aparte.

Hasta que lo verifiques, presupuesta con la columna de la derecha. Para mantener la factura baja:

Las solicitudes a gemini-omni-1.1-flash se enrutan a la versión 1.2 a partir del 3 de diciembre de 2026 y se facturan con las tarifas de 1.2.

Deja que tu agente de código pruebe el flujo asíncrono con Apidog CLI

Una cadena asíncrona falla en silencio: un sondeo que nunca termina, una ejecución que acaba en estado failed, una respuesta que cambia de estructura. Deja que tu agente de código construya esa prueba con Apidog CLI y la ejecute por ti.

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

Luego dale a Claude Code, Codex o Cursor un único prompt:

In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.

El agente valida su payload y luego construye y ejecuta el escenario:

apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports

Cada ejecución factura un clip real, así que ejecútala cada noche, no en cada commit. Un salto de 3 segundos a 360p cuesta alrededor de $0.07 si solo facturan los segundos nuevos. La misma línea se integra en un pipeline, como muestra nuestra guía de CI/CD con Apidog CLI, y la guía de configuración de Claude Code cubre la parte del agente. Apidog Free cubre hasta 4 usuarios.

Preguntas frecuentes

¿Cuánto puede durar un video de Gemini Omni 1.2 Flash? Una sola generación dura de 3 a 15 segundos. Con extensión, la documentación de la API de Gemini indica 30 segundos en total y la de Agent Platform indica 40.

¿Por qué desapareció el inicio de mi video extendido? En Agent Platform solo se conservan los últimos 30 segundos de la entrada. Cualquier entrada de más de 30 segundos pierde su apertura. Planifica tus saltos para que el último comience exactamente desde los 30 segundos.

¿Puedo extender un video que filmé yo mismo? Sí, fuera del EEE, Suiza y el Reino Unido. Súbelo mediante la API de Files o apunta a Cloud Storage en Agent Platform. No puedes añadir diálogo a un clip subido donde alguien esté hablando.

¿Puedo extender un clip gratis? No a través de la API. Google enumera el plan gratuito como "No disponible" para Omni 1.2 y 1.1, así que incluso una prueba se factura. Una extensión de 3 segundos a 360p es la más económica que puedes ejecutar.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs