História original, narração por cena, ilustrações stick-figure consistentes e um MP4 16:9 montado pelo FFmpeg. Sem pagar gerador de imagem nem de vídeo.

Formato simples e repetível: uma história motivacional, uma voz, ilustrações que trocam conforme a narração avança. O videomotival automatiza o formato inteiro, da ideia ao MP4, com tudo rodando na sua máquina.
Um LLM (OpenRouter, Groq ou Ollama local) escreve uma história original com arco em seis movimentos e já a divide em cenas: narração, descrição visual e prompt de imagem.
Cada cena vira um MP3 separado (inemavox, voz clonada rachel). A duração do áudio comanda o tempo da imagem na tela — sem Whisper, sem timestamps.
flux2-klein na GPU local gera uma ilustração 16:9 por cena no mesmo estilo e com o mesmo personagem. O FFmpeg aplica zoom lento, grava o título e concatena o vídeo final.
O pipeline é determinístico e retomável: cada etapa grava seus arquivos na pasta da corrida e pula o que já existe. Você pode parar para revisar o roteiro antes de gastar GPU, ou rodar tudo de uma vez.
Interface web local (revisão visual das cenas, regenerar ilustração, refazer voz), CLI por etapa, e uma skill do Claude Code que orquestra tudo a partir de "faz um vídeo de 90 s sobre X".
Estilo visual, bíblia do personagem e o bloco "sem texto" são anexados a todo prompt pelo pipeline, não pelo modelo. Só a cena 1 recebe título, gravado pelo FFmpeg com o texto exato.
~/projetos/output/videomotival/<run>/
├── final.mp4
├── manifest.json
└── work/
├── story.md · transcript.md · scenes.json
├── audio/001.mp3 …
├── images/001.png …
└── video/001.mp4 …Tudo local. Nenhuma chave vai para o repositório: as chaves de LLM são lidas em runtime dos arquivos de segredo da máquina.
ffmpeg/ffprobe para medir, renderizar e concatenar; Pillow para o título; FastAPI só para a interface web.
pip install -r requirements.txt python3 -m videomotival check
Daemon de TTS em localhost:8010. Padrão: engine chatterbox com a voz clonada rachel. Para testes rápidos sem GPU, engine edge.
# voz de teste, sem GPU
--engine edge --voice pt-BR-FranciscaNeuralServidor em localhost:8000 com o modelo flux2-klein carregado. Gera 1920x1080 em cerca de 12 segundos por cena.
# provedores de história, em ordem STORY_PROVIDER=auto # openrouter → groq → ollama
O mesmo fluxo do tutorial original, etapa por etapa, para você revisar o que quiser no caminho. No fim, o passo único que faz tudo.
Verifica ffmpeg, os dois serviços locais e qual provedor de história tem chave disponível. Nunca imprime segredos.
cd ~/projetos/videomotival python3 -m videomotival check # OK ffmpeg · história: auto · inemavox ok · inemaimg ok
Escreve a história, divide em cenas e para em "revisão". Os arquivos ficam em work/ dentro da pasta da corrida.
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}
Edite narração ou descrição visual direto no scenes.json. O recompose recompõe os prompts e invalida só as cenas alteradas.
python3 -m videomotival recompose --run <run-id>
Um MP3 por cena (001.mp3, 002.mp3…), medido pelo ffprobe. O ritmo real em palavras por minuto é gravado e realimenta o roteirista nas próximas corridas.
python3 -m videomotival tts --run <run-id> # [probe] 5 narrações: 58.3s medidos para alvo de 60s
Uma imagem 16:9 por cena, mesma seed e mesma bíblia do personagem em todo prompt. Uma cena saiu ruim? Regenere só ela com outra seed.
python3 -m videomotival images --run <run-id> python3 -m videomotival regen-image --run <run-id> --scene 3 # nova seed só para a cena 3
Cada par imagem + áudio vira um clipe com zoom lento alternado; a cena 1 recebe o título; os clipes são concatenados e o resultado é verificado (1920x1080, áudio, duração).
python3 -m videomotival render --run <run-id> [--music trilha.mp3] # → ~/projetos/output/videomotival/<run-id>/final.mp4 + manifest.json
Depois que o formato está afinado, só o tema muda. Este comando roda as sete etapas sem parar.
python3 -m videomotival create --topic "Por que o progresso pequeno vence a motivação grande" --duration 90 --auto
A web mostra as etapas, as cenas com áudio e imagem, deixa editar o roteiro e regenerar. A skill do Claude Code faz o mesmo por conversa.
./run.sh web # → http://127.0.0.1:8030 # no Claude Code, dentro do projeto: "Use a skill motivational-story-video: vídeo de 90 s sobre 'Como parar de se comparar'"
Tema "Por que o progresso pequeno vence a motivação grande": 5 cenas, voz rachel, 58 s medidos, produzido de ponta a ponta em cerca de quatro minutos.




A arquitetura é a mesma para qualquer nicho: história de negócios, conto infantil, fato histórico. Muda o roteirista e o estilo visual.