2 Punkte von GN⁺ 2025-06-15 | Noch keine Kommentare. | Auf WhatsApp teilen
  • miniDiffusion ist ein Projekt, das das Stable-Diffusion-3.5-Modell in reinem PyTorch mit minimalen Abhängigkeiten neu implementiert und für Bildungs-, Experimentier- und Hacking-Zwecke konzipiert ist
  • Die gesamte Implementierung umfasst von der VAE über DiT bis hin zu Trainings- und Datensatz-Skripten rund 2.800 Zeilen und zielt darauf ab, den für die Reproduktion von Stable Diffusion 3.5 von Grund auf erforderlichen Code zu minimieren
  • Der zentrale Modellcode befindet sich in dit.py, dit_components.py und attention.py; dort sind Joint Attention, Embeddings, Normalisierung, Patch-Embedding und DiT-Hilfsfunktionen aufgeteilt
  • Zu den Komponenten gehören VAE, CLIP, T5-Text-Encoder, Byte-Pair- und Unigram-Tokenizer, ein Multi-Modal Diffusion Transformer, ein Flow-Matching-Euler-Scheduler und Logit-Normal Sampling
  • Das Repository enthält noch experimentelle Funktionen, benötigt weitere Tests und wird unter der MIT License für Bildungs- und Experimentierzwecke bereitgestellt

Zweck und Umfang von miniDiffusion

  • miniDiffusion ist ein Projekt, das das Stable-Diffusion-3.5-Modell mit reinem PyTorch und minimalen Abhängigkeiten neu implementiert
  • Es wurde für Bildungs-, Experimentier- und Hacking-Zwecke entwickelt und konzentriert sich darauf, den Umfang des Codes zu reduzieren, der nötig ist, um Stable Diffusion 3.5 von Grund auf zu reproduzieren
  • Der Umfang der Implementierung beträgt einschließlich VAE, DiT, Trainingsskripten und Datensatzskripten etwa 2.800 Zeilen

Wichtige Dateistruktur

  • Der Kerncode des Stable-Diffusion-Modells befindet sich in den folgenden Dateien
    • dit.py: Code des Haupt-DiT-Modells
    • dit_components.py: Embeddings, Normalisierung, Patch-Embedding und DiT-Hilfsfunktionen
    • attention.py: Implementierung von Joint Attention
  • noise.py enthält einen Euler Scheduler zum Lösen der ODE von Rectified Flow
  • Text-Encoder und Tokenizer sind in separaten Dateien organisiert
    • t5_encoder.py: T5-Text-Encoder
    • clip.py: CLIP-Implementierung
    • tokenizer.py: T5- und CLIP-Tokenizer
  • metrics.py implementiert die Fréchet Inception Distance (FID)
  • Hilfscode für das Training und Code zur Datentransformation befinden sich in den folgenden Dateien
    • common.py: Hilfsfunktionen für das Training
    • common_ds.py: Implementierung eines iterable dataset, das Bilddaten in Trainingsdaten für DiT umwandelt

Ordner und Checkpoints

  • Der Ordner model speichert Modell-Checkpoints und Logs nach dem Training
  • Der Ordner encoders speichert Checkpoints anderer Module wie VAE und CLIP

Enthaltene Komponenten

  • Kernmodule für die Bildgenerierung
    • VAE

    • CLIP

    • T5 Text Encoders

      • Byte-Pair- und Unigram-Tokenizer
      • Stable-Diffusion-3-bezogene Komponenten
      • Multi-Modal Diffusion Transformer Model
      • Flow-Matching Euler Scheduler
      • Logit-Normal Sampling
      • Joint Attention
      • Enthält Trainings- und Inferenzskripte für Stable Diffusion 3

Installation und Vorbereitung vor der Nutzung

  • Repository klonen
git clone "https://github.com/yousef-rafat/miniDiffusion";
  • Abhängigkeiten installieren
pip install -r requirements.txt
  • Vor der Installation der Modell-Checkpoints muss in get_checkpoints.py ein Hugging Face Token hinzugefügt werden
python3 encoders/get_checkpoints.py

Status und Lizenz

  • Das Repository enthält noch experimentelle Funktionen und benötigt weitere Tests
  • Das Projekt wird unter der MIT License bereitgestellt und ist für Bildungs- und Experimentierzwecke gedacht

Noch keine Kommentare.

Noch keine Kommentare.