X cogvideox Projeto público
C equipe cogvideox documentação do projeto
.github/ISSUE_TEMPLATEModelos de issuespasta
finetuneExemplos e orientações de ajuste finopasta
inferenceDemonstrações de inferênciapasta
resourcesRecursos do projetopasta
satImplementação do SATpasta
toolsFerramentas de conversão e legendagempasta
.gitignoreConfiguração do projetoarquivo
.pre-commit-config.yamlConfiguração de formataçãoarquivo
LICENSELicença do repositórioarquivo
MODEL_LICENSEInformações sobre a licença do modeloarquivo
README.mdVisão geral do projetoarquivo
README_ja.mdDocumentação em japonêsarquivo
README_zh.mdDocumentação em chinêsarquivo
pyproject.tomlDependências do projetoarquivo
requirements.txtRequisitos do Pythonarquivo

cogvideox — texto e imagem para vídeo

Descreva um vídeo

Seu prompt e qualquer imagem enviada continuam na plataforma de criação.

Ou comece com um exemplo

Explore o guia do modelo e início rápido.

Navegue por cenas de exemplo ou consulte recursos do projeto.

Atualizações do projeto

  • 🔥🔥 Notícias: 2025/03/24 — O CogKit reúne ferramentas de ajuste fino e inferência para as famílias de modelos CogView4 e CogVideoX.
  • 🔥 Notícias: 2025/02/28 — O suporte à inversão DDIM foi adicionado ao CogVideoX-5B e ao CogVideoX1.5-5B.
  • 🔥 Notícias: 2025/01/08 — O código de ajuste fino de LoRA baseado em Diffusers foi atualizado com fluxos de trabalho que usam menos memória.
  • 🔥 Notícias: 2024/11/15 — O CogVideoX1.5 passou a estar disponível em uma versão baseada em Diffusers, com apenas pequenas alterações necessárias no código anterior.
  • 🔥 Notícias: 2024/11/08 — O CogVideoX1.5 ampliou a série com geração em maior resolução, de dez segundos, e suporte à conversão de imagem em vídeo em várias resoluções.
  • 🔥 Notícias: 2024/10/13 — Foi lançado um framework de ajuste fino em uma única GPU para o CogVideoX-5B, com suporte a várias resoluções.
  • 🔥 Notícias: 2024/10/10 — O relatório técnico foi atualizado com mais detalhes de treinamento e demonstrações.
  • 🔥 Notícias: 2024/09/19 — O CogVideoX-5B-I2V adicionou à série a geração de vídeo condicionada por imagem, além de texto para vídeo e continuação de vídeo.
  • 🔥 2024/09/19 — O CogVLM2-Caption, usado para descrever dados de vídeo durante o treinamento, foi lançado.
  • 🔥 2024/08/27 — O CogVideoX-5B foi lançado com otimizações de inferência destinadas a tornar o modelo maior mais acessível.
  • 🔥 2024/08/06 — Um VAE Causal 3D e o primeiro modelo CogVideoX-2B foram disponibilizados como código aberto.
  • 🌱 Trabalhos anteriores: A pesquisa original do CogVideo sobre texto para vídeo introduziu uma abordagem de grande escala baseada em Transformer para geração de vídeos.

Índice

Ir para uma seção específica:

Início rápido

Otimização de prompts

O CogVideoX foi treinado com descrições detalhadas. Um prompt claro e específico pode fazer uma diferença significativa no vídeo resultante; descreva o assunto, o cenário, a ação, a iluminação e o movimento da câmera antes de executar um modelo.

SAT

Use Python 3.10 a 3.12 nos fluxos de trabalho documentados.

A implementação do SAT inclui exemplos de inferência e ajuste fino para os pesos do modelo SAT. Ela serve como ponto de partida para pesquisadores que adaptam a estrutura do modelo.

Diffusers

Use Python 3.10 a 3.12 para os fluxos de trabalho documentados.

pip install -r requirements.txt

O exemplo de inferência do Diffusers explica os parâmetros comuns de geração. A inferência quantizada usando Diffusers e TorchAO pode reduzir os requisitos de memória, embora o desempenho real dependa do hardware e da configuração.

Introdução ao modelo

cogvideox é uma família de modelos de geração de vídeo de código aberto. A visão geral abaixo compara as variantes publicadas e suas características básicas de geração.

Nome do modelocogvideox1.5-5Bcogvideox1.5-5B-I2VCogVideoX-2BCogVideoX-5B
Data de lançamento8 de novembro de 20248 de novembro de 20246 de agosto de 202427 de agosto de 2024
Resolução do vídeo1360 × 768Dimensões variáveis dentro dos limites documentados720 × 480720 × 480
Número de quadros16N + 1; padrão 8116N + 1; padrão 818N + 1; padrão 498N + 1; padrão 49
Precisão da inferênciaBF16 recomendadoBF16 recomendadoFP16 recomendadoBF16 recomendado
Memória de uma única GPUDepende da implementação e das otimizaçõesDepende da implementação e das otimizaçõesDepende da implementação e das otimizaçõesDepende da implementação e das otimizações
Uso de múltiplas GPUsCompatível com os fluxos de trabalho aplicáveisCompatível com os fluxos de trabalho aplicáveisDepende do fluxo de trabalhoDepende do fluxo de trabalho
Idioma do promptInglêsInglêsInglêsInglês
Limite de tokens do prompt224 tokens224 tokens226 tokens226 tokens
Duração do vídeo5 ou 10 segundos5 ou 10 segundos6 segundos6 segundos
Taxa de quadros16 quadros / segundo16 quadros / segundo8 quadros / segundo8 quadros / segundo
Codificação posicional3d_rope_pos_embed3d_rope_pos_embed3d_sincos_pos_embed3d_rope_pos_embed
Explorar modelosOpções do modeloOpções de imagem para vídeoOpções do modeloOpções do modelo

