Introdução geral
O FantasyTalking é um projeto de código aberto desenvolvido pela equipe do Fantasy-AMAP, que se concentra na geração orientada por áudio de vídeos de retratos falados realistas. O projeto é baseado no modelo avançado de difusão de vídeo Wan2.1, combinado com o codificador de áudio Wav2Vec e pesos de modelos proprietários, usando técnicas de inteligência artificial para obter sincronização labial e expressões faciais altamente realistas. Ele suporta vários estilos de geração de retratos, incluindo pessoas reais e imagens de desenhos animados, para uma ampla gama de pontos de vista, como panorama, busto ou close-up. Os usuários podem gerar rapidamente vídeos falados de alta qualidade inserindo imagens e áudio por meio de operações simples de linha de comando.
Lista de funções
- Gere vídeos de retratos falados realistas com movimentos labiais altamente sincronizados com o áudio.
- Vários pontos de vista são suportados para geração, incluindo close-up, retratos de meio corpo e de corpo inteiro.
- Compatível com retratos reais e em estilo de desenho animado para atender a diversas necessidades.
- Fornece a função de controle de palavras-chave para ajustar a expressão e o movimento corporal do personagem.
- Suporta saída de alta resolução de até 720P.
- Módulo integrado de atenção cruzada com foco no rosto para garantir a consistência das características faciais.
- Inclui módulo de modulação da intensidade do exercício para controlar a expressão e a amplitude de movimento.
- Modelos e códigos de código aberto para apoiar o desenvolvimento e a otimização da comunidade secundária.
Usando a Ajuda
Processo de instalação
Para usar o FantasyTalking, você precisa instalar primeiro as dependências e os modelos necessários. Abaixo estão as etapas detalhadas de instalação:
- Clonagem do código do projeto
Execute o seguinte comando no terminal para clonar o projeto localmente:git clone https://github.com/Fantasy-AMAP/fantasy-talking.git cd fantasy-talking
- Instalação de dependências
O projeto depende do ambiente Python e do PyTorch (versão >= 2.0.0). Execute o seguinte comando para instalar as bibliotecas necessárias:pip install -r requirements.txt
Montagem opcional
flash_attn
para acelerar a computação da atenção:pip install flash_attn
- Modelos para download
O FantasyTalking requer três modelos: Wan2.1-I2V-14B-720P (modelo básico), Wav2Vec (codificador de áudio) e pesos do modelo FantasyTalking. Eles podem ser baixados por meio do Hugging Face ou do ModelScope:- Use a CLI do Hugging Face:
pip install "huggingface_hub[cli]" huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./models/Wan2.1-I2V-14B-720P huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./models/wav2vec2-base-960h huggingface-cli download acvlab/FantasyTalking fantasytalking_model.ckpt --local-dir ./models
- Ou use a CLI do ModelScope:
pip install modelscope modelscope download Wan-AI/Wan2.1-I2V-14B-720P --local_dir ./models/Wan2.1-I2V-14B-720P modelscope download AI-ModelScope/wav2vec2-base-960h --local_dir ./models/wav2vec2-base-960h modelscope download amap_cvlab/FantasyTalking fantasytalking_model.ckpt --local_dir ./models
- Use a CLI do Hugging Face:
- Ambiente de verificação
Certifique-se de que a GPU esteja disponível (recomenda-se RTX 3090 ou superior, VRAM de pelo menos 24 GB). Se você tiver problemas de memória, tente diminuir a resolução ou ativar a otimização de VRAM.
Uso
Após a conclusão da instalação, os usuários podem executar o script de raciocínio para gerar vídeos a partir da linha de comando. Os comandos básicos são os seguintes:
python infer.py --image_path ./assets/images/woman.png --audio_path ./assets/audios/woman.wav
--image_path
Digite o caminho para a imagem do retrato (compatível com o formato PNG/JPG).--audio_path
Caminho do arquivo de áudio de entrada (compatível com o formato WAV).--prompt
Palavras de alerta opcionais para controlar o comportamento da função, por exemplo:--prompt "The person is speaking enthusiastically, with their hands continuously waving."
--audio_cfg_scale
responder cantando--prompt_cfg_scale
CFG de áudio: controla o grau de influência do áudio e das palavras-chave, com um intervalo recomendado de 3 a 7. Aumentar o CFG de áudio melhora a sincronização labial.
Operação da função em destaque
- Sincronização labial
A função principal do FantasyTalking é gerar movimentos labiais precisos com base no áudio. O usuário precisa preparar um arquivo de áudio nítido (por exemplo, formato WAV, taxa de amostragem de 16kHz é o ideal). Quando o script de inferência é executado, o modelo analisa automaticamente o áudio e gera movimentos labiais correspondentes. Para obter melhores resultados, certifique-se de que o áudio esteja livre de ruídos significativos. - Controle de palavras-chave
aprovar (um projeto de lei ou inspeção etc.)--prompt
o usuário pode definir as expressões e ações do personagem. Por exemplo, digite--prompt "The person is speaking calmly with slight head movements."
Podem ser gerados vídeos de conversas calmas. As palavras-chave precisam ser concisas e claras, evitando descrições vagas. - Suporte a vários estilos
O projeto oferece suporte à geração de retratos nos estilos real e de desenho animado. Os usuários podem fornecer imagens de entrada de diferentes estilos, e o modelo ajustará o estilo de saída de acordo com os recursos da imagem. O estilo de desenho animado é adequado para cenas de animação, e o estilo real é adequado para aplicativos como âncoras virtuais. - Modulação da intensidade do exercício
O módulo Motion Intensity Modulation do FantasyTalking permite que o usuário controle a amplitude das expressões e dos movimentos. Por exemplo, definir um valor mais alto de--audio_weight
O parâmetro aprimora os movimentos dos membros e é adequado para cenas dinâmicas. As configurações padrão são otimizadas e é recomendável manter os valores padrão para o primeiro uso.
advertência
- Requisitos de hardwareA RTX 5090 com 32 GB de VRAM ainda pode apresentar problemas de pouca memória e é recomendável reduzir a quantidade de memória necessária para gerar vídeos de alta resolução.
--image_size
talvez--max_num_frames
. - Download do modeloOs arquivos do modelo são grandes (cerca de dezenas de gigabytes), portanto, certifique-se de ter uma rede estável e espaço suficiente em disco.
- Otimização de palavras-chaveA palavra-chave tem um grande impacto no resultado, e vários experimentos são recomendados para encontrar a melhor descrição.
cenário do aplicativo
- Criação de conteúdo de âncora virtual
Os usuários podem usar o FantasyTalking para gerar vídeos de fala realistas para âncoras virtuais. Insira a imagem do âncora e o áudio da narração para gerar vídeos com sincronização labial para transmissão ao vivo, vídeos curtos ou produção de conteúdo educacional. - Dublagem de personagens de animação
Os animadores podem gerar vídeos de narração para personagens de desenhos animados. Ao fornecer a imagem e o áudio do desenho animado, o modelo pode gerar movimentos labiais e expressões correspondentes, simplificando o processo de produção da animação. - Produção de vídeos educacionais
Professores ou organizações de treinamento podem gerar vídeos de instrutores virtuais. Insira um retrato do instrutor e o áudio do curso para gerar rapidamente vídeos instrucionais que aumentam o apelo do conteúdo. - Criação de entretenimento e fascinação
Os usuários podem gerar retratos falantes hilários para fanfics ou vídeos de entretenimento. Ajustando as palavras-chave, crie vídeos com expressões ou ações exageradas adequadas para compartilhamento em mídias sociais.
QA
- Quais formatos de entrada são compatíveis com o FantasyTalking?
As imagens são compatíveis com os formatos PNG e JPG e o áudio é compatível com o formato WAV com uma taxa de amostragem recomendada de 16 kHz para otimizar a sincronização labial. - Como resolver o problema de memória de vídeo insuficiente?
Se a GPU não tiver memória suficiente (por exemplo, 32 GB de VRAM na RTX 5090), diminua o valor de--image_size
(por exemplo, 512x512) ou reduzido--max_num_frames
(por exemplo, 30 fps). Também é possível ativar a opção de otimização de VRAM ou usar uma GPU mais configurável. - Como a qualidade do vídeo gerado pode ser aprimorada?
Use uma imagem de entrada de alta resolução (pelo menos 512x512) para garantir que o áudio seja nítido e sem ruídos. Ajuste--audio_cfg_scale
(por exemplo, 5-7) aprimora a sincronização labial, e a otimização das palavras-chave melhora a naturalidade das expressões. - Ele oferece suporte à geração em tempo real?
A versão atual suporta apenas inferência off-line, a geração em tempo real requer otimização adicional do modelo e suporte de hardware.