Fork do SkyReels V3 com uma Web UI completa: filas nomeadas, personagens falantes, import de episódio via JSON e finalização automática.
# clone, venv e dependências git clone https://github.com/inematds/aisf cd aisf python3.12 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # sobe a Web UI python webui/app.py # http://localhost:7860
aisf é um fork do modelo de geração de vídeo SkyReels V3 com uma Web UI construída por cima, pensada para produzir vídeos em escala — especialmente séries animadas com vários personagens e cenas. Os modelos são baixados automaticamente do HuggingFace na primeira execução.
Monte filas com dezenas de cenas, controle por cena, pule erros e retome de onde parou. Ideal para episódios inteiros.
Task `talking_avatar`: imagem de retrato + áudio MP3 → vídeo do personagem falando, com o áudio mixado automaticamente.
Importe um `.json` com um array de cenas (tipos mistos) e gere a fila inteira. Edite prompt, seed e resolução em runtime.
Você prepara assets, monta a fila (na UI ou via JSON), executa as cenas e finaliza concatenando os vídeos prontos.
`reference_to_video` (14B), `single_shot_extension` e `shot_switching_extension` (14B) e `talking_avatar` (19B).
Completo (multi-GPU), `--offload` (~20 GB) e `--low_vram` (FP8, GPU única < 24 GB; obrigatório para talking_avatar).
É um modelo de difusão de vídeo: precisa de GPU. O ambiente é Python com venv; alguns pacotes são opcionais mas recomendados.
Crie e ative o ambiente virtual antes de instalar as dependências.
# ambiente python3.12 -m venv .venv source .venv/bin/activate
Instale o requirements e, se o hardware permitir, os extras de performance.
pip install -r requirements.txt # opcionais recomendados pip install flash-attn --no-build-isolation pip install xfuser torchao
Para GPU única < 24 GB, ative o modo Low VRAM e o flag de alocação do CUDA.
export PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True"
Comece pela Web UI; quando precisar de automação, use a CLI ou a API REST.
Depois de criar a venv e instalar as dependências, suba a interface. Acesse de qualquer dispositivo na rede local.
source .venv/bin/activate python webui/app.py # http://localhost:7860
Coloque cenários, retratos de personagens (reutilizados entre cenas) e áudios em `uploads/<projeto>/<episodio>/`.
# exemplo de estrutura
uploads/projeto/ep01/cena01.png
uploads/projeto/ep01/personagem_a.png
uploads/projeto/ep01/c01_a_linha1.mp3
Na aba Fila, use ↑ Importar para carregar um `.json` com um array de cenas. Tipos de task podem ser misturados no mesmo arquivo.
# cada objeto = 1 cena [{ "label": "C01-A · Corredor", "task_type": "reference_to_video", "prompt": "A school hallway...", "resolution": "540P", "duration": 4, "ref_imgs": ["uploads/projeto/ep01/cena01.png"] }]
▶ Continuar roda as cenas em sequência e pula erros. Clique em ✏️ para editar prompt, seed ou resolução de uma cena `idle`/`error` sem reiniciar o servidor — ou via API REST.
curl -X PATCH http://localhost:7860/nqueues/<fila>/jobs/<job> \ -H "Content-Type: application/json" \ -d '{"resolution":"720P","seed":9999}'
Com as cenas `done`, use 🎬 Finalizar para concatenar tudo num `.mp4` final via ffmpeg. Pela CLI, a saída sai em `result/<task>/`.
python3 generate_video.py \
--task_type talking_avatar \
--input_image personagem.png \
--input_audio fala.mp3 \
--resolution 480P --low_vram
Casos de uso comuns para produção de séries animadas.
Um JSON com cenas de estabelecimento (`reference_to_video`) e falas (`talking_avatar`) misturadas vira uma fila inteira. O repo traz um exemplo com 59 cenas.
Retrato + MP3 de até 200s gera o avatar falante, com `
↩ Repetir do erro reseta só as cenas com falha e retoma daquele ponto — sem refazer o que já ficou pronto.
Todos os vídeos gerados aparecem numa galeria com player e privacidade por card, para revisar a produção.
Direções a partir das funcionalidades já adicionadas neste fork.