Explicação dos dados

  • Os valores de memória publicados dependem da implementação, da arquitetura do dispositivo, da precisão e das otimizações ativadas. Eles não devem ser tratados como garantias para todas as GPUs.
  • O descarregamento sequencial para a CPU, o fatiamento do VAE e o particionamento do VAE podem reduzir o uso máximo de memória, com uma possível redução na velocidade.
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
  • A inferência com várias GPUs requer uma configuração própria; o descarregamento sequencial para a CPU não é usado nessa configuração.
  • A inferência INT8 pode atender a dispositivos com menos memória, mas pode ser executada mais lentamente.
  • O cogvideox-2B foi treinado em FP16; as variantes 5B foram treinadas em BF16.
  • As ferramentas de quantização podem reduzir as necessidades de memória do codificador de texto, do transformador e do VAE. Os resultados variam conforme o hardware.
  • Os prompts de inferência documentados estão em inglês; prompts em outros idiomas podem ser traduzidos antes do uso.

Estrutura do projeto

O projeto de código aberto organiza exemplos de uso básico, inferência, conversão de modelos e ajuste fino para a família de modelos CogVideoX.

Início rápido com o Colab

Os notebooks de exemplo abrangem vários pontos de partida:

  • geração de texto para vídeo com o CogVideoX-5B.
  • inferência quantizada de texto para vídeo.
  • geração de imagem para vídeo com o CogVideoX-5B.
  • fluxos de trabalho de vídeo para vídeo com o CogVideoX-5B.

Inferência

  • Demonstração de CLI: parâmetros comuns de geração e um exemplo de inferência pela linha de comando.
  • Demonstração de quantização: configuração de inferência de modelos com menor uso de memória.
  • Demonstração de VAE: execução do autocodificador de vídeo separadamente.
  • Demonstração do Space: uma interface com fluxos de trabalho opcionais de interpolação de quadros e super-resolução.
Uma interface web realista e escura de geração de vídeos, com controles de prompt à esquerda e uma prévia de vídeo de um ciclista à direita.
  • Conversão de prompts: expansão de uma entrada curta do usuário em descrições mais longas, adequadas ao modelo.
  • Demonstração web: uma interface simples no navegador para explorar a geração de vídeos.

ajuste fino

  • Os exemplos de ajuste fino descrevem o fluxo de trabalho do CogVideoX baseado em Diffusers.

sat

  • A pasta SAT contém exemplos de inferência e ajuste fino com pesos de modelos para pesquisadores.

Ferramentas

As ferramentas de apoio abrangem conversão de modelos, geração de legendas, gerenciamento de adaptadores e inferência paralela.

  • Conversão de pesos de modelos de SAT para Diffusers.
  • Geração de legendas para vídeos.
  • Exportação e carregamento de adaptadores LoRA ajustados.
  • Experimentos de geração com auxílio de prompts.
  • Inferência paralela em várias GPUs.

CogVideo (ICLR ’23)

A pesquisa anterior sobre o CogVideo investigou o pré-treinamento em larga escala de Transformers para geração de vídeo a partir de texto.

O CogVideo demonstrou a geração de vídeos com uma taxa de quadros relativamente alta. Um exemplo de quatro segundos e 32 quadros é apresentado abaixo.

Uma sequência de quadros mostrando uma pessoa correndo pela água rasa do mar junto a uma praia. Exemplos em uma tira de filme mostrando esqui, corrida, uma refeição, o horizonte de uma cidade, um leão e uma dançarina animada.
cogvideo.mp4 · cenas de exemplo
Uma folha de contatos com diversas cenas cinematográficas de vídeo, incluindo pessoas ao ar livre, um animal, dança e paisagens.

Estes exemplos ilustram a pesquisa anterior sobre geração de vídeo a partir de texto. Os prompts originais dos exemplos foram escritos em chinês.

Citação

Se a pesquisa for útil para o seu trabalho, cite o artigo relevante sobre CogVideoX ou CogVideo.

@article{yang2024cogvideox,
  title={CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer},
  author={Yang, Zhuoyi and others},
  journal={arXiv preprint arXiv:2408.06072},
  year={2024}
}

@article{hong2022cogvideo,
  title={CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers},
  author={Hong, Wenyi and others},
  journal={arXiv preprint arXiv:2205.15868},
  year={2022}
}

Licença dos modelos

O código do repositório e o modelo CogVideoX-2B são publicados sob a licença Apache 2.0. Os pesos dos modelos CogVideoX-5B, incluindo as variantes de texto para vídeo e de imagem para vídeo, têm uma licença de modelo separada. Consulte os termos aplicáveis antes de usar os pesos dos modelos.

Comece a criar
Comece a criar