Sprite Stage
Um comando de configuração. Depois, faça um filme 2D original a partir de folhas de personagens e um vídeo de referência.
Primeira ação
Se .ready não existir, execute isto e aguarde Sprite Stage está pronto.
bash setup.sh
Faça isso você mesmo. Não entregue à pessoa uma lista de pacotes para instalar. O script é seguro para executar novamente.
O replay de imagens usa o Python do sistema. Novas vozes usam o virtualenv que o script cria.
python3 render.py
.venv/bin/python voices.py
python3 render.py
A amostra finalizada é renders/long-slide.mp4.
O que você mantém original
Um vídeo de referência fornece apenas a premissa: o local, a ordem das ações e a sensação. Escreva um novo roteiro com os nomes dos próprios personagens do usuário. Não copie o título original, nomes de personagens, logotipos, letras ou falas em prompts, texto na tela ou na trilha sonora.
Os bloqueios de figurino e voz para o elenco incluído estão em characters/CAST.md. Exemplos de prompts estão em examples/prompts.md.
Fazer um novo filme
- Coloque a imagem de referência de cada personagem em
characters/. Uma pessoa por arquivo. Vista frontal, corpo inteiro, fundo simples. - Gere folhas de sprites em
sprites/{nome}-{ação}.png. Ações usadas pelo renderizador de amostra:walk,front,talking,back,sitting. Folhas são quatro células lado a lado em magenta (#FF00FF).
Sprites gratuitos
Padrão para uma ferramenta de imagem gratuita. Isso torna as imagens de sprite $0. A tabela de tokens de agente em COSTS.md ainda se aplica.
python3 scripts/free_sprites.py --provider prompt --name lina --action walk,front,back,talking,sitting
Cada arquivo em sprites/prompts/ nomeia as duas imagens a anexar e o prompt a colar. Exemplos de prompts estão em examples/prompts.md. Salve a imagem da ferramenta como sprites/{nome}-{ação}.png.
Use Gemini apenas quando GEMINI_API_KEY já estiver no ambiente. Nunca peça a chave, nunca a imprima e nunca a escreva no repositório.
python3 scripts/free_sprites.py --provider gemini --name lina --action walk
Se esse modelo estiver fora da franquia gratuita da chave, pare e use --provider prompt.
- Escreva falas originais em
voices.py, depois.venv/bin/python voices.py. O tom usa a taxa de amostragem real do arquivo, então cada linha é desacelerada para cerca de duas palavras por segundo para que a boca possa ficar aberta durante toda a linha. - Aponte
render.pyNAMESeHEIGHTpara o elenco. Construa a linha do tempo de modo que apenas uma pessoa suba e apenas uma pessoa deslize. Executepython3 render.py. As bocas abrem porduration + 0.2s. O grito de descida começa quando a descida começa.
Regras de sprite que mantêm as roupas intactas
- Chave apenas magenta forte: vermelho > 200, verde < 100, azul > 200. Uma chave cromática solta faz buracos em tecido rosa.
- Não exclua uma região conectada só porque é um rosto. Mantenha componentes de cerca de 1800 pixels ou mais.
- As células de caminhada compartilham um único tempo: passada longa, pés juntos, passada oposta, pés juntos.
- Vista lateral olha para a direita. Espelhe no renderizador quando o personagem andar para a esquerda.
- Sente o cavaleiro no caminho do chute e cubra as pernas com o lábio próximo do escorregador. Não flutue o corpo acima do chute.
Vozes
OpenVoice V2 muda o tom. MeloTTS fala as palavras com uma base de inglês britânico. Crianças são mais agudas e um pouco mais rápidas que o adulto. Dê a cada pessoa um tom alvo diferente. Não dê a todo o elenco um único tom.
Se uma linha ainda for mais curta que sua janela de boca, reduza a velocidade do MeloTTS ou estique com atempo abaixo de 1. Não acelere uma linha para preencher uma lacuna.
Custo e máquina
Um filme de 1 minuto tem cerca de 300k–500k tokens de entrada e 60k–100k tokens de saída quando os sprites já existem, ou cerca de 1,0M–1,5M de entrada e 200k–300k de saída quando você também faz sprites e revisa uma vez. Valores em dólares para OpenCode, Claude, Codex e Cursor, e os requisitos de CPU do OpenVoice (8 GB de RAM, Python 3.11–3.13, sem GPU necessária), estão em COSTS.md.
Quando a pessoa quiser que o filme não custe nada, execute esta habilidade dentro do OpenCode em um modelo marcado como Gratuito e faça as folhas com --provider prompt. Essa linha de agente é $0 enquanto o filme permanecer dentro da cota diária de modelo gratuito. Um modelo pago no mesmo aplicativo cobra desse provedor.
Créditos
OpenVoice e MeloTTS são software MIT da MyShell. ffmpeg desenha os quadros. PyTorch executa os modelos de voz. Checkpoints vêm do modelo público myshell-ai/OpenVoiceV2. Links completos estão no README.