Repolode
lucidrains

lucidrains/denoising-diffusion-pytorch

Implementação em PyTorch de modelos probabilísticos de difusão para treinar modelos generativos de imagens e sequências 1D.

Estrelas
10,710
Forks
1,283
Issues abertas
169
Último commit
há 23 dias

O que é?

Este projeto é uma implementação em PyTorch de modelos probabilísticos de difusão, uma abordagem de modelagem generativa que aprende a reverter um processo gradual de adição de ruído. Ele oferece uma arquitetura U-Net e uma classe GaussianDiffusion, que gerencia a adição de ruído no processo direto, a função de perda do treinamento e a geração de amostras com o modelo treinado.

Além do pipeline principal para imagens, o projeto inclui uma classe Trainer que recebe uma pasta de imagens e cuida do carregamento dos dados, dos loops de treinamento, do registro periódico de amostras, dos checkpoints e do cálculo opcional de FID. Também oferece suporte ao Hugging Face Accelerate para treinamento em várias GPUs, precisão mista via amp e geração de amostras mais rápida no estilo DDIM, com menos passos de tempo. Inclui ainda uma U-Net 1D e uma variante de difusão 1D para dados sequenciais, além de um XMWrapper que calcula a função de perda com múltiplos candidatos.

A biblioteca pode ser instalada pelo PyPI e é voltada a pesquisadores e desenvolvedores que procuram uma implementação de referência legível e fácil de modificar para experimentar com modelos de difusão.

Recursos principais

  • 01Implementa o objetivo de treinamento e o procedimento de geração de amostras do DDPM em PyTorch.
  • 02Oferece uma arquitetura U-Net configurável com opção de flash attention.
  • 03A classe Trainer gerencia conjuntos de dados de imagens organizados em pastas, checkpoints e registro de amostras.
  • 04Oferece suporte a treinamento em várias GPUs com Hugging Face Accelerate e a precisão mista.
  • 05Inclui geração de amostras no estilo DDIM com menos etapas e avaliação de FID durante o treinamento.
  • 06Oferece uma U-Net 1D e uma variante de difusão para dados sequenciais.

Casos de uso

  • Treinar um pequeno gerador de imagens com uma pasta personalizada de imagens.
  • Estudar ou modificar o código central de treinamento e geração de amostras por difusão.
  • Prototipar modelos de difusão para dados de sequências unidimensionais.
  • Executar experimentos de treinamento de difusão em várias GPUs com Accelerate.

Início rápido

  1. 1

    Instale o pacote pelo PyPI

    pip install denoising_diffusion_pytorch
  2. 2

    Crie um modelo e um objeto de difusão e, em seguida, treine com uma pasta de imagens usando a classe Trainer

  3. 3

    Inicie o treinamento

    trainer.train()

Antes de usar

  • Treinar com imagens de tamanhos realistas requer uma GPU e bastante tempo (o exemplo usa 700000 etapas).

Tópicos

Perguntas frequentes

O que é denoising-diffusion-pytorch?
Implementação em PyTorch de modelos probabilísticos de difusão para treinar modelos generativos de imagens e sequências 1D. Este projeto é uma implementação em PyTorch de modelos probabilísticos de difusão, uma abordagem de modelagem generativa que aprende a reverter um processo gradual de adição de ruído. Ele oferece uma arquitetura U-Net e uma classe GaussianDiffusion, que gerencia a adição de ruído no processo direto, a função de perda do treinamento e a geração de amostras com o modelo treinado.
denoising-diffusion-pytorch é gratuito? Qual é a licença?
denoising-diffusion-pytorch é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
denoising-diffusion-pytorch ainda é mantido?
Manutenção ativa. O último commit de denoising-diffusion-pytorch foi em 29 de set. de 2026.
Para que posso usar denoising-diffusion-pytorch?
Treinar um pequeno gerador de imagens com uma pasta personalizada de imagens. Estudar ou modificar o código central de treinamento e geração de amostras por difusão. Prototipar modelos de difusão para dados de sequências unidimensionais. Executar experimentos de treinamento de difusão em várias GPUs com Accelerate.
Como instalar denoising-diffusion-pytorch?
Instale o pacote pelo PyPI: pip install denoising_diffusion_pytorch Crie um modelo e um objeto de difusão e, em seguida, treine com uma pasta de imagens usando a classe Trainer Inicie o treinamento: trainer.train()
Onde consigo denoising-diffusion-pytorch?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lucidrains/denoising-diffusion-pytorch

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados