← Blog

Construye un pipeline creativo de IA con GLM-5 + WaveSpeed

Construye un pipeline creativo de IA completo: GLM-5 escribe los prompts, WaveSpeed genera imágenes y video, todo orquestado mediante API.

10 min read
Construye un pipeline creativo de IA con GLM-5 + WaveSpeed

Hola, soy Dora. Seguía saltando entre herramientas solo para sacar un clip de producto corto. El brief en un lugar. Las imágenes en otro. El video en algún otro sitio. Notas dispersas. Nada era difícil, pero era… ruidoso. Así que probé algo más sencillo: un camino estable de extremo a extremo que me lleva de un brief simple a un clip terminado sin el giro constante. Lo llamo un pipeline creativo con GLM-5. Lo probé durante dos semanas, con tres conceptos cortos y algunos fragmentos dispersos de trabajo con clientes. No es espectacular. Pero sí hizo que el trabajo se sintiera más liviano.

Qué estamos construyendo (visión general de extremo a extremo)

Quería un camino desde un brief corto hasta un video de 6 a 10 segundos, con espacio para pequeñas iteraciones pero sin búsquedas de funciones. La forma es así:

  • Escribo un brief simple (dos o tres oraciones). Tono, tema, cualquier restricción.
  • GLM-5 lo convierte en descripciones de escena claras.
  • FLUX o Seedream genera imágenes fijas usando WaveSpeed para mantener la inferencia predecible.
  • WAN 2.5 o Seedance construye el movimiento a partir de las imágenes aprobadas.
  • GLM-5 revisa los resultados y sugiere ediciones precisas, no reescrituras.

Algunas reglas que me impuse:

  • Mantener los prompts cortos y estructurados. Uso los mismos campos cada vez: Sujeto, Escenario, Estilo, Notas de movimiento, Restricciones.
  • Lotes pequeños. Máximo tres conceptos por ejecución. Eso mantuvo mi mente clara y facilitó la comparación.
  • Congelar semillas cuando me gusta algo. Las variaciones después, no durante.

En la práctica, el pipeline redujo los clics y las dudas más de lo que redujo el tiempo bruto. En mi tercera ejecución, ahorré unos 15 minutos en un pase típico de concepto a clip de 90 minutos. La mayor ganancia fue mental: menos ramas, menos desvíos del tipo “¿y si pruebo X?”. Eso era lo que buscaba.

Paso 1 — GLM-5 genera descripciones de escena a partir del brief

Empecé con un brief mínimo: “Luz cálida de mañana sobre una taza de cerámica junto a una ventana. Vapor suave. Estilo minimalista, ambiente tranquilo. Para una historia social en 9:16. Colores de marca: acento en verde azulado apagado.”

GLM-5 sobresale en la escritura creativa con versatilidad estilística, según la documentación oficial de Zhipu AI. Lo que necesitaba de GLM-5 no era ingenio. Quería estructura: tarjetas de escena consistentes que un renderizador pudiera seguir. Este es el formato que pedí y al que me mantuve:

  • Título de escena
  • Tipo de plano (por ejemplo, plano medio corto)
  • Composición (regla de tercios, notas sobre espacio negativo)
  • Iluminación
  • Paleta
  • Texturas/materiales
  • Notas de movimiento (si las hay)
  • Restricciones estrictas (sin rostros, sin texto en el encuadre, dimensiones de salida)

El primer pase resultó prolijo. GLM-5 explicó demasiado el estado de ánimo. Lo ajusté: “Mantén cada campo en una sola oración. Usa sustantivos específicos y términos de cámara.” Eso solucionó la mayoría. Para la segunda ejecución, obtenía tarjetas precisas que se mapeaban limpiamente en prompts de imagen.

Pequeña ganancia: le pedí a GLM-5 que agregara elementos “no permitidos” con los que me había tropezado antes (manos extra, logos dispersos, reflejos con rostros). Eso redujo la limpieza posterior. No fue perfecto, pero hubo menos sorpresas.

Esta parte no ahorró tiempo al principio: ahorró fatiga de juicio después. No estaba eligiendo entre cinco estilos de prompt diferentes. Tenía uno solo.

Paso 2 — FLUX / Seedream genera imágenes a través de WaveSpeed

