Introdução geral
O ConsisID é um projeto de código aberto desenvolvido pelo grupo de Yuan Rong na Universidade de Pequim, com o objetivo de obter a geração de texto para vídeo consistente com a identidade (IPT2V) por meio de técnicas de decomposição de frequência. O núcleo do projeto é um modelo baseado no DiT (Diffusion Transformer), que é capaz de manter a consistência da identidade dos caracteres ao gerar vídeos. O projeto ConsisID não só fornece o código e o conjunto de dados completos, mas também inclui diretrizes detalhadas de instalação e uso para facilitar o início rápido dos usuários. Esse projeto é de grande importância no campo da geração de vídeos, especialmente em cenários de aplicativos em que a consistência dos caracteres precisa ser mantida, como produção de filmes e televisão, realidade virtual e assim por diante.
Lista de funções
- Geração de vídeo consistente com a identidadeTécnica de decomposição de frequência: Uma técnica de decomposição de frequência é usada para gerar vídeos que sejam consistentes com a descrição do texto de entrada e mantenham a identidade dos caracteres.
- Código-fonte aberto e conjuntos de dadosCódigo completo e conjuntos de dados parciais são fornecidos para facilitar o desenvolvimento e a pesquisa secundários.
- Suporte a várias plataformasSuporte para execução em sistemas Windows e Linux, fornecendo extensões Jupyter Notebook e ComfyUI.
- Otimização para prompts de alta qualidadeOtimize a entrada de palavras de prompt de texto usando o GPT-4o para melhorar a qualidade do vídeo gerado.
- Otimização da memória da GPUOtimização da memória da GPU: Oferece várias opções de otimização da memória da GPU para atender a diferentes configurações de hardware.
- Contribuições da comunidadeSuporte a plug-ins e extensões desenvolvidos pela comunidade que aprimoram a funcionalidade e a experiência de uso.
Usando a Ajuda
Configuração do ambiente
- Clone o código do projeto:
git clone --depth=1 https://github.com/PKU-YuanGroup/ConsisID.git
cd ConsisID
- Criar e ativar um ambiente virtual:
conda create -n consisid python=3.11.0
conda activate consisid
- Instale a dependência:
pip install -r requirements.txt
Download dos pesos do modelo
- Faça o download dos pesos do HuggingFace:
huggingface-cli download --repo-type model BestWishYsh/ConsisID-preview --local-dir ckpts
- Ou faça o download no WiseModel:
git lfs install
git clone https://www.wisemodel.cn/SHYuanBest/ConsisID-Preview.git
exemplo de execução
- Execute o exemplo da interface do usuário da Web:
python app.py
- Executar raciocínio de linha de comando:
python infer.py --model_path BestWishYsh/ConsisID-preview
Otimização de palavras-chave
Use o GPT-4o para otimizar a entrada de palavras de prompt de texto, por exemplo, palavra de prompt original: "Um homem está tocando violão". Palavra-chave otimizada: "O vídeo mostra um homem em pé ao lado de um avião, falando ao celular. Ele está usando óculos escuros, um top preto e uma expressão séria. O avião tem uma faixa verde na lateral e um grande motor na parte de trás."
Otimização da memória da GPU
Se você não tiver várias GPUs ou memória de GPU suficiente, poderá ativar as seguintes opções:
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
Observação: a ativação dessas opções aumenta o tempo de inferência e pode reduzir a qualidade da geração.
Pré-processamento de dados
Consulte o guia de pré-processamento de dados do projeto para obter os dados necessários para treinar o ConsisID. Se você precisar treinar modelos de geração de texto para imagem e vídeo, será necessário organizar o conjunto de dados no seguinte formato:
datasets/
├── captions/
Dados do dataname_1.json
│ ├─── dataname_2.json
├─ dataname_1/ ├─ captions/ │ ├─ refine_1.json
│ ├── refine_bbox_jsons/
│ ├── track_masks_data/ ├── track_masks_data/ ├── track_masks_data/
│ ├─── vídeos/
├── dataname_2/ │── refine_bbox_jsons/ ├── track_masks_data/
│ ├── refine_bbox_jsons/ │ ├── track_masks_data/ ├── videos/
│ ├── track_masks_data/ ├─── videos/ ├── videos/
│ ├─── vídeos/ ├─── dataname_2/ │── refine_bbox_jsons/
├── ...
├─── total_train_data.txt
treinamento de modelos
- Definir os hiperparâmetros:
bash train_single_rank.sh
- Iniciar o treinamento:
bash train_multi_rank.sh
Contribuições da comunidade
Agradecemos aos desenvolvedores da comunidade pelos plug-ins e extensões:
- ComfyUI-ConsisIDWrapper
- Jupyter-ConsisID
- Windows-ConsisID
Integração rápida do ConsisID
Experiência on-line:Cara de abraço
Windows Installer:Cara de abraço Inteligência Inicial IA
Nó da ComfyUI:ComfyUI-CogVideoXWrapper openart: https://openart.ai/workflows/TxIQ6lwGkRx2zQiYjvE5