Canal de contenido infantil
Imágenes baratas antes que video caro
Diez episodios producidos por una sola persona, con el costo controlado por arquitectura y no por disciplina.
Stack
- Python
- Claude
- JSON schema validation
- ElevenLabs
- pytest
- 7
- etapas idempotentes y resumibles
- Stage 5
- compuerta humana, sin flag para saltearla
- 20 → 37
- bloques escritos se vuelven planos, que es por qué esa capa necesita criterio
- 26 · 15
- tests, 15 de ellos negativos
El problema
Un canal de contenido infantil necesitaba producir una serie animada de diez episodios con una sola persona operando.
La generación de imagen y video quema créditos en cada paso, y una decisión mala se propaga: aprobás una hoja de personaje equivocada y la pagás en cada plano de cada episodio.
El riesgo real de un pipeline generativo no es la calidad. Es gastar plata de verdad generando video a partir de un cuadro que nadie miró.
El enfoque
Siete etapas idempotentes y resumibles: lint, shot sheet, voz, keyframes, aprobación, animación y ensamblado. Cada etapa lee el manifiesto del episodio antes de actuar y hace solo lo que falta, así que reejecutar cualquier etapa siempre es seguro.
La etapa cinco es una compuerta humana dura. La animación no arranca con un solo plano sin aprobar, y no hay flag para saltearla. Las imágenes baratas se revisan antes de generar el video caro. Ese orden es toda la arquitectura.
Todas las etapas de generación tienen dry-run: imprimen exactamente lo que se le mandaría al modelo, sin gastar nada.
La decisión que vale copiar
Partir un bloque de guión en planos es criterio, no regla: el episodio uno tiene veinte bloques escritos y treinta y siete planos.
Entonces un LLM resuelve esa capa, y todo lo que viene después valida su salida de forma determinista contra un schema JSON.
Ese es el patrón que llevo al trabajo de cliente: un modelo donde hace falta criterio de verdad, validación determinista en todo el resto. No un modelo al que se le pide ser confiable en cosas que un schema resuelve mejor.
Qué encontró la validación
El lint corre limpio en los diez guiones, cubierto por veintiséis tests de los cuales quince son negativos: verifican que el linter rechace lo que tiene que rechazar.
El shot sheet del episodio uno es la referencia golden y el comando se niega a pisarlo. Regenerarlo reprodujo treinta y siete planos contra los treinta y siete originales.
La capa de segmentación tiene tres backends intercambiables, así que la vía cara es opcional.
La documentación del propio proyecto reporta un defecto conocido en lugar de esconderlo: los guiones declaran más palabras habladas de las que realmente corren, así que la duración real de cada episodio queda por debajo de lo que el formato asumía. El linter lo levanta como warning en los diez y no bloquea el pipeline. Un sistema que esconde sus defectos conocidos es peor que uno que los reporta.
El resultado
Diez episodios producidos con el pipeline.
La arquitectura es agnóstica al formato, y ya se forkeó para una segunda tira en un género completamente distinto — imagen real en vez de animación — hoy en etapa de scoping.
Eso es lo que lo convierte en una oferta y no en un proyecto.
Lo que se puede trasladar
Poner la compuerta humana antes del paso caro, y hacer que sea imposible saltearla. Un control de costo que depende de acordarse no es un control de costo.