O Index-AniSora é um modelo de geração de vídeo de anime desenvolvido e de código aberto pela Bilibili e hospedado no GitHub. Ele usa o CogVideoX-5B e o Wan2.1-14B como modelo de base e oferece suporte à geração de diversos vídeos de estilo anime, incluindo episódios de anime, animação original doméstica, adaptações de mangá, conteúdo VTuber, PVs de anime e vídeos de estilo spoof. O projeto combina os resultados dos artigos aceitos no IJCAI'25, fornece treinamento completo e código de inferência e oferece suporte ao hardware Rise 910B NPU da Huawei. O Index-AniSora implementa a geração de imagem para vídeo, a interpolação de quadros e a animação guiada localmente com dezenas de milhões de conjuntos de dados de alta qualidade e um módulo de máscara espaço-temporal. Seu conjunto de dados de avaliação contém 948 clipes de vídeo animados, combinados com dicas de texto geradas pelo Qwen-VL2 para garantir o alinhamento preciso do texto ao conteúdo do vídeo. O projeto é totalmente de código aberto, licenciado pelo Apache 2.0, e a participação da comunidade no desenvolvimento é incentivada.
Lista de funções
- Suporte à geração de diversos vídeos no estilo anime, abrangendo episódios de anime, adaptações de mangá, conteúdo VTuber e muito mais.
- Oferece a função de geração de imagem para vídeo para gerar vídeo dinâmico com base em uma única imagem.
- Suporte à interpolação de quadros para gerar quadros-chave, quadros intermediários e quadros finais para otimizar a suavidade da animação.
- Oferece funcionalidade de animação guiada por imagem localizada, permitindo que áreas especificadas pelo usuário sejam animadas.
- Um conjunto de dados de avaliação contendo 948 videoclipes animados emparelhados com prompts de texto corrigidos manualmente.
- Suporta a NPU Rise 910B da Huawei para otimizar o desempenho do treinamento e da inferência.
- Fornecer a estrutura de otimização de aprendizado por reforço (RLHF) para melhorar a qualidade da saída do estilo anime.
- Publique o código completo de treinamento e inferência no caminho
anisoraV1_train_npu
responder cantandoanisoraV2_npu
. - Fornece técnicas de inferência aceleradas por destilação para reduzir o custo computacional e manter a qualidade da geração.
Usando a Ajuda
Processo de instalação
O Index-AniSora é um projeto de código aberto hospedado no GitHub e os usuários precisam clonar o repositório e configurar o ambiente para usar seus recursos. Abaixo estão as etapas detalhadas de instalação e uso:
- armazém de clones
Execute o seguinte comando em um terminal para clonar o repositório Index-AniSora:git clone https://github.com/bilibili/Index-anisora.git cd Index-anisora
- Configuração do ambiente
O projeto depende do ambiente Python e de uma estrutura específica de aprendizagem profunda. Recomenda-se o Python 3.8 ou superior. Instale as dependências:pip install -r requirements.txt
Certifique-se de que as dependências do PyTorch (compatível com NPUs ou GPUs do Rise), do CogVideoX e do Wan2.1 estejam instaladas. Se estiver usando o Rise 910B NPU da Huawei, será necessário instalar o kit de desenvolvimento do Rise (como o CANN). Consulte a documentação oficial ou a comunidade do Huawei Rise para obter instruções específicas de instalação.
- Download dos pesos do modelo
Os usuários precisam solicitar os pesos dos modelos AniSoraV1 ou AniSoraV2. Preencha o formulário de solicitação fornecido oficialmente (formato PDF) e envie-o para o endereço de e-mailyangsiqian@bilibili.com
talvezxubaohan@bilibili.com
. Após a revisão, obtenha o link de download do weights. Após o download, coloque o arquivo de pesos no diretório especificado do repositório (por exemploanisoraV2_npu
). - Executar o código de inferência
O projeto fornece o código de inferência completo, localizadoanisoraV1_train_npu
talvezanisoraV2_npu
Diretório. Execute o comando de inferência de amostra:python inference.py --model_path anisoraV2_npu --prompt "一个穿和服的少女在樱花树下跳舞" --output output_video.mp4
Descrição do parâmetro:
--model_path
Especifica o caminho do peso do modelo.--prompt
Digite um prompt de texto que descreva a cena de animação desejada.--output
Caminho do arquivo de vídeo de saída: Especifica o caminho do arquivo de vídeo de saída.
- Modelos de treinamento
Se for necessário um treinamento personalizado, o projeto fornecerá o código de treinamento (anisoraV1_train_npu
). Depois de preparar o conjunto de dados, execute o script de treinamento:python train.py --data_path your_dataset --output_dir trained_model
O conjunto de dados precisa atender aos requisitos do projeto, e é recomendável usar clipes de vídeo animados semelhantes ao conjunto de dados de avaliação com instruções de texto. O treinamento é compatível com a NPU e a GPU do Huawei Rise.
Funções principais
- Geração de imagem para vídeo
O usuário carrega uma imagem estática (por exemplo, o desenho de um personagem de anime) e é solicitado por texto a gerar um vídeo animado. Por exemplo, insira a imagem como "personagem ninja" e a solicitação como "ninja lutando na floresta" e o modelo gerará a animação correspondente. Etapas:- Prepare o arquivo de imagem (por exemplo, formato PNG/JPG).
- Escreva prompts de texto detalhados descrevendo a ação, a cena e o estilo.
- Executa um script de inferência que especifica o caminho da imagem e os prompts:
python inference.py --image_path input_image.png --prompt "忍者在森林中战斗" --output ninja_video.mp4
- Verifique os arquivos de vídeo gerados e ajuste as dicas para otimizar os resultados.
- interpolação de quadros
A função de interpolação de quadros é usada para gerar quadros intermediários da animação para melhorar a suavidade do vídeo. Os usuários podem fornecer quadros-chave (por exemplo, quadro inicial e quadro final) e o modelo gera automaticamente quadros de transição intermediários. Etapas da operação:- Prepare a imagem do quadro-chave e coloque-a no diretório especificado.
- Execute o script de interpolação de quadros:
python frame_interpolation.py --keyframe_dir keyframes --output interpolated_video.mp4
- Verifique o vídeo de saída para garantir transições naturais entre os quadros.
- Animação guiada por imagem local
O usuário pode especificar áreas específicas da imagem para gerar animação. Por exemplo, fixar o plano de fundo e permitir que apenas o personagem se mova. Etapas da ação:- Fornece arquivos de imagem e máscara (a máscara especifica a área de animação).
- Execute o script de inicialização local:
python local_guided_animation.py --image_path scene.png --mask_path mask.png --prompt "角色在背景前挥手" --output guided_video.mp4
- Verifique a saída para ter certeza de que a área animada está conforme o esperado.
- Avaliar o uso de conjuntos de dados
O projeto fornece um conjunto de dados de avaliação de 948 videoclipes animados para testar o desempenho do modelo. Os usuários precisam solicitar o acesso ao conjunto de dados (da mesma forma que o processo de solicitação de peso do modelo). Depois de obtê-lo, o script de avaliação pode ser executado:python evaluate.py --dataset_path anisora_benchmark --model_path anisoraV2_npu
Os resultados da avaliação incluem métricas como consistência de ação e consistência de estilo, que são aplicáveis à otimização de modelos.
Operação da função em destaque
- Aprendizado por reforço para otimização (RLHF)
O AniSoraV1.0 apresenta a primeira estrutura de RLHF para geração de vídeos de anime para melhorar a qualidade da geração. Os usuários podem ajustar o modelo com os scripts de otimização de RL fornecidos:python rlhf_optimize.py --model_path anisoraV1_npu --data_path rlhf_data --output optimized_model
Os dados do RLHF devem ser preparados por você e é recomendável incluir vídeos e classificações de anime de alta qualidade.
- Suporte à NPU do Huawei Rise
O projeto foi otimizado para a NPU Rise 910B da Huawei para usuários domésticos. Certifique-se de especificar o dispositivo NPU ao executar a inferência ou o treinamento depois de instalar o Rise Development Kit:python inference.py --device npu --model_path anisoraV2_npu
cenário do aplicativo
- Produção de curtas-metragens de animação
Os criadores podem usar o Index-AniSora para gerar clipes de animação de alta qualidade. Por exemplo, insira um design de personagem e a descrição "Personagem correndo em uma cidade futurista" para gerar um curta-metragem de animação adequado para a produção de animação independente. - Criação de conteúdo VTuber
Os âncoras da VTuber podem usar o modelo para gerar vídeos animados de seus avatares, como um "ídolo virtual se apresentando no palco", para criar rapidamente conteúdo de vídeo ao vivo ou curto. - Prévia da adaptação de quadrinhos
Os cartunistas podem converter quadros estáticos de quadrinhos em vídeo em movimento, visualizar os efeitos da animação adaptada e verificar a suavidade do storyboard. - Educação e pesquisa
Os pesquisadores podem usar conjuntos de dados de avaliação e códigos de treinamento para explorar técnicas de geração de vídeo de anime, otimizar modelos ou desenvolver novos algoritmos.
QA
- Como faço para obter pesos de modelos e conjuntos de dados?
Preencha o formulário de inscrição (formato PDF) e envie-o parayangsiqian@bilibili.com
talvezxubaohan@bilibili.com
. Obtenha o link para download após a revisão. - Ele é compatível com hardware que não seja da Singularity?
Sim, o projeto é compatível com ambientes de GPU, mas o desempenho do Rise NPU é melhor. Certifique-se de instalar uma versão compatível do PyTorch. - Qual é a qualidade do vídeo gerado?
O modelo é treinado com base no CogVideoX e no Wan2.1 e, combinado com a otimização RLHF, o vídeo gerado atinge um nível avançado em termos de movimento e consistência estilística, o que é adequado para uma grande variedade de cenas de anime. - É necessário ter experiência em programação?
É necessário ter conhecimentos básicos de Python para executar o script. Os não desenvolvedores podem consultar a documentação para gerar vídeos usando modelos pré-treinados.