Fork do SkyReels V3 · Web UI · produção em batch

Geração de vídeo por episódios, com Web UI completa

Fork do SkyReels V3 com interface web para produzir séries animadas em escala: filas nomeadas com dezenas de cenas, talking avatar, import via JSON e finalização automática.

# clona, cria o venv e sobe a Web UI
git clone https://github.com/inematds/skyreelsv3
python3.12 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python webui/app.py  # http://localhost:7860
O que é

SkyReels V3 com uma camada de produção por cima

Fork do modelo de geração de vídeo SkyReels V3 (Skywork AI) com uma Web UI construída para produção em escala — especialmente séries com múltiplos personagens e cenas. A interface continua 100% utilizável standalone e também é consumida pela plataforma imkt4 como worker de geração por roteiro.

🎞️ 4 tipos de task

reference_to_video (14B), single_shot_extension e shot_switching_extension (14B) e talking_avatar (19B) — imagem de personagem + áudio MP3 vira vídeo falante.

🎞️ Filas nomeadas (batch)

Named Queues com dezenas de cenas, controle por cena, retomada após erro e edição de prompt / seed / resolução em runtime.

🎞️ Import por JSON + finalização

Importe um episódio inteiro (uma cena por objeto, tipos mistos) e ao final concatene as cenas concluídas num MP4 via ffmpeg.

Como funciona

Do JSON do episódio ao vídeo final

Você importa um array de cenas como fila nomeada, executa as cenas idle em sequência (pulando erros), repete a partir do erro se preciso e finaliza concatenando tudo.

JSON do episódio Fila nomeada ▶ Continuar (cenas idle) ↩ Repetir do erro 🎬 Finalizar (ffmpeg) MP4 final

Assets reutilizáveis

Cenários, retratos de personagens e áudios ficam em uploads/<projeto>/<episodio>/ — personagens são reusados entre cenas.

Modos de memória

Completo (multi-GPU), --offload (GPU única ≥ 20 GB) e --low_vram (FP8 + block offload, GPU < 24 GB). talking_avatar exige low_vram em GPUs pequenas.

API REST (PATCH)

Altere parâmetros de uma cena específica via PATCH /nqueues/<fila>/jobs/<job> sem reiniciar o servidor.

Pré-requisitos

O que você precisa antes de gerar

Python 3.12 e uma GPU compatível. Os modelos do SkyReels V3 são baixados automaticamente do HuggingFace na primeira execução.

Python 3.12 + venv

Crie e ative o ambiente virtual antes de instalar.

python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Extras recomendados

flash-attn (atenção), xfuser (multi-GPU) e torchao (FP8 / Low VRAM).

pip install flash-attn --no-build-isolation
pip install xfuser torchao

Low VRAM

Para GPUs < 24 GB, exporte a alocação expansível antes de rodar.

export PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True"
Guia de uso · passo a passo

Do clone ao episódio gerado

Suba a Web UI, organize os assets, importe o JSON do episódio e finalize. Também dá para gerar uma cena avulsa pela CLI.

1

Instalar e subir a Web UI

Os modelos baixam sozinhos na primeira execução.

git clone https://github.com/inematds/skyreelsv3 && cd skyreelsv3
python3.12 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python webui/app.py  # http://localhost:7860
2

Organizar os assets

Cenários, retratos e áudios por projeto e episódio. Atenção: caminhos em ref_imgs não podem conter vírgulas (a CLI usa vírgula como separador).

# uploads/<projeto>/<episodio>/
cena01.png  personagem_a.png  c01_a_linha1.mp3
3

Importar o episódio (JSON)

Um array de cenas vira uma fila nomeada. Tipos de task podem ser misturados no mesmo arquivo.

# na aba Fila → ↑ Importar
[{"label":"C01-A · Corredor","task_type":"reference_to_video",
  "prompt":"...","resolution":"540P","duration":4,
  "ref_imgs":["uploads/proj/cena01.png"]}]
4

Rodar a fila

▶ Continuar executa as cenas idle em sequência; ↩ Repetir do erro retoma daquele ponto; ✏️ edita prompt / seed / resolução em runtime.

# ações por fila
▶ Continuar  ↩ Repetir do erro  ↺ Reiniciar  🎬 Finalizar
5

Finalizar o episódio

🎬 Finalizar concatena todas as cenas done num único MP4 via ffmpeg.

# saída final na galeria de vídeos
🎬 Finalizar → episodio_final.mp4
6

(Opcional) Gerar uma cena via CLI

Útil para testes pontuais; a saída vai para result/<task_type>/.

python3 generate_video.py \
  --task_type talking_avatar \
  --input_image personagem.png --input_audio fala.mp3 \
  --resolution 480P --seed 42 --low_vram
Exemplos

Casos de uso

Pensado para séries animadas com muitos personagens e falas, mas também serve geração avulsa.

Episódio completo

O exemplo em doc/ traz um episódio com 59 cenas (21 reference_to_video + 38 talking_avatar) num único JSON.

Talking avatar

Imagem de retrato + áudio MP3 (até 200 s) gera o vídeo falante; em GPU pequena, sempre com --low_vram e resolução 480P ou 720P.

Extensão de plano

single_shot_extension e shot_switching_extension estendem um vídeo de entrada mantendo continuidade.

Worker do imkt4

Desde a v3.49, a Web UI expõe /health e webhook callback em /nqueues/<id>/run?callback_url=... para orquestração multi-tenant.

Roadmap

Estado e evolução

O fork foca em transformar o SkyReels V3 numa ferramenta de produção de episódios, mantendo compatibilidade standalone e integração com o imkt4.

Pronto
Web UI de produçãoGeração individual e em fila, named queues, talking avatar, import JSON, edição em runtime, finalização ffmpeg e galeria de vídeos.
Em uso
Integração com imkt4/health, webhook callback e resume-from-error para uso como worker macro de geração por roteiro.
Base
Modelos SkyReels V3R2V-14B, V2V-14B e A2V-19B, baixados do HuggingFace, com modos Completo / Offload / Low VRAM.
Contínuo
Acompanhar o upstreamBaseado no SkyReels V3 da Skywork AI, com Wan 2.1, MultiTalk, xDiT e diffusers nos ombros.