PTENES
Canal motivacional · automatización local · costo cero

Un tema se convierte en un video listo

Historia original, narración por escena, ilustraciones stick-figure consistentes y un MP4 16:9 montado con FFmpeg. Sin pagar por un generador de imágenes ni de videos.

Ilustración pintada a mano de un stick figure con bufanda ocre que sube una colina sobre papel texturizado
Qué es

La fábrica de videos del canal "Productive Peter", solo que tuya y gratis

Formato sencillo y repetible: una historia motivacional, una voz, ilustraciones que cambian a medida que avanza la narración. videomotival automatiza todo el formato, desde la idea hasta el MP4, con todo funcionando en tu máquina.

✍️ Escribe la historia

Un LLM (OpenRouter, Groq u Ollama local) escribe una historia original con un arco de seis movimientos y la divide en escenas: narración, descripción visual y prompt de imagen.

🎙️ Narra escena por escena

Cada escena se convierte en un MP3 separado (inemavox, voz clonada rachel). La duración del audio determina cuánto tiempo permanece la imagen en pantalla: sin Whisper ni timestamps.

🖼️ Ilustra y monta

flux2-klein en la GPU local genera una ilustración 16:9 por escena, con el mismo estilo y el mismo personaje. FFmpeg aplica un zoom lento, incorpora el título y concatena el video final.

Cómo funciona

Siete etapas, un comando

El pipeline es determinista y se puede retomar: cada etapa guarda sus archivos en la carpeta de la ejecución y omite lo que ya existe. Puedes parar para revisar el guion antes de usar la GPU o ejecutar todo de una vez.

Tema→ Historia + escenas→ Voz por escena→ ffprobe mide→ Ilustraciones→ FFmpeg escenas→ MP4 final

Tres formas de empezar

Interfaz web local (revisión visual de las escenas, regenerar una ilustración, rehacer la voz), CLI por etapa y una skill de Claude Code que orquesta todo a partir de "haz un video de 90 s sobre X".

Estilo fijado en el código

El pipeline agrega el estilo visual, la biblia del personaje y el bloque "sin texto" a cada prompt; no lo hace el modelo. Solo la escena 1 recibe un título, que se graba con FFmpeg con el texto exacto.

Estructura de una ejecución

~/projetos/output/videomotival/<run>/
├── final.mp4
├── manifest.json
└── work/
    ├── story.md · transcript.md · scenes.json
    ├── audio/001.mp3 …
    ├── images/001.png …
    └── video/001.mp4 …
Requisitos previos

Qué debe estar en línea

Todo local. Ninguna clave llega al repositorio: las claves de LLM se leen en tiempo de ejecución desde los archivos secretos de la máquina.

FFmpeg + Python 3.12

ffmpeg/ffprobe para medir, renderizar y concatenar; Pillow para el título; FastAPI solo para la interfaz web.

pip install -r requirements.txt
python3 -m videomotival check

inemavox (voz)

Daemon de TTS en localhost:8010. Predeterminado: engine chatterbox con la voz clonada rachel. Para pruebas rápidas sin GPU, engine edge.

# voz de prueba, sin GPU
--engine edge --voice pt-BR-FranciscaNeural

inemaimg (imágenes)

Servidor en localhost:8000 con el modelo flux2-klein cargado. Genera imágenes de 1920x1080 en unos 12 segundos por escena.

# proveedores de historias, en orden
STORY_PROVIDER=auto  # openrouter → groq → ollama
Guía de uso · paso a paso

Del tema al MP4

El mismo flujo del tutorial original, etapa por etapa, para que revises lo que quieras durante el proceso. Al final, el paso único que lo hace todo.

1

Revisa el entorno

Verifica ffmpeg, los dos servicios locales y qué proveedor de historias tiene una clave disponible. Nunca imprime secretos.

cd ~/projetos/videomotival
python3 -m videomotival check  # OK ffmpeg · historia: auto · inemavox ok · inemaimg ok
2

Crea la ejecución y genera el guion

