Gemini Omni 1.1 Flash genera clips de 10 segundos. La extensión de escena es cómo superas eso: cada llamada de extensión añade otros 10 segundos, hasta un acumulado de 40 segundos.
La mecánica existía en el modelo de vista previa, pero no era de mucha utilidad. La vista previa analizaba el último segundo de metraje antes de continuar, lo cual es suficiente contexto para mantener los colores más o menos consistentes y nada más. Los personajes cambiaban de ropa. Los movimientos de cámara se reiniciaban. El lanzamiento GA el 27 de agosto de 2026 amplió esa ventana a 10 segundos de contexto previo, y Google atribuye el cambio a una "consistencia visual y adhesión narrativa mejoradas".
Esta guía cubre cómo llamarlo, cuáles son los límites reales y cómo evitar que una secuencia de 40 segundos se desmorone en el tercer segmento.
La llamada de extensión básica
La extensión funciona a través de la API de Archivos. Sube el clip, pasa su URI junto con un prompt que describa lo que sucede a continuación:
import base64
from google import genai
client = genai.Client()
video_file = client.files.upload(file="my_video.mp4")
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "text", "text": "Continúa la escena."},
],
)
with open("extended.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
Las cargas se procesan de forma asíncrona, así que consulta el estado del archivo antes de enviar la interacción:
import time
while video_file.state == "PROCESSING":
time.sleep(10)
video_file = client.files.get(name=video_file.name)
if video_file.state == "FAILED":
raise ValueError(video_file.state)
Si el video que estás extendiendo provino de Omni en la misma sesión, omite la carga por completo y encadena el ID de interacción en su lugar. Esa ruta es más económica en tokens y mantiene más estado:
res2 = client.interactions.create(
model="gemini-omni-1.1-flash",
previous_interaction_id=res1.id,
input="La cámara se aleja para revelar toda la calle.",
)
El tutorial de la API cubre el resto de la superficie de solicitud, incluyendo opciones de resolución y entrega.
Introducir un personaje en la extensión
Puedes adjuntar medios de referencia a una extensión y apuntar a ellos desde el prompt. Las referencias subidas obtienen ranuras que puedes dirigir como <IMAGE_REF_0>, <IMAGE_REF_1>, y así sucesivamente:
video_file = client.files.upload(file="my_video.mp4")
character_img = client.files.upload(file="character.png")
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "document", "uri": character_img.uri},
{"type": "text", "text": "Extiende este video: haz que el personaje mostrado en <IMAGE_REF_0> entre en la escena y salude con la mano."},
],
)
Las referencias de video también funcionan, limitadas a tres clips de tres segundos cada uno. El modelo las lee en busca de movimiento y apariencia; el audio de los clips de referencia se ignora.
Los límites que vale la pena conocer antes de planificar una secuencia
40 segundos es el límite. Cuatro segmentos en total: una generación más tres extensiones. No hay forma de ir más allá dentro de una sola secuencia.
Solo añadir. La extensión añade al final de un clip. No puedes anteponer metraje o insertar en el medio. Si el segmento dos es incorrecto, regeneras desde el segmento dos en adelante, y todo lo que sigue se va con él.
La entrada subida tiene un límite de 10 segundos. Ese es el límite para el video que subes. Las cadenas de múltiples turnos a través de previous_interaction_id no están limitadas por esto, porque el modelo ya mantiene el estado anterior.
Sin diálogo en cargas extendidas. Puedes extender el clip subido de otra persona en silencio, o trabajar en una interacción de múltiples turnos, pero no puedes añadir diálogo al extender una carga.
Restricciones regionales. La carga y edición de video no están disponibles en el Espacio Económico Europeo, Suiza y el Reino Unido. Los videos generados por el modelo permanecen editables en esas regiones, por lo que la ruta previous_interaction_id aún funciona allí, mientras que la ruta de carga no.
Un video a la vez. El modelo no razonará a través de múltiples videos de entrada.
Esbozar todo el arco antes de renderizarlo
Aquí está el flujo de trabajo que ahorra más dinero y la mayor frustración.
Una secuencia de 40 segundos a 720p cuesta aproximadamente $4.06 en salida de video, y el modo de fallo es específico: la historia se desvía en algún lugar del segmento tres, por lo que regeneras los segmentos tres y cuatro, y a veces eso cambia algo que te gustaba en la apertura del segmento tres. Puedes quemar varios renders completos buscando la versión que funciona.
Esboza todo el arco primero a 360p. Se genera hasta un 60% más rápido a un tercio del costo, por lo que los mismos cuatro segmentos cuestan alrededor de $1.35. Confirma que la historia sobrevive a las cuatro extensiones, luego vuelve a renderizar a 720p o superior con los prompts que validaste. El artículo de precios tiene los cálculos completos.
Establece la resolución en el formato de respuesta:
interaction = client.interactions.create(
model="gemini-omni-1.1-flash",
input=[
{"type": "document", "uri": video_file.uri},
{"type": "text", "text": "Continúa la escena."},
],
response_format={"type": "video", "resolution": "360p"},
)
Escribir prompts que sobreviven a cuatro segmentos
Algunos patrones que aguantan mejor que otros.
Describe el cambio, no toda la escena. El modelo ya ve 10 segundos de lo que vino antes. Volver a describir el escenario lo invita a reinterpretar lo que ya está en pantalla. "La cámara se acerca a la puerta" es mejor que un párrafo nuevo sobre la habitación.
Dale un movimiento por segmento. Las extensiones que piden dos acciones tienden a entregar una versión apresurada de ambas. Diez segundos es una acción.
Mantén explícitos los anclajes de continuidad. Nombrar lo que debe permanecer constante ("la misma chaqueta roja", "el mismo ángulo bajo") le da al modelo algo a lo que aferrarse a través de la unión.
No luches contra el límite de solo añadir. Planifica tu secuencia en el orden en que se reproduce. No hay forma de arreglar el principio más tarde sin regenerar todo lo que sigue.
La creación de prompts tiene mucho peso aquí, y la guía de prompts de Veo cubre principios que se transfieren entre modelos de video.
Verificando tus extensiones de la misma manera dos veces
Cuatro llamadas encadenadas significan cuatro lugares donde puede aparecer un cambio en el comportamiento del modelo, y la salida de video es difícil de evaluar visualmente para detectar regresiones cuando solo estás mirando el render final.
Guarda cada etapa como su propia solicitud en Apidog, con el URI del archivo y el ID de interacción en variables de entorno para que puedas volver a ejecutar un segmento específico sin reconstruir la cadena manualmente. Afirma la forma de la respuesta, ya que una extensión de mayor resolución puede empujar el archivo más allá de los 4MB y cambiar de base64 en línea a un URI. Aumenta el tiempo de espera mucho más allá del predeterminado; las extensiones se ejecutan más tiempo que la generación inicial porque el modelo lee primero 10 segundos de contexto.
Esa configuración cuesta diez minutos y se amortiza la primera vez que necesitas saber si el problema de la unión es tu prompt o una actualización del modelo. Descarga Apidog para configurarlo.
Preguntas frecuentes
¿Cuánto puede durar un video de Gemini Omni? 40 segundos acumulativos, construidos a partir de una generación de 10 segundos más tres extensiones de 10 segundos.
¿Puedo extender un video que filmé yo mismo? Sí, hasta 10 segundos de entrada, fuera del EEE, Suiza y el Reino Unido. Súbelo a través de la API de Archivos y pasa el URI.
¿Puedo añadir al principio de un clip? No. La extensión solo añade al final.
¿Por qué mi personaje cambia de apariencia entre segmentos? Usualmente, el prompt vuelve a describir la escena en lugar del cambio, o el anclaje de continuidad no es explícito. Nombra lo que debe permanecer igual y considera pasar una imagen del personaje como referencia en la extensión.
¿Cada extensión tiene un costo adicional? Sí. Cada extensión factura sus propios 10 segundos de salida de video, más los tokens de entrada para el contexto que lee.
¿Qué pasa si necesito más de 40 segundos? Veo 3.1 extiende 7 segundos a la vez hasta 148 segundos, solo a 720p. La comparación de modelos cubre esa compensación, y la guía de la API de Veo tiene los detalles de integración.
La extensión de escena es la característica que mueve a Omni de demo a entregable, pero recompensa la planificación. Crea un storyboard de los cuatro puntos clave, esboza todo el arco a 360p, mantén cada prompt en un solo movimiento, y solo gasta dinero en 720p en la versión que ya sabes que funciona.