Ejecuté tanto FLUX como Seedream porque tienen temperamentos distintos. FLUX me dio imágenes fijas limpias y orientadas al diseño. Seedream divagaba un poco más, pero a veces encontraba texturas hermosas en cerámica y madera. Usé ambos a través de WaveSpeed para poder estandarizar pasos, semillas y programadores sin microgestionar docenas de parámetros.

Notas de campo:

  • La reproducibilidad de WaveSpeed importaba. Cuando me gustaba un fotograma, congelaba la semilla y solo ajustaba la guía y los pasos. Eso hacía reproducibles los “accidentes afortunados”.
  • Establecí el formato en la salida objetivo (9:16) desde el principio. Recortar después siempre hacía que el vapor quedara raro.
  • Mantuve los prompts fieles a lo que venía de GLM-5. Sin florituras poéticas. Estéril, pero redujo los bordes extraños.

Fricción: manos y ventanas. Los reflejos adoran inventar personas. Agregué “sin figuras, sin siluetas, sin reflejos humanos” a las restricciones y apliqué una guía negativa ligeramente más alta. Eso recortó el ruido.

El tiempo de ejecución por imagen fija variaba entre rápido y “recarga de café” dependiendo de mi máquina. Generé entre 8 y 12 candidatos por escena, luego recorté duramente a 2. Si no podía elegir rápidamente, significaba que el prompt no era lo suficientemente preciso. De vuelta a GLM-5 con una pequeña edición, en lugar de pescar imágenes.

Paso 3 — WAN 2.5 / Seedance genera video a partir de imágenes

Esta parte es donde normalmente pierdo el hilo: demasiadas opciones de movimiento. Me limité a dos modos: paralaje suave y movimiento de cámara gentil. WAN 2.5 manejó el paralaje de forma convincente. Seedance funcionó mejor con micromovimientos como el vapor y los cambios de enfoque suave.

Mi lista de verificación para el traspaso de imagen fija a movimiento:

  • Exportar PNG limpio en la resolución objetivo (1080x1920 para pruebas).
  • Proporcionar una nota de movimiento precisa (por ejemplo, “dolly-in de 2–3°, mantener el asa de la taza en el tercio, deriva de vapor apta para bucle”).
  • Limitar la duración a 6–8 segundos. Los clips largos se volvían borrosos y llamaban la atención sobre los artefactos del modelo.

Sorpresas:

  • Parpadeo de textura. Los esmaltes granulados lucen genial como imágenes fijas y se vuelven ruidosos en movimiento. Reduje la intensidad de la textura en el paso 2 cuando sabía que iba a animar.
  • Deformación de bordes en las esquinas. Las composiciones centradas aguantaron mejor. Las tazas fuera de eje se doblaban como goma.

Las mejores ejecuciones se sentían invisibles. Cuando funcionaba, dejaba de pensar en el modelo y simplemente observaba cómo respiraba la luz. Cuando no funcionaba, se desmoronaba rápido, generalmente porque pedí demasiado movimiento.

Paso 4 — GLM-5 revisa los resultados y sugiere iteraciones

Traje a GLM-5 de vuelta como un segundo par de ojos tranquilo. Le pedí que:

  • Comparara los clips finales con el brief original.
  • Señalara discrepancias (paleta, estado de ánimo, restricciones).
  • Propusiera un pequeño cambio por clip, no cinco.

Esto fue más útil de lo que esperaba. GLM-5 detectaba consistentemente la deriva de color. En una ejecución señaló que el acento en verde azulado se sentía frío contra la luz cálida: un sutil cambio de tono en el fondo lo solucionó.

Pero también se extralimitó a veces, sugiriendo nuevos objetos o superposiciones de texto. Le puse freno estableciendo una regla: “Ningún sustantivo nuevo. Ajustar solo iluminación, color o intensidad del movimiento.” Eso mantuvo las iteraciones bien fundamentadas.

El bucle aquí fue rápido: una pasada de notas, una pasada de correcciones. Si todavía no estaba satisfecha, guardaba el concepto en lugar de insistir. Esa contención evitó que el pipeline se inflara.

Código completo (Python, WaveSpeed SDK)

