PROMPT · IMAGEM · VÍDEO — 100% LOCAL

Da ideia ao Reel cinematográfico
num pipeline só.

O promptprof transforma um assunto em vídeo vertical 9:16 narrado e ilustrado — usando um motor de prompts, geração de imagem local e render HTML→MP4. Sem chave de API paga, dark premium âmbar, CTA INEMA.CLUB.

1 · Prompt KairoBoost intenção → direção de arte 2 · Imagem inemaimg flux2-klein · local 3 · Vídeo HyperFrames HTML → MP4 + TTS
O que é

Um estúdio de vídeo que cabe num repositório.

Três peças encadeadas: um motor de prompts (KairoBoost), um servidor de imagem local (inemaimg) e um renderizador de vídeo determinístico (HyperFrames). Cada vídeo é um pequeno projeto: 14 cenas, narração TTS, fundo cinematográfico com movimento de câmera e a CTA do INEMA.CLUB no fim.

Como funciona

O pipeline em 3 etapas.

01

Prompt · KairoBoost

Um system prompt de “diretor de arte” transforma uma intenção curta (ex.: “cachorro na praia”) em prompt cinematográfico estruturado — lente, luz, color grading, textura.

SYSTEM-PROMPT.mdpresets.md
02

Imagem · inemaimg

Servidor FastAPI local (DGX) gera as stills 9:16 com flux2-klein em ~9s cada. Sem API paga. Uma imagem-metáfora por cena.

localhost:8000flux2-klein
03

Vídeo · HyperFrames

Compõe HTML/CSS/GSAP → MP4 com narração TTS (pf_dora), blur + Ken Burns dirigido, legendas karaokê e CTA INEMA.CLUB.

HTML → MP4TTS Kokoro
Mão na massa

Passo a passo (comandos).

Cada vídeo vive em <projeto>/video/. O timing é fonte única: a duração real do áudio alimenta áudio E animação.

# 1) projeto + fontes
npx hyperframes init video --example blank --non-interactive
node fetch-fonts.mjs                  # Sora · Inter · JetBrains Mono → assets/fonts

# 2) narração (14 faixas TTS, voz pf_dora)
bash narration.sh                     # gera assets/audio/sN.wav + durações

# 3) imagens (14 stills 9:16 via inemaimg local)
node generate-image-inemaimg.js assets/img/s1.png "<prompt cinematográfico>" flux2-klein 9:16

# 4) compor + validar
node build-index.mjs --vertical       # gera index.html (9:16)
npx hyperframes lint                  # 0 erros
npx hyperframes inspect --samples 16  # 0 problemas de layout

# 5) render
npx hyperframes render --quality high --output renders/meu-video-9x16.mp4
Mapa

Estrutura de pastas.

promptprof/
├── kairoboost/                  # motor de prompts (4 arquivos)
│   ├── SYSTEM-PROMPT.md          # o "diretor de arte"
│   ├── presets.md               # 15 presets → lente/luz/grading
│   └── vocabulario.md           # dicionário + termos por modelo
├── <projeto>-NN/                # um vídeo (ex.: claude-top12)
│   ├── plano-edicao.json         # plano (skill video-plan-editor)
│   ├── MDD-PACKAGE.md           # direção dinâmica (storyboard)
│   └── video/
│       ├── build-index.mjs       # gerador da composição
│       ├── narration.sh          # TTS das 14 cenas
│       ├── assets/{img,audio,fonts}
│       └── renders/*.mp4         # saída final
└── docs/index.html               # esta página (GitHub Pages)
Receita

Como criar um vídeo novo.

  1. Defina o assunto e o roteiro
    Gancho + N pontos + CTA. Cada cena = 1 frase curta de narração (~3–5s).
  2. Escreva a narração
    Edite narration.sh com os textos e rode — gera os WAV e mede as durações reais.
  3. Gere as imagens-metáfora
    Traduza cada ponto numa cena visual concreta (use o KairoBoost) e gere no inemaimg.
  4. Configure o build
    No build-index.mjs: array AUDIO[] (durações), LESSONS[] (títulos/subs), CAPTIONS[] e o movimento por cena.
  5. Valide e renderize
    lint 0 erros + inspect 0 problemas → render --quality high.
Feitos com o pipeline

Exemplos.

Hormozi 12 lições /hormozi-12

“13 anos em 47s” — 12 lições de negócios em rajada, cada uma com metáfora visual (relógio, foguete, alpinista).

9:16 · ~59s · 14 cenas

Pare de planejar /executar-12

Execução > plano. Provocação viral em 12 passos: do plano perfeito ao “fuja do raso”.

9:16 · ~73s · 14 cenas

Top 12 Claude Code /claude-top12

Contagem regressiva #12→#1 dos recursos do Claude Code, clímax no #1 Skills.

9:16 · ~69s · 14 cenas
Stack

Ferramentas.

CamadaFerramentaPapel
PromptkairoboostMotor “diretor de arte” — intenção → prompt cinematográfico
Imageminemaimg · flux2-kleinGeração local de stills 9:16 (FastAPI, sem API paga)
VídeoHyperFramesHTML/CSS/GSAP → MP4 (Chrome headless + FFmpeg)
VozKokoro · pf_doraNarração TTS local PT-BR
DireçãoMDD · video-plan-editorStoryboard, câmera, plano de edição validado
Dúvidas

FAQ.

Precisa de chave de API paga?
Não. Imagem (inemaimg/flux2-klein), voz (Kokoro) e render (HyperFrames) rodam local. Só os vídeos finais não vão pro git (pesados) — o resto é tudo reproduzível.
Como o áudio fica sincronizado com a animação?
Timing é fonte única: o array AUDIO[] com as durações reais (medidas via ffprobe) alimenta tanto o data-start/duration quanto os tempos dos tweens GSAP. Áudio e movimento sempre batem.
Posso usar comercialmente?
O flux2-klein é FLUX Non-Commercial. Para uso comercial troque por qwen-edit-2511 (Apache 2.0) ou ernie no inemaimg.
Dá pra fazer 16:9 (YouTube)?
Sim — o build-index.mjs roda node build-index.mjs (16:9) ou --vertical (9:16). Os overrides body.v já reenquadram tudo.
Quantas cenas por vídeo?
O padrão aqui é 14 (gancho + 12 + CTA), mas é livre: o nº de cenas = nº de itens nos arrays. 4–12 cenas de conteúdo é o range saudável pra Shorts.