Introdução geral
O VideoGrain é um projeto de código-fonte aberto voltado para a edição de vídeo com vários grãos, desenvolvido pela equipe da xAI e hospedado no GitHub. Esse projeto foi criado a partir do artigo "VideoGrain: Modulating Space-Time Attention for Multi-Grained Video Editing", que foi selecionado para a conferência ICLR 2025. Ele realiza a edição refinada de conteúdo de vídeo nos níveis de categoria, instância e local, modulando o mecanismo de atenção espaço-temporal no modelo de difusão. Em comparação com os métodos tradicionais, o VideoGrain resolve o problema de alinhamento semântico do controle de texto e região e o problema de acoplamento de recursos, e pode concluir a edição de alta qualidade sem treinamento adicional. O projeto fornece código completo, guia de instalação e modelos pré-treinados para desenvolvedores, pesquisadores e entusiastas de edição de vídeo, e já atraiu a atenção das comunidades acadêmicas e de código aberto.
Lista de funções
- Edição de vídeo com granularidade múltiplaSuporte para modificação precisa de categorias (por exemplo, substituição de "humano" por "robô"), instâncias (por exemplo, objetos específicos) e detalhes locais (por exemplo, movimentos das mãos) em um vídeo.
- Sem capacidade de edição de amostrasNão há necessidade de treinar novamente para um vídeo específico, basta digitar os prompts de texto para concluir a edição.
- modulação da atenção espaço-temporalMelhorar a precisão da edição e a qualidade do vídeo, aprimorando a atenção cruzada (texto para região) e a auto-atenção (separação de recursos dentro da região).
- Código-fonte aberto e modelagemCódigo de implementação completo e modelos pré-treinados são fornecidos para facilitar a reprodução e a extensão pelos usuários.
- modelo compatível com difusãoBaseado em estruturas como difusores e FateZero para facilitar a integração nos processos de geração de vídeo existentes.
- Suporte a vários documentosVídeo: pode processar vídeos, imagens e outros conteúdos carregados pelos usuários e gerar os resultados do vídeo editado.
Usando a Ajuda
O VideoGrain requer algum conhecimento de programação e suporte de hardware, mas seus procedimentos de instalação e operação estão descritos em detalhes no repositório do GitHub. Abaixo está um guia detalhado de instalação e uso para ajudar os usuários a começar rapidamente.
Processo de instalação
- Criação de um ambiente Conda
Crie um ambiente autônomo do Python 3.10 e ative-o digitando o seguinte comando no terminal:
conda create -n videograin python=3.10
conda activate videograin
Certifique-se de que o Conda esteja instalado; caso contrário, acesse o site do Anaconda para fazer o download.
- Instalação do PyTorch e das dependências relacionadas
O VideoGrain depende do PyTorch e de seu suporte a CUDA; recomenda-se a aceleração da GPU. Execute o seguinte comando para instalá-lo:
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia
pip install --pre -U xformers==0.0.27
Os xformers podem ser otimizados em termos de memória e velocidade; se não forem necessários, ignore-os.
- Instalação de dependências adicionais
Execute o seguinte comando na raiz do repositório para instalar todas as bibliotecas dependentes:
pip install -r requirements.txt
Certifique-se de que a Internet esteja aberta, pois o acesso científico à Internet pode ser necessário para fazer o download de alguns dos pacotes.
- Download do modelo pré-treinado
O VideoGrain requer pesos de modelo, como o Stable Diffusion 1.5 e o ControlNet. Execute o script fornecido no repositório:
bash download_all.sh
Isso fará o download automático do modelo básico para o diretório especificado. Para downloads manuais, acesse os links do Hugging Face ou do Google Drive (consulte o README para obter detalhes).
- Preparar os pesos do pré-processador ControlNet
Faça o download dos pesos do anotador (por exemplo, DW-Pose, depth_midas, etc.), com cerca de 4 GB. use o seguinte comando:
gdown https://drive.google.com/file/d/1dzdvLnXWeMFR3CE2Ew0Bs06vyFSvnGXA/view?usp=drive_link
tar -zxvf videograin_data.tar.gz
Descompacte os arquivos e coloque-os no diretório . /annotator/ckpts
Catálogo.
Uso
Após a conclusão da instalação, os usuários podem executar o VideoGrain para edição de vídeo por meio da linha de comando. Veja a seguir o fluxo de operação das principais funções:
1. edição de vídeo com granularidade múltipla
- Preparação do arquivo de entrada
Coloque o arquivo de vídeo a ser editado no diretório do projeto (por exemplo. /input_video.mp4
). Suporta formatos comuns, como MP4, AVI. - Preparação de alertas de texto
Especifique instruções de edição no script, por exemplo:
prompt = "Substitua o carro do vídeo por um Porsche"
Suporta substituição de categoria (por exemplo, "Carro" para "Porsche"), modificação de instância (por exemplo, "Personagem específico" para "Homem de Ferro ") e ajustes locais (por exemplo, "movimento da mão" para "aceno de mão").
- Execute o comando edit
Digite-o no terminal:
python edit_video.py --input . /input_video.mp4 --prompt "Substitua o carro no vídeo por um Porsche" --output . /output_video.mp4
Após a edição, o resultado é salvo em . /output_video.mp4
.
2. edição de amostra zero
- Edição direta sem treinamento
O ponto forte do VideoGrain é seu recurso de amostragem zero. Os usuários só precisam fornecer vídeos e dicas, sem necessidade de pré-treinamento. Exemplo:
python edit_video.py --input . /sample_video.mp4 --prompt "Substituir cachorro por gato" --output . /edited_video.mp4
- Parâmetros de ajuste
aceitável--Força
O parâmetro controla a intensidade da edição (0,0-1,0, padrão 0,8) como:
python edit_video.py --input . /sample_video.mp4 --prompt "Substituir cachorro por gato" --strength 0.6
3. modulação da atenção temporal
- Controle aprimorado de texto para área
O VideoGrain otimiza automaticamente a atenção cruzada para garantir que os avisos afetem apenas a área de destino. Por exemplo, se a sugestão for "Change character's clothing to red" (Mude a roupa do personagem para vermelho), os fundos externos não serão afetados. - Separação elevada de recursos
O mecanismo de autoatenção aumenta a consistência dos detalhes dentro das regiões e reduz a interferência entre as regiões. Os usuários não precisam fazer ajustes manuais; eles entram em vigor automaticamente no tempo de execução.
Precauções de manuseio
- Requisitos de hardware
Recomenda-se o uso de GPUs NVIDIA (por exemplo, A100 ou RTX 3090) com pelo menos 12 GB de memória de vídeo. - Sugestões de palavras-chave
Os avisos precisam ser específicos e claros, por exemplo, "Substitua o personagem à esquerda por um robô" é melhor do que o vago "Edite o personagem". - Depuração e registro em log
Se algo der errado, verifique o. /logs
ou adicionando o arquivo de registro após o comando--verbose
Exibir saída detalhada.
Funções em destaque
- Edição de várias granularidades em ação
Supondo que o usuário queira substituir "bicicleta" por "motocicleta" em um vídeo, basta inserir o caminho do vídeo e a palavra-chave, e o VideoGrain reconhecerá todas as bicicletas e as substituirá por motocicletas, mantendo a ação e o plano de fundo consistentes. - Extensões de código aberto
Modificável pelo usuárioedit_video.py
parâmetros de modelo na estrutura de difusores ou para adicionar novos recursos com base na estrutura de difusores, como suporte para resoluções mais altas ou mais tipos de edição. - Suporte à comunidade
Os repositórios do GitHub fornecem quadros de problemas nos quais os usuários podem enviar problemas ou ver o que os outros fizeram.
Com as etapas acima, os usuários podem começar a usar o VideoGrain rapidamente e concluir tarefas de edição de vídeo que variam de simples substituições a ajustes locais complexos.