Mantuve la orquestación simple. Un script de Python une los pasos con algunos pequeños ayudantes:

  • Una clase Brief que almacena Sujeto, Escenario, Estilo, Movimiento, Restricciones.
  • Un ayudante glm5() que formatea el prompt y analiza las tarjetas de escena en diccionarios.
  • Un ayudante images() que llama a WaveSpeed con FLUX o Seedream, pasando semillas, pasos y prompts negativos.
  • Un ayudante video() que entrega las imágenes fijas a WAN 2.5 o Seedance con notas de movimiento.
  • Un ayudante review() que devuelve miniaturas o gifs cortos a GLM-5 para notas de alineación.

Dos detalles lo mantuvieron estable:

  • Escribí los resultados en disco con rutas deterministas: run_id/scene_01/flux_seed1234.png. Eso facilitó el retroceso.
  • Registré los parámetros junto a los resultados en un pequeño archivo YAML. Cuando un clip lucía bien, sabía exactamente por qué.

No incluyo el código aquí para evitar convertir esto en un pegado masivo. La estructura anterior es suficiente para recrearlo con tu propia pila. Si ya usas WaveSpeed, se trata principalmente de elegir dónde congelar la aleatoriedad y dónde permitir la deriva.

Desglose de costos para 10 activos

Los costos varían mucho según el proveedor y la configuración del modelo, así que toma esto como un rango práctico de mis pruebas, no como una promesa. Diez activos aquí significa 10 clips verticales cortos (una escena cada uno), con 8 a 12 candidatos de imagen fija por escena.

  • Prompts y revisión con GLM-5: ligero. El precio de la API de GLM-5 es de $1.00/M de entrada y $3.20/M de salida, significativamente más barato que Claude Opus 4.6 ($5/M de entrada, $25/M de salida). En mis ejecuciones, cada activo usó unas 2–3 interacciones de brief más una revisión. Si estás en precios por uso, esto suele estar en los pocos dólares para 10 activos.
  • Generación de imágenes: el principal factor variable. Con pasos medios y 8 a 12 candidatos por escena, vi que los costos se ubicaban en los dígitos medios a altos por activo en planes de pago por inferencia. Menos si procesas en tu propia GPU.
  • Generación de video: también variable. Los clips de paralaje simple cuestan menos; el movimiento con física cuesta más. En mis notas, esto resultó similar a las imágenes fijas por activo, a veces un poco más alto.

Total aproximado por 10 activos, modelos mixtos, configuración conservadora: bajas centenas si es completamente en la nube con variación generosa, notablemente menos si auto-alojas los pasos de imagen y solo pagas por el movimiento. Si eres estricto, 6 candidatos en lugar de 12, una pasada de movimiento, puedes recortar eso en un tercio. Si persigues variaciones, se duplica rápido. Las semillas y las reglas de iteración pequeña ayudan a contener la factura.

Extensiones: agregar LoRAs, escalado y procesamiento por lotes

Una vez que la base se sintió estable, probé algunas extensiones.

  • LoRAs para textura de marca: entrené un pequeño paquete de acento para esmalte de cerámica y papel de fondo. Ayudó a mantener los materiales consistentes entre escenas. El truco fue un peso modesto. Los LoRAs con mucho peso arrastraban todo hacia el mismo aspecto.
  • Escalado suave: solo escalo después del movimiento, no antes. El pre-escalado hacía los artefactos más notorios. El post-escalado con un modelo ligero que preserva los detalles mantuvo los bordes limpios sin inventar poros en una taza.
  • Procesamiento por lotes: agregué una cola donde cada concepto avanza como una unidad. Sin mezclar pasos de briefs diferentes. Suena estricto, pero me salvó de la espiral del “solo un intento más”.

Algunas cosas que no conservé:

  • Subtitulado automático dentro del pipeline. Tiraba los visuales hacia “contenido” en lugar de imágenes-que-se-mueven. Los subtítulos los hago fuera, más cerca de la publicación.
  • Mezcla agresiva de estilos. Lucía bien en una cuadrícula y se veía cansado en movimiento.

Para quién encaja: creadores que prefieren caminos predecibles y ganancias pequeñas y constantes. A quién no entusiasmará: personas que buscan espectáculo o arte de alta varianza. Está bien.

Me propuse hacer el pipeline creativo con GLM-5 más silencioso, no más inteligente. En los buenos días, se siente así: una taza, algo de luz, y menos pestañas abiertas de lo habitual. Con eso me conformo.