Biblioteca de PyTorch con modelos de difusión preentrenados, planificadores de ruido y componentes para generar imágenes, video y audio.
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
Instala el paquete desde PyPI
pip install denoising_diffusion_pytorch - 2
Crea un modelo y un objeto de difusión, y luego entrena con una carpeta de imágenes usando la clase Trainer
- 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
Interfaz gráfica de nodos, API y backend para ejecutar modelos de difusión localmente y generar imágenes, video, audio y contenido 3D.
Motor open source de modelos de difusión para generar imágenes, video y audio, con inferencia y entrenamiento en equipos con poca VRAM.
Modelo de difusión de texto a imagen de 5B parámetros y código abierto, enfocado en representar texto con precisión, controlar la composición con JSON y ajustar el modelo.
Implementación en PyTorch del Vision Transformer (ViT) y muchas de sus variantes para clasificación de imágenes y otras tareas de visión.
Framework de inferencia de redes neuronales de alto rendimiento en C++ para ejecutar modelos de deep learning en dispositivos móviles, integrados y de escritorio.