IA y Agentes

Generar video con IA desde OpenClaw: texto, imagen y video

Configura la generación de video en OpenClaw, entiende cómo elige el modelo y pon a prueba Veo, Runway y xAI generando desde texto y desde una imagen.

En esta página
Portada de Generar video con IA desde OpenClaw: título, imagen y secuencia de video centrados, con los logos de Google Veo, Runway y xAI/Grok.

En esta entrada veremos cómo generar video con IA desde OpenClaw: qué necesitas para empezar, cómo elige (el agente) el modelo que va a usar y qué pasa mientras el proveedor procesa el video. Al final haremos un laboratorio con dos de los tres modos de generación (desde texto y desde una imagen) y correremos el mismo prompt en Google Veo, Runway y xAI para comparar resultados.

A diferencia de una imagen, un video no llega en segundos. OpenClaw manda el trabajo al proveedor, te deja seguir conversando y te avisa en el mismo chat cuando el archivo está listo. Entender ese flujo es lo que te evita pagar dos veces por el mismo video.

Guía revisada el 6 de septiembre de 2026 con la documentación vigente de OpenClaw, Google, Runway y xAI. La generación de video cambia especialmente rápido: verifica siempre los modelos de tu instalación con video_generate action=list.

Inicio rápido

Si ya tienes OpenClaw corriendo en Docker, son tres pasos.

1. Agrega la API key del proveedor

Cada proveedor lee su propia variable de entorno. Para Google Veo:

plaintext
GEMINI_API_KEY=tu_key_de_google

Va en el .env del servidor, nunca en el chat. Más abajo explico cómo pasarla al contenedor sin exponerla.

2. Elige un modelo por defecto (opcional)

Si no configuras nada, OpenClaw usa alguno de los proveedores que tengan credenciales. Si prefieres fijarlo:

Dónde ejecutar estos comandos

Ejecuta todos los comandos docker compose de esta guía desde la carpeta que contiene el docker-compose.yml de tu instalación de OpenClaw. En estos ejemplos, openclaw es el nombre del servicio definido allí.

shell
docker compose exec openclaw openclaw config set \
  agents.defaults.mediaModels.video.primary \
  "google/veo-3.1-fast-generate-preview"

3. Pídelo en el chat

No hace falta invocar nada especial: el agente llama a la herramienta video_generate por su cuenta.

plaintext
Genera un video vertical 9:16 de 4 segundos de un gato con gorro de chef revolviendo una olla de espagueti verde. Cámara fija, movimiento natural, sin texto.

Para ver qué proveedores y modelos detectó tu instalación:

plaintext
/tool video_generate action=list

OpenClaw solo muestra video_generate cuando encuentra al menos un proveedor listo. Empieza con clips cortos y a 720p: ahorras mientras ajustas el prompt y confirmas que el archivo llega bien al canal.

Cómo funciona la generación de video

Diagrama del flujo de generación de video con OpenClaw: del canal al agente, a video_generate y al proveedor; la tarea se procesa en segundo plano y el resultado vuelve al mismo chat.
OpenClaw envía el trabajo al proveedor y retoma la conversación cuando el video está listo.

Un video puede tardar desde unos 30 segundos hasta varios minutos, según el proveedor y la resolución. Por eso OpenClaw no se queda esperando:

  1. El agente interpreta tu petición y llama a video_generate.
  2. OpenClaw decide qué modelo usar.
  3. Envía el trabajo al proveedor y registra un task ID.
  4. El proveedor procesa el video en segundo plano.
  5. Cuando termina, OpenClaw despierta la misma sesión y el agente te entrega el archivo en el chat.

Mientras se procesa, puedes seguir conversando. Si intentas iniciar otra generación en la misma sesión, OpenClaw puede devolver el estado de la tarea activa para evitar duplicados.

Cómo elige el modelo

OpenClaw recorre esta lista y se queda con el primero que aplique:

  1. El modelo que indiques en la petición (model).
  2. mediaModels.video.primary.
  3. mediaModels.video.fallbacks, en orden.
  4. Autodetección entre los proveedores que tengan credenciales.

Ojo con el primer punto: cuando nombras un modelo en la petición, OpenClaw usa ese y no pasa al siguiente si falla. Para aprovechar los fallbacks, pide el video sin nombrar proveedor.

Árbol de decisión para elegir el modelo de video en OpenClaw: modelo explícito, principal y fallbacks configurados, o detección automática si no hay lista.
La detección automática solo se usa cuando no hay modelo principal ni fallbacks de video configurados.

Seguir una tarea

Cada tarea pasa por queued (en cola), running (el proveedor la está procesando), succeeded (el video está listo) o failed (error del proveedor o timeout). Para saber en qué va, pregunta en el chat:

plaintext
¿Cómo va la generación de mi video?

O revisa desde el servidor:

shell
docker compose exec openclaw openclaw tasks list

Después usa el identificador devuelto:

shell
docker compose exec openclaw openclaw tasks show <task-id>

Dónde queda el archivo

OpenClaw guarda los resultados en su almacenamiento multimedia y los entrega como adjuntos o URLs. El límite compartido predeterminado para video es de 16 MB.

Si un proveedor termina correctamente pero el archivo no llega al chat, revisa el task y los logs. Para videos más grandes puedes aumentar:

plaintext
agents.defaults.mediaMaxMb

No lo subas sin límite. WhatsApp, Telegram y otros canales también tienen restricciones propias. Para clips pesados es preferible conservar la URL del proveedor o procesarlos antes de enviarlos.

Proveedores soportados

OpenClaw integra más de una docena de proveedores de video. Todos generan desde texto; lo que cambia es si aceptan imágenes o videos de referencia, y cuántos.

Collage de logos de proveedores de generación de video en OpenClaw, con tamaños, colores y posiciones irregulares; aparecen Google, Runway, xAI/Grok, BytePlus, OpenAI y otros.
Proveedores de video documentados por OpenClaw; consulta video_generate action=list para saber cuáles tienes disponibles.

La lista completa con los límites de cada uno está en la documentación oficial, pero la fuente más confiable es tu propia instalación: video_generate action=list te dice qué proveedores tienes listos y qué modos soporta cada uno.

Los tres modos de video_generate

video_generate no tiene un parámetro para elegir el modo: lo deduce de lo que le mandes.

Modo

Qué le mandas

Para qué sirve

generate

Solo texto

Un clip desde cero

imageToVideo

Una o más imágenes

Animar una imagen que ya aprobaste

videoToVideo

Uno o más videos

Cambiar el estilo de un clip o extenderlo

Antes de enviar la petición, OpenClaw revisa que el proveedor elegido soporte ese modo. Con imágenes puedes indicar para qué sirve cada una con imageRoles: first_frame (el video arranca en esa imagen), last_frame (termina en ella) o reference_image (solo sirve de referencia visual).

Qué puedes pedirle en el prompt

No necesitas escribir parámetros: los describes en tu mensaje y el agente los traduce al llamar a video_generate. Estos son los que más vas a usar:

Parámetro

Qué controla

Cómo lo pides en el chat

aspectRatio

Proporción del video: 16:9, 9:16 o 1:1

“en vertical”, “en horizontal 16:9”

resolution

Calidad de salida, de 360P a 4K según el proveedor

“en 720p”, “en 1080p”

durationSeconds

Duración; se ajusta a la más cercana que soporte el modelo

“de 6 segundos”

audio

Audio generado junto con el video, si el proveedor lo soporta

“con sonido ambiente”, “sin audio”

No todos los parámetros funcionan con todos los modelos. OpenClaw normaliza valores cercanos, omite controles incompatibles y lo informa en el resultado. No asumas que una petición a 4K, sin audio o con cierto aspect ratio fue aplicada: revisa los detalles devueltos.

Hay otros que vale la pena conocer: watermark para pedir el video sin marca de agua cuando el proveedor lo permite, audioRef para pasarle música o una voz de referencia, timeoutMs para darle más tiempo a una generación larga y providerOptions para opciones propias de cada proveedor, como fijar un seed en los que lo aceptan.

Si quieres ver todos los ajustes, están en la documentación de video_generate.

Agrega las credenciales sin exponerlas

En el Inicio rápido quedó pendiente un detalle: cómo llega la API key del proveedor a OpenClaw. Como en esta serie OpenClaw corre dentro de Docker, la API KEY no se escribe en el chat. Vive en el .env del servidor y el contenedor la recibe como variable de entorno. Nunca la mandes por WhatsApp.

Primero agrega al .env las API KEYS de los proveedores que vayas a usar. Aquí van las tres del laboratorio:

plaintext
GEMINI_API_KEY=tu_key_de_google
RUNWAYML_API_SECRET=tu_secret_de_runway
XAI_API_KEY=tu_key_de_xai

Después pásalas al servicio en tu archivo de Docker Compose:

yaml
services:
  openclaw:
    environment:
      GEMINI_API_KEY: ${GEMINI_API_KEY}
      RUNWAYML_API_SECRET: ${RUNWAYML_API_SECRET}
      XAI_API_KEY: ${XAI_API_KEY}

Recrea el servicio para cargar variables nuevas:

shell
docker compose up -d

Comprueba presencia, nunca valores:

shell
docker compose exec openclaw sh -lc '
  test -n "$GEMINI_API_KEY" && echo GEMINI_API_KEY=present
  test -n "$RUNWAYML_API_SECRET" && echo RUNWAYML_API_SECRET=present
  test -n "$XAI_API_KEY" && echo XAI_API_KEY=present
'

Si todavía no tienes Runway o xAI, agrega sus variables solamente cuando abras las cuentas. No dejes valores falsos o placeholders en producción: un proveedor sin credenciales simplemente no debe considerarse listo.

Qué recomiendo configurar

Para un sistema que usaré desde WhatsApp elegiría:

  1. Google Veo 3.1 Fast como proveedor principal: ya tengo GEMINI_API_KEY, OpenClaw lo integra de forma nativa y es su modelo predeterminado documentado para Google.
  2. Runway Gen-4.5 como primer fallback: añade un proveedor independiente y resulta útil cuando importa el movimiento, la cámara y la consistencia visual.
  3. xAI Grok Imagine Video como segundo fallback: ofrece otra ruta nativa para generación, edición y extensión sin depender de Google ni Runway.

No empezaría agregando cinco servicios. Tres rutas son suficientes para aprender cómo se comportan los fallbacks y comparar resultados sin volver inmanejable la facturación.

Para dejar esa cadena configurada:

shell
docker compose exec openclaw openclaw config set \
  agents.defaults.mediaModels.video.primary \
  "google/veo-3.1-fast-generate-preview"

docker compose exec openclaw openclaw config set \
  agents.defaults.mediaModels.video.fallbacks \
  '["runway/gen4.5","xai/grok-imagine-video"]'

Con esto, si Veo falla o no está disponible, OpenClaw intenta con Runway y después con xAI.

Laboratorio: el mismo prompt en tres proveedores

Cada prueba usa el mismo prompt en Google Veo, Runway y xAI, y nombra el modelo en la petición. Así ningún fallback se mete en medio y la comparación es pareja. Por ejemplo:

plaintext
Genera este video con runway/gen4.5: <prompt>

Los modelos que uso son google/veo-3.1-fast-generate-preview, runway/gen4.5 y xai/grok-imagine-video.

Composición con los logos de Google, Runway y xAI/Grok como tres proveedores para comparar generación de video.
Google Veo, Runway y xAI/Grok: los tres proveedores del laboratorio.

Prueba 1: texto a video (generate)

Sin ningún archivo de referencia: todo sale del prompt.

Texto a video

Texto → video
AntesEntrada

PromptVideo vertical 9:16, 6-8 s, fotorrealista, sin caricatura. Dos gatos domésticos reales cocinan espagueti verde mexicano en una cocina acogedora con acentos rosa, fucsia y lila y luz cálida. Kuka: delgado, pelo corto crema con rayas grises atigradas en cara, orejas, patas y cola; orejas grandes, ojos azul claro, gorro de chef. Gato 2: delgado, gris atigrado con blanco (pecho y patas blancos, cola rayada), ojos verde-amarillos, gorro de chef. Kuka, de pie en la estufa apoyado en la encimera, revuelve sin parar la pasta con cucharón de madera; el gato 2 vierte salsa cremosa de chile poblano de un tazón a la olla, con chorro verde y vapor. Final: una salpicadura cae cerca del hocico del gato 2 y reacciona sorprendido; Kuka voltea a mirarlo. Plano único, encuadre medio, ambos gatos visibles, dolly-in suave. Fotorrealista: pelaje y ojos detallados, fondo desenfocado. Sin humanos, texto, marcas, caricatura ni patas extra. Los gatos tocan comida y utensilios casi todo el clip.

Después↓ 3 modelosmismo prompt, sin retoques
Google Veo 3.1 Fast
Google Veo 3.1 Fast · 1 min 10 s · ≈ $1.20–3.20 · con audio
Mismo prompt en los tres modelos, sin posproducción.

Incluye sujeto, acción, entorno, cámara, iluminación, duración y formato. Entre más de eso fijes en el prompt, menos decide el modelo por ti.

Ficha de evaluación de la prueba 1 (texto a video, dos gatos cocinan espagueti verde): siete criterios del 1 al 5. Total: Google Veo 29, xAI 22 y Runway 19 de 35.
Mi valoración de la prueba 1: Veo gana, aunque no por mucho; Runway pierde por la salsa y por no tener audio.

Prueba 2: imagen a video (imageToVideo)

Aquí parto de una imagen generada con IA, como las de la entrada de imágenes: un aguacate superhéroe frente a un gran botón rojo de DEPLOY, con Bug, un escarabajo morado, al fondo. La adjunto en el chat y pido que la use como primer frame.

Imagen a video

Imagen → video
AntesEntrada
Imagen · origenAguacate superhéroe con capa roja frente a un gran botón rojo de DEPLOY; detrás, Bug, un escarabajo morado

PromptVideo vertical 9:16, duración de 6 a 8 segundos, estilo animación 3D infantil cinematográfica, colorida y adorable. Anima la imagen manteniendo exactamente el diseño, colores y apariencia de los personajes y del escenario. El aguacate superhéroe, relacionado con TI, debe acercar lentamente el dedo al gran botón rojo de DEPLOY y presionarlo al final. Su capa se mueve suavemente y las luces del laboratorio parpadean. Detrás, Bug, el escarabajo morado elegante, levanta un poco la cabeza y sonríe de forma traviesa. Justo al activarse el botón, la iluminación cambia a rojo de alerta y el aguacate gira ligeramente la mirada hacia Bug con sorpresa. Movimiento fluido, cinematográfico y dramático, estilo animación 3D infantil, sin nuevos personajes, sin deformaciones, sin cambios de vestuario ni texto extra.

Después↓ 3 modelosmisma imagen, mismo prompt
Google Veo 3.1 Fast
Google Veo 3.1 Fast · 1 min 40 s · ≈ $1.20–3.20 · con audio
La imagen de entrada es el primer frame para los tres.

Este modo suele dar resultados más consistentes que el texto a video, porque el encuadre y el estilo ya vienen fijados por una imagen que aprobaste antes.

Ficha de evaluación de la prueba 2 (imagen a video, el aguacate pulsa DEPLOY): siete criterios del 1 al 5. Total: Runway 29, xAI 28 y Google Veo 26 de 35.
Mi valoración de la prueba 2: Runway es el que mejor siguió la descripción; xAI queda en un punto medio.
¿Y el video a video?

Lo dejé fuera a propósito. Evaluar bien el video a video es un tema mucho más amplio: entran en juego la referencia de identidad y la consistencia de personajes (identity reference / character consistency), la transferencia de movimiento (motion transfer), la estimación y el retargeting de poses (pose estimation / pose retargeting), la segmentación y las máscaras de video (video segmentation / masking) y la consistencia temporal (temporal consistency), entre otras cosas. Cada una merece su propia prueba.

Para practicar conviene empezar como aquí, generando desde cero, o usar el video a video solo para ediciones acotadas, como cambiar el estilo de un clip que ya te gusta.

Qué me pareció cada proveedor

Google Veo 3.1 Fast

Fue el más parejo de los tres. Con los gatos ganó, aunque no por mucho: se parecen a lo que describí, más o menos un 70 %, y la gota de salsa del final casi no se aprecia. Con el aguacate quedó último: la imagen se ve muy bien, pero fue el que más se alejó de la acción que le pedí. Tardó entre uno y dos minutos por clip y es el más caro, pero entrega el video con audio sin pedir nada extra.

Si quieres gastar menos mientras ajustas prompts, Google también ofrece Veo 3.1 Lite a USD $0.05/s en 720p y $0.08/s en 1080p. Si aparece en tu action=list, puedes pedirlo con google/veo-3.1-lite-generate-preview.

Runway Gen-4.5

Es el que mejor entiende lo que le describes. Con el aguacate ganó sin discusión: fue el que mejor convirtió el prompt en escena. Con los gatos, los movimientos y el parecido estuvieron bien, pero la salsa sale como si el gato la vomitara sobre el tazón, en vez de verterla del tazón a la olla. Seguramente se corrige en una segunda iteración, pero la idea era mostrar el primer intento. Sus puntos débiles: los clips llegan sin audio y fue el más lento, con más de dos minutos por video.

Gen-4.5 cuesta 12 créditos por segundo y la API cobra cada crédito a USD $0.01: un clip de 10 segundos sale en unos USD $1.20.

xAI Grok Imagine Video

El más rápido y el más barato por mucho: entre 30 y 40 segundos y unos USD $0.40 por clip. En las dos pruebas quedó en un punto medio. Con los gatos el parecido con la descripción es bajo, como un 60 de 100, la gota de salsa no luce y la pala que mueve el espagueti se mueve sola, sin que el gato la toque. Con el aguacate conservó bien la imagen y cumplió la acción a medias. Para iterar un prompt antes de gastar en otro modelo, es el que usaría primero.

xAI también tiene grok-imagine-video-1.5, que solo hace imagen a video pero acepta clips de 1 a 15 segundos. Revisa en action=list cuál de los dos aparece en tu instalación.

Del video a la publicación

Con esto ya puedes pedir un video desde el chat, saber qué modelo lo va a generar y darle seguimiento mientras se procesa.

Después de generar una imagen y animarla, el siguiente paso será tomar el archivo producido, revisar una vista previa y publicarlo con la integración de Upload-Post que ya configuramos en los artículos anteriores.

Fuentes

Jose Tejero

Comentarios

Deja un comentario

Los comentarios se publican tras moderación. Tu email no se publica.

Sé la primera persona en comentar.