概要
miniDiffusion は、Stable Diffusion 3.5を PyTorch のみで再実装した軽量なプロジェクト。 教育・実験・ハッキング用途を重視した 最小限コード 設計。 VAEからDiT、トレーニング・データセットまで 約2800行 で構成。 各主要ファイルと役割、セットアップ手順も明確に説明。 MITライセンス、実験的要素を含むため 注意喚起 あり。
miniDiffusion概要
- Stable Diffusion 3.5 の純粋なPyTorch再実装プロジェクト
- 教育・実験・ハッキング を主目的としたミニマル設計
- VAE、DiT、トレーニング、データセット まで約2800行のシンプルなコードベース
- 依存関係を最小限に抑え、 再現性・拡張性 を重視
- MITライセンス 下で公開、自由な利用と改変が可能
主要ファイル構成
- dit.py :メインのStable Diffusionモデル実装
- dit_components.py :埋め込み、正規化、パッチ埋め込み、補助関数
- attention.py :Joint Attention実装
- noise.py :Rectified FlowのODEを解くEuler Scheduler
- t5_encoder.py/clip.py :T5・CLIPテキストエンコーダ
- tokenizer.py :Byte-Pair・Unigramトークナイザー
- metrics.py :Fréchet inception distance(FID)評価指標
- common.py :トレーニング用ヘルパー関数
- common_ds.py :画像データをDiT用に変換するイテラブルデータセット
主要フォルダ構成
- modelフォルダ :トレーニング後のモデルチェックポイント・ログ保存先
- encodersフォルダ :VAEやCLIPなど他モジュールのチェックポイント保存先
コアコンポーネント
- 画像生成モジュール :VAE、CLIP、T5テキストエンコーダの実装
- トークナイザー :Byte-Pair・Unigram方式
- SD3コンポーネント :Multi-Modal Diffusion Transformer、Flow-Matching Euler Scheduler、Logit-Normal Sampling、Joint Attention
- 学習・推論スクリプト :SD3用のトレーニング・推論
セットアップ手順
- リポジトリ取得
git clone "https://github.com/yousef-rafat/miniDiffusion"
- 依存パッケージインストール
pip install -r requirements.txt
- モデル用チェックポイント取得
- get_checkpoints.py内に Hugging Faceトークン を追加
python3 encoders/get_checkpoints.py実行
注意事項
- 実験的機能 多数、十分なテストが未実施
- 安定性や本番運用前の 追加検証 推奨
ライセンス
- MITライセンス
- 教育・実験用途向け公開