O OmniAvatar é um projeto de código aberto desenvolvido em conjunto pela Universidade de Zhejiang e pela Alibaba, com foco na geração de vídeos de avatar de corpo inteiro por meio de entrada de áudio. Com base em técnicas de aprendizagem profunda, o projeto usa dicas de áudio e texto para gerar animações de avatar naturais e suaves, especialmente na sincronização labial e na coordenação de movimentos de corpo inteiro. O OmniAvatar é compatível com a geração de vídeos em vários cenários, como podcasts, diálogos interativos e performances dinâmicas. Ele aprimora a precisão da sincronização labial e a naturalidade dos movimentos por meio de incorporação de áudio multinível em nível de pixel e métodos de treinamento LoRA. O código do projeto e os pesos do modelo estão disponíveis publicamente e podem ser acessados via GitHub e executados localmente. O OmniAvatar é adequado para filmes, TV, jogos e criação de conteúdo de mídia social, gerando animações de avatar de alta qualidade.
Lista de funções
- Geração de vídeo orientada por áudioAnimação de corpo inteiro do avatar: gera uma animação de corpo inteiro do avatar com base no áudio de entrada, com movimentos labiais altamente sincronizados com o áudio.
- Controle de prompt de textoSuporte para controle das emoções, dos movimentos e do ambiente de fundo dos avatares por meio de comandos de texto.
- Sincronização labial multilíngueSincronização labial: Suporta sincronização labial em 31 idiomas, incluindo chinês, inglês e japonês.
- Coordenação total do corpoGeração de movimentos naturais dos ombros, ritmos de gestos e outras animações de corpo inteiro.
- Suporte à interação de cenasO avatar pode interagir com objetos na cena, o que é adequado para cenas como demonstrações de produtos.
- Saídas de resolução múltiplaSuporte para geração de vídeo 480p, adequado para diferentes necessidades de equipamentos.
- Suporte a modelos de código abertoOs modelos de parâmetros 1.3B e 14B estão disponíveis para atender a diferentes configurações de hardware.
Usando a Ajuda
Processo de instalação
Para usar o OmniAvatar, você precisa configurar o ambiente de tempo de execução localmente e fazer o download do modelo pré-treinado. Veja a seguir as etapas detalhadas de instalação e uso:
- Clonagem do código do projeto
Execute o seguinte comando em um terminal para clonar o repositório de código do OmniAvatar:git clone https://github.com/Omni-Avatar/OmniAvatar.git
Quando a clonagem estiver concluída, vá para o diretório do projeto:
cd OmniAvatar
- Instalação de dependências
O projeto requer um ambiente Python e bibliotecas de dependência específicas. Execute o seguinte comando para instalar o PyTorch e outras dependências:pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt
Se você tiver uma GPU de alto desempenho, poderá instalar opcionalmente
flash_attn
Computação de atenção acelerada:pip install flash_attn
- Download do modelo pré-treinado
O OmniAvatar se baseia em vários modelos pré-treinados, incluindo o Wan2.1-T2V-14B, o wav2vec2-base-960h e o OmniAvatar-14B.huggingface-cli
Download:mkdir pretrained_models pip install "huggingface_hub[cli]" huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./pretrained_models/Wan2.1-T2V-14B huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./pretrained_models/wav2vec2-base-960h huggingface-cli download OmniAvatar/OmniAvatar-14B --local-dir ./pretrained_models/OmniAvatar-14B
Se os recursos de hardware forem limitados, você poderá escolher o modelo paramétrico de 1,3B e fazer o download de forma semelhante.
- Preparação do arquivo de entrada
Crie um arquivo de entrada (por exemploinfer_samples.txt
) que contém o caminho do arquivo de áudio e o prompt de texto. Exemplo:audio_path: examples/audio/sample.wav prompt: "A happy person speaking in a bright room"
Certifique-se de que o formato do arquivo de áudio seja WAV e que as dicas de texto descrevam claramente o humor, a ação ou o cenário do personagem.
- Execução de scripts de inferência
fazer uso detorchrun
Execute o script de inferência para gerar o vídeo. Para o modelo 14B:torchrun --standalone --nproc_per_node=1 scripts/inference.py --config configs/inference.yaml --input_file examples/infer_samples.txt
Para o modelo 1.3B:
torchrun --standalone --nproc_per_node=1 scripts/inference.py --config configs/inference_1.3B.yaml --input_file examples/infer_samples.txt
O vídeo de saída será salvo na pasta especificada (por exemplo
results
) Médio.
Funções principais
- Gerar vídeo orientado por áudio
O usuário precisa preparar uma imagem de referência e um clipe de áudio. A imagem de referência é usada para definir a aparência do avatar e o áudio aciona os movimentos dos lábios e do corpo inteiro. Depois de executar um script de inferência, o sistema gera um vídeo sincronizado com base no áudio, com movimentos labiais que são altamente compatíveis com o ritmo da fala. Por exemplo, se o usuário inserir o áudio de um discurso, o OmniAvatar gerará os gestos e as expressões naturais do personagem enquanto ele fala. - Controle de prompt de texto
Usando comandos de texto, o usuário pode controlar as emoções do avatar (por exemplo, "feliz" ou "zangado"), ações (por exemplo, "acenar") ou plano de fundo (por exemplo, "praia"). "praia"). As dicas devem ser claras e específicas, por exemplo, "Uma pessoa surpresa dançando em uma floresta". O sistema ajustará os detalhes da animação de acordo com a sugestão. - Suporte a vários idiomas
O OmniAvatar usa o Wav2Vec2 para extrair recursos de áudio e é compatível com a sincronização labial em 31 idiomas. Os usuários podem inserir áudio em qualquer um dos idiomas suportados e o sistema gerará automaticamente os movimentos labiais correspondentes sem configuração adicional. - Interação de cena
Ao adicionar a descrição da interação do objeto (por exemplo, "segurando uma xícara") aos prompts de texto, o avatar pode interagir com objetos da cena, adequados para exibição de comércio eletrônico ou animação de enredo.
advertência
- Requisitos de hardwareO modelo de 14B requer uma GPU de alto desempenho (por exemplo, A6000), e o modelo de 1,3B é adequado para hardware de nível de consumidor com 8 GB de VRAM.
- Velocidade de geraçãoO modelo de 14B leva cerca de 30 segundos por quadro em uma única GPU; o modelo de 1,3B é mais rápido e adequado para dispositivos de baixo custo.
- verificação de saídaDepois de gerar o vídeo, verifique o arquivo MP4 na pasta de saída para ter certeza de que os lábios estão sincronizados e os movimentos são naturais.
cenário do aplicativo
- Produção de vídeo de podcast
Os usuários podem transformar o áudio do podcast em vídeos de avatar para aumentar o apelo visual, e o OmniAvatar garante que os movimentos labiais sejam sincronizados com o áudio, tornando-o ideal para a produção rápida de conteúdo de podcast de alta qualidade. - Geração de âncoras virtuais
Os criadores de mídia social podem usar o OmniAvatar para gerar vídeos de desempenho de âncoras virtuais com suporte para controle de texto em tempo real do humor e do contexto para plataformas de vídeo ao vivo ou de curta duração. - Animação de filmes, TV e jogos
Os desenvolvedores de filmes, TV e jogos podem usar o OmniAvatar para gerar rapidamente a animação de personagens e reduzir o custo da animação tradicional, especialmente para projetos que exigem muitas cenas de diálogo. - Apresentação de produtos de comércio eletrônico
Por meio da função de interação com a cena, os avatares podem exibir produtos (por exemplo, roupas ou dispositivos eletrônicos) para aumentar o realismo do conteúdo de marketing.
QA
- Quais idiomas são suportados pela OmniAvatar para a entrada de áudio?
Há suporte para 31 idiomas, incluindo chinês, inglês, japonês, etc. A sincronização labial é garantida pelo modelo Wav2Vec2. - Qual é a configuração de hardware necessária para executá-lo?
Os modelos de 1,3 bilhão exigem pelo menos 8 GB de VRAM e os modelos de 14 bilhões recomendam uma GPU de classe de datacenter (por exemplo, A6000). - Qual é a resolução do vídeo gerado?
Atualmente, suporta resolução de 480p, com a possibilidade de expansão para resoluções mais altas no futuro. - Como posso melhorar minha velocidade de geração?
Experimente o modelo 1.3B ou instaleflash_attn
Computação de atenção acelerada.