2 điểm bởi GN⁺ 2025-06-15 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • miniDiffusion là dự án tái triển khai mô hình Stable Diffusion 3.5 bằng PyTorch thuần với ít phụ thuộc nhất, được thiết kế cho mục đích giáo dục, thử nghiệm và hacking
  • Toàn bộ phần triển khai có quy mô khoảng 2.800 dòng, từ VAE đến DiT, các script huấn luyện và dataset, theo hướng tối giản hóa lượng mã cần thiết để tái tạo Stable Diffusion 3.5 từ đầu
  • Mã mô hình chính nằm trong dit.py, dit_components.py, attention.py, với Joint Attention, embedding, chuẩn hóa, patch embedding và các hàm phụ trợ cho DiT được tách riêng
  • Các thành phần bao gồm VAE, CLIP, bộ mã hóa văn bản T5, tokenizer Byte-Pair và Unigram, Multi-Modal Diffusion Transformer, Flow-Matching Euler Scheduler, Logit-Normal Sampling
  • Kho lưu trữ vẫn còn các tính năng thử nghiệm và cần thêm kiểm thử; được cung cấp theo MIT License cho mục đích giáo dục và thử nghiệm

Mục tiêu và phạm vi của miniDiffusion

  • miniDiffusion là dự án triển khai lại mô hình Stable Diffusion 3.5 bằng PyTorch thuần với ít phụ thuộc nhất
  • Được tạo ra cho mục đích giáo dục, thử nghiệm và hacking, tập trung vào việc giảm lượng mã cần thiết để tái tạo Stable Diffusion 3.5 từ đầu
  • Quy mô triển khai khoảng 2.800 dòng, bao gồm VAE, DiT, script huấn luyện và script dataset

Cấu trúc các tệp chính

  • Mã cốt lõi của mô hình Stable Diffusion nằm trong các tệp sau
    • dit.py: mã mô hình DiT chính
    • dit_components.py: embedding, chuẩn hóa, patch embedding, hàm phụ trợ cho DiT
    • attention.py: triển khai Joint Attention
  • noise.py chứa Euler Scheduler để giải ODE của Rectified Flow
  • Bộ mã hóa văn bản và tokenizer được tổ chức thành các tệp riêng
    • t5_encoder.py: bộ mã hóa văn bản T5
    • clip.py: triển khai CLIP
    • tokenizer.py: tokenizer T5 và CLIP
  • metrics.py triển khai Fréchet Inception Distance(FID)
  • Mã hỗ trợ huấn luyện và mã chuyển đổi dữ liệu nằm trong các tệp sau
    • common.py: hàm phụ trợ cho huấn luyện
    • common_ds.py: triển khai iterable dataset để chuyển dữ liệu ảnh thành dữ liệu dùng cho huấn luyện DiT

Thư mục và checkpoint

  • Thư mục model lưu checkpoint mô hình và log sau khi huấn luyện
  • Thư mục encoders lưu checkpoint của các mô-đun khác như VAE, CLIP

Các thành phần được bao gồm

  • Mô-đun cốt lõi cho sinh ảnh
    • VAE

    • CLIP

    • T5 Text Encoders

      • Tokenizer Byte-Pair và Unigram
      • Các thành phần liên quan đến Stable Diffusion 3
      • Mô hình Multi-Modal Diffusion Transformer
      • Flow-Matching Euler Scheduler
      • Logit-Normal Sampling
      • Joint Attention
      • Bao gồm các script huấn luyện và suy luận cho Stable Diffusion 3

Cài đặt và chuẩn bị trước khi sử dụng

  • Clone kho lưu trữ
git clone "https://github.com/yousef-rafat/miniDiffusion";
  • Cài đặt các phụ thuộc
pip install -r requirements.txt
  • Trước khi cài đặt checkpoint mô hình, cần thêm Hugging Face Token vào get_checkpoints.py
python3 encoders/get_checkpoints.py

Trạng thái và giấy phép

  • Kho lưu trữ vẫn còn các tính năng thử nghiệm và cần thêm kiểm thử
  • Dự án được cung cấp theo MIT License và phục vụ mục đích giáo dục, thử nghiệm

Chưa có bình luận nào.

Chưa có bình luận nào.