Repolode
lucidrains

lucidrains/denoising-diffusion-pytorch

Implementación en PyTorch de modelos probabilísticos de difusión con eliminación de ruido para entrenar modelos generativos de imágenes y secuencias 1D.

Estrellas
10,710
Forks
1,283
Issues abiertos
169
Último commit
hace 23 días

¿Qué es?

Este proyecto es una implementación en PyTorch de modelos probabilísticos de difusión con eliminación de ruido (DDPM), un enfoque de modelado generativo que aprende a invertir un proceso gradual de incorporación de ruido. Incluye una arquitectura U-Net y una clase `GaussianDiffusion` que gestiona la incorporación de ruido en el proceso directo, la función de pérdida de entrenamiento y el muestreo con el modelo entrenado.

Además del flujo de trabajo principal para imágenes, incluye una clase `Trainer` que recibe una carpeta de imágenes y se encarga de cargar los datos, ejecutar los ciclos de entrenamiento, registrar muestras periódicamente, guardar checkpoints y calcular FID de forma opcional. También admite Hugging Face Accelerate para el entrenamiento con varias GPU, precisión mixta mediante `amp` y muestreo más rápido al estilo DDIM con menos pasos de tiempo. Incluye una U-Net 1D y una variante de difusión 1D para datos de secuencias, y `XMWrapper` añade el cálculo de la pérdida para múltiples candidatos.

La biblioteca se puede instalar desde PyPI y está dirigida a investigadores y desarrolladores que buscan una implementación de referencia legible y fácil de modificar para experimentar con modelos de difusión.

Funciones clave

  • 01Implementa en PyTorch el objetivo de entrenamiento de DDPM y el procedimiento de muestreo.
  • 02Incluye una arquitectura U-Net configurable con atención flash opcional.
  • 03La clase `Trainer` gestiona datasets de imágenes organizados en carpetas, checkpoints y el registro de muestras.
  • 04Admite entrenamiento con varias GPU mediante Hugging Face Accelerate y precisión mixta.
  • 05Incluye muestreo al estilo DDIM con menos pasos y evaluación de FID durante el entrenamiento.
  • 06Ofrece una U-Net 1D y una variante de difusión para datos de secuencias.

Casos de uso

  • Entrenar un generador de imágenes pequeño con una carpeta personalizada de imágenes.
  • Estudiar o modificar el código central de entrenamiento y muestreo de difusión.
  • Crear prototipos de modelos de difusión para datos de secuencias unidimensionales.
  • Ejecutar experimentos de entrenamiento de difusión con varias GPU mediante Accelerate.

Inicio rápido

  1. 1

    Instala el paquete desde PyPI

    pip install denoising_diffusion_pytorch
  2. 2

    Crea un modelo y un objeto de difusión, y luego entrena con una carpeta de imágenes usando la clase Trainer

  3. 3

    Inicia el entrenamiento

    trainer.train()

Antes de usarlo

  • Entrenar con imágenes de tamaños realistas requiere una GPU y mucho tiempo (el ejemplo utiliza 700000 pasos).

Temas

Preguntas frecuentes

¿Qué es denoising-diffusion-pytorch?
Implementación en PyTorch de modelos probabilísticos de difusión con eliminación de ruido para entrenar modelos generativos de imágenes y secuencias 1D. Este proyecto es una implementación en PyTorch de modelos probabilísticos de difusión con eliminación de ruido (DDPM), un enfoque de modelado generativo que aprende a invertir un proceso gradual de incorporación de ruido. Incluye una arquitectura U-Net y una clase `GaussianDiffusion` que gestiona la incorporación de ruido en el proceso directo, la función de pérdida de entrenamiento y el muestreo con el modelo entrenado.
¿denoising-diffusion-pytorch es gratuito? ¿Qué licencia tiene?
denoising-diffusion-pytorch es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿denoising-diffusion-pytorch sigue mantenido?
Mantenimiento activo. El último commit de denoising-diffusion-pytorch fue el 29 sept 2026.
¿Para qué puedo usar denoising-diffusion-pytorch?
Entrenar un generador de imágenes pequeño con una carpeta personalizada de imágenes. Estudiar o modificar el código central de entrenamiento y muestreo de difusión. Crear prototipos de modelos de difusión para datos de secuencias unidimensionales. Ejecutar experimentos de entrenamiento de difusión con varias GPU mediante Accelerate.
¿Cómo se instala denoising-diffusion-pytorch?
Instala el paquete desde PyPI: pip install denoising_diffusion_pytorch Crea un modelo y un objeto de difusión, y luego entrena con una carpeta de imágenes usando la clase Trainer Inicia el entrenamiento: trainer.train()
¿Dónde consigo denoising-diffusion-pytorch?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lucidrains/denoising-diffusion-pytorch

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados