O MultiTalk é uma ferramenta de geração de vídeo de diálogo multijogador de código aberto orientada por áudio, desenvolvida pela MeiGen-AI. Ela gera vídeos interativos multijogador sincronizados com os lábios, com várias entradas de áudio, imagens de referência e avisos de texto. O projeto é compatível com a geração de vídeos de personagens reais e de desenhos animados e é adequado para cenários de diálogo, canto e controle de interação etc. O MultiTalk adota a inovadora tecnologia L-RoPE para solucionar o problema de vinculação de áudio e personagem e garante que os movimentos labiais sejam alinhados com precisão ao áudio. O projeto fornece pesos de modelo e documentação detalhada no GitHub sob a licença Apache 2.0, e é adequado para pesquisa acadêmica e desenvolvedores de tecnologia.
Lista de funções
- Suporte à geração de vídeos de diálogos com várias pessoas: com base em várias entradas de áudio, gere vídeos de vários personagens interagindo entre si, com movimentos labiais sincronizados com o áudio.
- Geração de personagens de desenho animado: suporte à geração de diálogos ou vídeos de canto de personagens de desenho animado para ampliar os cenários de aplicativos.
- Controle de interação: controle o comportamento do personagem e a lógica de interação por meio de prompts de texto.
- Flexibilidade de resolução: suporta saídas de vídeo de 480p e 720p para acomodar diferentes dispositivos.
- Tecnologia L-RoPE: resolve o problema da vinculação de vários áudios e caracteres por meio da incorporação da posição de rotação do rótulo e melhora a precisão da geração.
- TeaCache Acceleration: otimiza a velocidade de geração de vídeo para dispositivos com pouca memória de vídeo.
- Modelos de código aberto: fornecem pesos e códigos de modelos que os desenvolvedores podem baixar e personalizar livremente.
Usando a Ajuda
Processo de instalação
Para usar o MultiTalk, você precisa configurar o ambiente de tempo de execução localmente. Abaixo estão as etapas detalhadas de instalação para desenvolvedores ou pesquisadores de Python:
- Criação de um ambiente virtual
Crie um ambiente Python 3.10 usando o Conda para garantir o isolamento de dependências:conda create -n multitalk python=3.10 conda activate multitalk
- Instalação do PyTorch e das dependências relacionadas
Instale o PyTorch 2.4.1 e suas bibliotecas complementares para dar suporte à aceleração CUDA:pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121 pip install -U xformers==0.0.28 --index-url https://download.pytorch.org/whl/cu121
- Instalação de dependências adicionais
Instale as bibliotecas necessárias, como Ninja e Librosa:pip install ninja psutil packaging flash_attn conda install -c conda-forge librosa pip install -r requirements.txt
- Download dos pesos do modelo
Faça o download do MultiTalk e dos pesos de modelo associados do Hugging Face:huggingface-cli download Wan-AI/Wan2.1-I2V-14B-480P --local-dir ./weights/Wan2.1-I2V-14B-480P huggingface-cli download TencentGameMate/chinese-wav2vec2-base --local-dir ./weights/chinese-wav2vec2-base huggingface-cli download MeiGen-AI/MeiGen-MultiTalk --local-dir ./weights/MeiGen-MultiTalk
- Ambiente de verificação
Certifique-se de que todas as dependências estejam instaladas corretamente e verifique se a GPU está disponível (recomenda-se GPUs compatíveis com CUDA).
Uso
MultiTalk via script de linha de comando generate_multitalk.py
Gerar vídeo. O usuário precisa preparar as seguintes entradas:
- Áudio múltiploSuporte a arquivos de áudio no formato WAV: garante que cada canal de áudio corresponda à voz de um personagem.
- imagem de referênciaImagem estática: Fornece uma imagem estática da aparência do personagem, que é usada para gerar o personagem no vídeo.
- alerta de textoTexto que descreve uma cena ou interação de personagem, por exemplo, "Nick and Judy have a conversation in the coffee shop" (Nick e Judy conversam na cafeteria).
Gerar vídeos curtos
Execute o seguinte comando para gerar um único vídeo curto:
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode clip \
--size multitalk-480 \
--use_teacache \
--save_file output_short_video
Vídeo de crescimento bruto
Para vídeos longos, use o modo de geração de streaming:
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode streaming \
--use_teacache \
--save_file output_long_video
Otimização de pouca memória
Se não houver memória de vídeo suficiente, defina --num_persistent_param_in_dit 0
::
python generate_multitalk.py \
--ckpt_dir weights/Wan2.1-I2V-14B-480P \
--wav2vec_dir weights/chinese-wav2vec2-base \
--input_json examples/single_example_1.json \
--sample_steps 40 \
--mode streaming \
--num_persistent_param_in_dit 0 \
--use_teacache \
--save_file output_lowvram_video
Descrição do parâmetro
--mode
::clip
gerando vídeos curtos.streaming
Vídeo do Raw Growth.--size
: Seleçãomultitalk-480
talvezmultitalk-720
Resolução de saída.--use_teacache
TeaCache: Ative a aceleração do TeaCache para otimizar a velocidade de geração.--teacache_thresh
Valores de 0,2 a 0,5 para equilibrar a velocidade e a massa.
Operação da função em destaque
- Geração de diálogos para vários jogadores
O usuário deve preparar várias faixas de áudio e imagens de referência correspondentes. Os arquivos de áudio devem ser claros, com uma taxa de amostragem recomendada de 16kHz, e as imagens de referência devem incluir o rosto ou o corpo do personagem. A sugestão de texto deve descrever claramente a cena e o comportamento do personagem, por exemplo, "Duas pessoas discutindo sobre trabalho em uma mesa de café ao ar livre". Depois de gerado, o MultiTalk usa a tecnologia L-RoPE para garantir que cada canal de áudio seja vinculado ao personagem correspondente e que os movimentos labiais sejam sincronizados com a voz. - Suporte a personagens de desenho animado
Fornecendo imagens de referência de personagens de desenhos animados (como Nick e Judy, no estilo Disney), o MultiTalk gera diálogos ou vídeos de canto no estilo de desenhos animados. Exemplo de solicitação: "Nick e Judy cantando em uma sala aconchegante". - controle interativo
Controle as ações dos personagens com prompts de texto. Por exemplo, digite "mulher tomando café, homem olhando para o celular" e o MultiTalk gerará uma cena dinâmica. Os prompts devem ser concisos, mas específicos, evitando descrições vagas. - Seleção de resolução
fazer uso de--size multitalk-720
Gera vídeo HD adequado para exibição em dispositivos de exibição de alta qualidade. Baixa resolução 480p Ideal para testes rápidos ou equipamentos de baixo desempenho.
advertência
- Requisitos de hardwareGPUs equipadas com CUDA com pelo menos 12 GB de RAM são recomendadas; dispositivos com pouca RAM exigem a ativação dos parâmetros de otimização.
- qualidade de áudioO áudio precisa estar livre de ruídos perceptíveis para garantir um efeito de sincronização labial.
- Restrições de licençaO conteúdo gerado é apenas para uso acadêmico e o uso comercial é proibido.
cenário do aplicativo
- pesquisa acadêmica
Os pesquisadores podem usar o MultiTalk para explorar técnicas de geração de vídeo orientadas por áudio e testar a eficácia de abordagens inovadoras, como o L-RoPE, em cenários com vários caracteres. - Demonstrações educacionais
Os professores podem gerar vídeos de diálogos de personagens de desenhos animados para o ensino em sala de aula ou cursos on-line para adicionar diversão e interatividade. - Criação de conteúdo virtual
Os criadores de conteúdo podem gerar rapidamente diálogos multijogador ou vídeos de canto para plataformas de vídeo curtas ou apresentações de personagens virtuais. - desenvolvimento de tecnologia
Com base no código-fonte aberto do MultiTalk, os desenvolvedores podem personalizar ferramentas de geração de vídeo específicas do cenário para reuniões virtuais ou projetos humanos digitais.
QA
- Quais formatos de áudio são compatíveis com o MultiTalk?
Suporta áudio no formato WAV com uma taxa de amostragem recomendada de 16kHz para garantir a sincronização labial ideal. - Como faço para corrigir um erro de vinculação de áudio a caractere?
O MultiTalk usa a tecnologia L-RoPE para resolver automaticamente os problemas de vinculação, incorporando os mesmos rótulos para áudio e vídeo. Isso garante que o áudio de entrada e a imagem de referência correspondam um ao outro. - Quanto tempo leva para gerar um vídeo?
Depende do hardware e da duração do vídeo. Vídeos curtos (10 segundos) levam cerca de 1 a 2 minutos em uma GPU de alto desempenho, e vídeos mais longos podem levar de 5 a 10 minutos. - Ele oferece suporte à geração em tempo real?
A versão atual não oferece suporte à geração em tempo real e requer processamento off-line. As versões futuras poderão otimizar a geração de baixa latência. - Como otimizar o desempenho de dispositivos de memória gráfica de baixo custo?
fazer uso de--num_persistent_param_in_dit 0
responder cantando--use_teacache
reduzindo o espaço ocupado pela memória gráfica.