Curtas de paródia
Uma comédia curta para uma audiência que conhece as pessoas nela, ou a situação: a grande noite de uma equipe contada como uma abertura de programa de ação dos anos 80, um filme de criatura de Halloween, um anúncio de TV de Natal. O grupo pode ser qualquer grupo (uma equipe de vendas, uma sala de professores, um clube de futebol de cinco, uma família) e o assunto qualquer coisa que viveram juntos. Eles acertam mais forte do que qualquer outra coisa que o kit de ferramentas produz, porque a audiência está rindo de coisas que reconhece. Esta skill é sobre como fazer um de propósito.
Construída e aprendida em três vídeos para uma equipe em novembro de 2026 (uma abertura de ação de um lançamento, sua versão
irmã de Halloween, um anúncio de Natal de Um Conto de Natal). Eles não estão em examples/ porque estrelam colegas reais.
Depois, em dois curtas públicos com elenco inventado (um trailer de terror sobre a videochamada que nunca acaba, um documentário
da natureza sobre o retorno ao escritório), cada um em 16:9 e vertical, além de uma edição de marca na própria IU de um produto.
Por que funcionam (em ordem de peso)
- Rostos reais, em movimento. A mudança de nível foi animar as fotos de perfil da equipe. Fotos paradas renderam sorrisos; as mesmas
pessoas levantando óculos de aviador ou brindando com ponche renderam risadas. O reconhecimento é o motor. Veja
people.md. - Piadas internas reais. Frases encontradas nos próprios canais da equipe superam qualquer piada escrita: um bordão de um colega, a
funcionalidade que alguém insiste em incluir, a coisa que alguém vem dizendo há tempos. A passagem de contexto vale mais
do que o polimento do roteiro. Veja
context.md. - Um gênero cujos batidas se encaixam no evento. A audiência já conhece a forma (três regras que são quebradas;
fantasmas do passado, presente e futuro; a equipe se reunindo), então o vídeo apenas preenche as batidas. Quanto mais apertado o
mapeamento, menos o roteiro precisa explicar. Veja
genres.md. - Permissão para exagerar. Estes não são notas de lançamento. Quando a pessoa que pede diz que os fatos não importam, números podem ser inflados e cronogramas inventados. Pergunte uma vez, cedo; depois pare de verificar piadas.
- Afeição é o limite. Todos são heróis de uma piada ou estão incluídos, nunca vítimas. Isso mantém o tom caloroso, e também é a regra de segurança (abaixo).
- Uma aparência e som por gênero. Suas próprias fontes, sobreposição e gradação (rastreamento VHS, grão de filme e letterbox, luz de velas), uma música ou trilha sonora original, alguns efeitos sonoros, no máximo uma linha de narrador em um anúncio. Nada deve parecer um modelo do kit de ferramentas.
- Curto. Um anúncio tem 60-90 s. Uma "abertura de programa" pode durar 2 min. Após ~2:30 o meio perde força; corte aí primeiro.
- Escolher cada clipe. Cerca de um em três clipes LTX corta para um estranho. Um rosto errado quebra o feitiço, então faça uma folha de contato de cada clipe e regere.
Dois tipos de elenco
- Pessoas reais (as próprias fotos do grupo): as risadas mais fortes, para uma audiência que as conhece. Interno por padrão; público apenas com a permissão por escrito de cada pessoa.
- Um elenco inventado (retratos FLUX ou personagens não humanos): para um vídeo público, ou um tópico compartilhado onde a
audiência reconhece a situação em vez das pessoas (videochamadas, a cozinha do escritório). O reconhecimento move-se
dos rostos para a situação, então a situação tem que ser universal e específica: "você está mudo", a planilha
com 412 guias, a jaqueta na mesa quente. Veja
people.mdpasso 0. - Elenco uma vez, use em todos os lugares. Gere o elenco inventado uma vez em uma pasta compartilhada e dê a cada vídeo seus próprios figurinos e clipes dos mesmos rostos. Dois vídeos com as mesmas quatro pessoas parecem uma série, e uma referência entre eles (a última linha do vídeo 2 é a primeira do vídeo 1) é uma risada grátis.
Regras que não são opcionais
- Totalmente carinhoso. Ninguém no grupo é o alvo de uma piada que não gostaria. Sem desempenho, saúde, vida pessoal ou qualquer coisa dita em confiança. Em caso de dúvida, corte a linha.
- Pessoas reais permanecem internas. A semelhança delas pertence a elas. Faça para o grupo, compartilhe apenas com link e peça antes de publicar em qualquer lugar público. Qualquer pessoa que pedir para ser excluída é excluída.
- Nada sensível na tela. Sem nomes de clientes ou parceiros, sem nomes de host, sem valores secretos (um segredo é uma
barra borrada ou
••••), sem URLs internas. Renomeie sistemas reais ("RELAY ONE"). - Palavras e música originais. Empreste a forma de um gênero, nunca os personagens, nomes, falas, designs ou tema
musical de uma obra. Uma história de domínio público (Dickens, Grimm, Shakespeare) pode ser usada diretamente; um filme ou programa de TV não pode, renomeado
ou não. Escreva letras originais para qualquer música (skill
acestep). - Cite apenas onde a audiência poderia ter lido. Canais públicos da equipe, sim. DMs, não. Veja
context.md.
Antes de começar
- Endpoints GPU (Modal, uma vez):
uv sync --extra modal && uv run modal setup, depoisuv run tools/modal_setup.py flux2 image_edit ltx2 qwen3_tts. LTX é restrito: precisa de um segredo Modal com seu token Hugging Face (docs/modal-setup.md). Música: umaACEMUSIC_API_KEYgratuita em.env(skillacestep). - O projeto é um projeto Remotion simples em
projects/<nome>/; nenhum modelo serve, já que nada aqui deve se parecer com um. Copiepackage.jsoneremotion.config.tsde qualquer template (a configuração faz com que as importações delib/resolvam), mantenha uma composição por corte emsrc/Root.tsx, e coloque os clipes do elenco empublic/people/. Uma cena é uma<Sequence>em quadros absolutos com a pessoa nela:
import { LivingPhoto } from '../../../lib/components/LivingPhoto';
// reproduz o clipe uma vez e mantém seu último quadro bom; fit desacelera um clipe ligeiramente curto para preencher a cena
<Sequence from={120} durationInFrames={180}>
<LivingPhoto src="people/sam-xmas.mp4" hold={140} fit={180} pos="center 30%" style={{ inset: 0 }} />
</Sequence>
Fluxo de trabalho
| Etapa | O quê | Leia |
|---|---|---|
| 1. Briefing | Evento, audiência, elenco (3-6 pessoas), gênero, duração, "os fatos importam?" | este arquivo |
| 2. Contexto | Minerar os canais e ferramentas do grupo; escrever public/bible.md | context.md |
| 3. Mapear | Batidas do gênero no evento; uma batida por pessoa; escolher falas da bíblia | genres.md |
| 4. Elenco | Fotos ou um elenco inventado, figurino com image_edit, animar com LTX, folha de contato | people.md |
| 5. Mundo | Fundos FLUX (sem texto), Efeitos Sonoros, música ou uma canção com letras originais | acestep, elevenlabs |
| 6. Construir | Cenas Remotion em quadros absolutos; LivingPhoto para o elenco; sobreposição de gênero | people.md, video-design |
| 7. Verificar | Folha de contato da renderização, qc.py --render --fix, sync_check.py --cues, então as regras de segurança novamente | video-design/critique.md, CLAUDE.md |
| 8. Cortes | Vertical, e uma edição de marca se desejado: novos layouts sobre os mesmos assets | formats.md |
Cenas, não planos. Estes são editados como anúncios: uma lista fixa de cenas com intervalos de quadros absolutos, uma dissolução de 10-20 quadros entre cenas, a música ou trilha sonora sob tudo. Se houver narração, gere-a primeiro e ancore-se nela (CLAUDE.md, Linhas do Tempo Âncora de Áudio); um anúncio com uma linha final de narrador pode ser liderado pela música.
Som em um movimento: meça, não estime. Um espirro, uma jaqueta caindo, um tilintar de crachá: coloque cada som
com tools/sync_check.py --clip (onde seu pico encontra o movimento), liste-o no sync-cues.json do projeto,
e execute sync_check.py --video ... --cues em toda renderização antes de mostrá-la. Um espirro colocado manualmente estava meio
segundo adiantado; outras três dicas estavam 0,8-1,0 s atrasadas. Se um clipe congelar ou cortar, termine seu som ali também.
Texto é o portador da piada. Balões de fala, um carimbo, um cartão de dança, uma lápide, uma etiqueta digitada. Remotion renderiza tudo (FLUX e LTX distorcem texto). Dê a cada piada na tela uma dica de quadro e um som.
Vozes. Para um narrador que ninguém possui, projete um com Qwen VoiceDesign a partir de um breve resumo escrito ("uma narradora
britânica de meia-idade e calorosa narrando um documentário da natureza, sussurrada, um ritmo lento e medido"; "um locutor de trailer de cinema
profundo e grave"): qwen3_tts.py --design-instruct "..." --text "<um parágrafo de semente de 20 s no gênero, não o roteiro>" --format wav. VoiceDesign cria uma nova voz a cada chamada, então projete uma vez, depois clone essa referência
para cada frase (três takes, pick_takes.py). Descreva um gênero, nunca uma pessoa real; escolher um narrador que a voz
famosa do gênero não é (uma mulher para um filme da natureza) mantém claramente original.
Cortes. Planeje o corte vertical e qualquer edição de marca desde o início; eles reutilizam todos os assets gerados e custam
apenas uma renderização cada. Veja formats.md.
Reutilização entre gêneros. Um elenco animado uma vez pode ser refigurado para o próximo feriado: as fotos, recortes bíblia de contexto são transportados, e apenas os figurinos, clipes e mundo mudam.
Custo (Modal, 2026-11)
LTX ~$0.08 por clipe de 5 s, image_edit ~$0.01 por edição quente (um início frio leva ~10 min; envie uma edição primeiro e espere), FLUX ~$0.01 por fundo ou retrato, música ACE-Step alguns centavos. Um anúncio de 90 s com cinco membros do elenco e re-rolls custa cerca de $2. Dois curtas de 80-100 s compartilhando um elenco inventado (9 edições de figurino, 16 clipes, 2 vozes projetadas) custaram cerca de $2.50 juntos. A API acemusic pode retornar 502s no meio do lote; um take com falha é ignorado, então execute novamente para obter mais.
Relacionados
context.md, genres.md, people.md, formats.md aqui; skills ltx2, qwen-edit, acestep, elevenlabs, video-design,
remotion; lib/components/LivingPhoto.tsx.