Escribe la historia, la divide en escenas y se detiene en "revisión". Los archivos quedan en work/ dentro de la carpeta de la ejecución.

python3 -m videomotival create --topic "Pare de esperar a motivação" --duration 75
# → ~/projetos/output/videomotival/<run-id>/work/{story.md, transcript.md, scenes.json}
3

Revisa las escenas (opcional)

Edita la narración o la descripción visual directamente en scenes.json. O recompose recompone los prompts e invalida solo las escenas modificadas.

python3 -m videomotival recompose --run <run-id>
4

Genera la narración de cada escena

Un MP3 por escena (001.mp3, 002.mp3…), medido con ffprobe. El ritmo real en palabras por minuto queda registrado y se usa para orientar al guionista en las próximas ejecuciones.

python3 -m videomotival tts --run <run-id>  # [probe] 5 narraciones: 58.3s medidos para un objetivo de 60s
5

Genera las ilustraciones

Una imagen 16:9 por escena, la misma seed y la misma biblia del personaje en cada prompt. ¿Una escena salió mal? Regénérala solo a ella con otra seed.

python3 -m videomotival images --run <run-id>
python3 -m videomotival regen-image --run <run-id> --scene 3  # nueva seed solo para la escena 3
6

Renderiza el video

Cada par de imagen + audio se convierte en un clip con zoom lento alternado; la escena 1 recibe el título; los clips se concatenan y se verifica el resultado (1920x1080, audio, duración).

python3 -m videomotival render --run <run-id> [--music trilha.mp3]
# → ~/projetos/output/videomotival/<run-id>/final.mp4 + manifest.json
7

O haz todo de una vez

Una vez ajustado el formato, solo cambia el tema. Este comando ejecuta las siete etapas sin detenerse.

python3 -m videomotival create --topic "Por que o progresso pequeno vence a motivação grande" --duration 90 --auto
8

Interfaz web o Claude Code

La web muestra las etapas, las escenas con audio e imagen, permite editar el guion y volver a generar. La skill de Claude Code hace lo mismo mediante conversación.

./run.sh web   # → http://127.0.0.1:8030
# en Claude Code, dentro del proyecto:
"Use a skill motivational-story-video: vídeo de 90 s sobre 'Como parar de se comparar'"
Ejemplos

Una ejecución real de 60 segundos

Tema "Por qué el progreso pequeño vence a la motivación grande": 5 escenas, voz rachel, 58 s medidos, producido de principio a fin en unos cuatro minutos.

Primer cuadro del video con el título El Hábito Minúsculo Vence sobre la ilustración
Escena 1: el título se graba con FFmpeg, con el texto exacto, en un recuadro color papel sobre la ilustración.
Stick figure con bufanda ocre sosteniendo un cuaderno como si fuera a romperlo
Escena 3: el mismo personaje (bufanda ocre, cuaderno) en el momento de duda de la historia.
Stick figure caminando con el cuaderno bajo el brazo
Escena 5: el desenlace. Ninguna escena aparte de la primera contiene texto.
Interfaz web de videomotival que muestra el video final, la biblia del personaje y la escena 1 editable
Interfaz web: etapas, video final, escenas editables con audio y botones para crear una nueva ilustración o rehacer la voz.
Roadmap

Dónde está y adónde va

La arquitectura es la misma para cualquier nicho: historia de negocios, cuento infantil, hecho histórico. Cambia el guionista y el estilo visual.

v1.0
Pipeline completo, web, CLI y skillTema → MP4 verificado. Proveedores: OpenRouter/Groq/Ollama para la historia, inemavox para la voz, flux2-klein para la imagen. Fish Audio implementado como alternativa.
siguiente
Consistencia del personaje mediante referenciaHoy se usa prompt + seed fija. Usa la escena 1 como imagen de referencia cuando el servidor de imágenes admita edición guiada.
después
Otros formatos y publicaciónVersión 9:16 para Shorts, música y efectos con inemavox, y envío directo al canal.