2 puntos por GN⁺ 2025-06-15 | Aún no hay comentarios. | Compartir por WhatsApp
  • miniDiffusion es un proyecto que reimplementa el modelo Stable Diffusion 3.5 en PyTorch puro con dependencias mínimas, y está diseñado para fines de educación, experimentación y hacking
  • La implementación completa, desde el VAE hasta DiT, incluyendo scripts de entrenamiento y de datasets, tiene unas 2,800 líneas, con el objetivo de minimizar el código necesario para reproducir Stable Diffusion 3.5 desde cero
  • El código principal del modelo está en dit.py, dit_components.py y attention.py, y separa Joint Attention, embeddings, normalización, patch embedding y funciones auxiliares de DiT
  • Los componentes incluyen VAE, CLIP, codificadores de texto T5, tokenizadores Byte-Pair y Unigram, Multi-Modal Diffusion Transformer, Flow-Matching Euler Scheduler y Logit-Normal Sampling
  • El repositorio todavía tiene funciones experimentales y necesita más pruebas, y se ofrece bajo licencia MIT para fines educativos y experimentales

Objetivo y alcance de miniDiffusion

  • miniDiffusion es un proyecto que reimplementa el modelo Stable Diffusion 3.5 en PyTorch puro y con dependencias mínimas
  • Fue creado para fines de educación, experimentación y hacking, y se enfoca en reducir la cantidad de código necesaria para reproducir Stable Diffusion 3.5 desde cero
  • La implementación, incluyendo VAE, DiT, scripts de entrenamiento y scripts de datasets, tiene unas 2,800 líneas

Estructura principal de archivos

  • El código central del modelo Stable Diffusion está en los siguientes archivos
    • dit.py: código principal del modelo DiT
    • dit_components.py: embeddings, normalización, patch embedding y funciones auxiliares de DiT
    • attention.py: implementación de Joint Attention
  • noise.py contiene el Euler Scheduler para resolver la ODE de Rectified Flow
  • Los codificadores de texto y tokenizadores están organizados en archivos separados
    • t5_encoder.py: codificador de texto T5
    • clip.py: implementación de CLIP
    • tokenizer.py: tokenizadores de T5 y CLIP
  • metrics.py implementa Fréchet Inception Distance (FID)
  • El código auxiliar de entrenamiento y de transformación de datos está en los siguientes archivos
    • common.py: funciones auxiliares para entrenamiento
    • common_ds.py: implementación de un iterable dataset que convierte datos de imágenes en datos de entrenamiento para DiT

Carpetas y checkpoints

  • La carpeta model guarda checkpoints del modelo y logs después del entrenamiento
  • La carpeta encoders guarda checkpoints de otros módulos como VAE y CLIP

Componentes incluidos

  • Módulos principales para generación de imágenes
    • VAE

    • CLIP

    • Codificadores de texto T5

      • tokenizadores Byte-Pair y Unigram
      • componentes relacionados con Stable Diffusion 3
      • modelo Multi-Modal Diffusion Transformer
      • Flow-Matching Euler Scheduler
      • Logit-Normal Sampling
      • Joint Attention
      • incluye scripts de entrenamiento e inferencia para Stable Diffusion 3

Preparación antes de la instalación y uso

  • Clonar el repositorio
git clone "https://github.com/yousef-rafat/miniDiffusion";
  • Instalar dependencias
pip install -r requirements.txt
  • Antes de instalar los checkpoints del modelo, hay que agregar un token de Hugging Face en get_checkpoints.py
python3 encoders/get_checkpoints.py

Estado y licencia

  • El repositorio todavía tiene funciones experimentales y necesita más pruebas
  • El proyecto se ofrece bajo licencia MIT y está orientado a fines educativos y experimentales

Aún no hay comentarios.

Aún no hay comentarios.