• miniDiffusion เป็นโปรเจ็กต์ที่นำโมเดล Stable Diffusion 3.5 มาสร้างใหม่ด้วย PyTorch ล้วนและมี dependency น้อยที่สุด โดยออกแบบมาสำหรับการเรียนรู้ การทดลอง และการแฮ็ก
  • การติดตั้งใช้งานทั้งหมดมีขนาดราว 2,800 บรรทัด ตั้งแต่ VAE, DiT ไปจนถึงสคริปต์ฝึกและสคริปต์ชุดข้อมูล โดยมุ่งลดโค้ดที่จำเป็นต่อการทำซ้ำ Stable Diffusion 3.5 ตั้งแต่ต้นให้น้อยที่สุด
  • โค้ดโมเดลหลักอยู่ใน dit.py, dit_components.py, attention.py โดยแยก Joint Attention, embedding, normalization, patch embedding และฟังก์ชันช่วยของ DiT ออกจากกัน
  • องค์ประกอบที่มีรวมถึง VAE, CLIP, ตัวเข้ารหัสข้อความ T5, tokenizer แบบ Byte-Pair และ Unigram, Multi-Modal Diffusion Transformer, Flow-Matching Euler Scheduler และ Logit-Normal Sampling
  • ในคลังเก็บยังมี ฟีเจอร์เชิงทดลอง อยู่และยังต้องการการทดสอบเพิ่มเติม โดยเผยแพร่ภายใต้ MIT License เพื่อการศึกษาและการทดลอง

เป้าหมายและขอบเขตของ miniDiffusion

  • miniDiffusion เป็นโปรเจ็กต์ที่นำโมเดล Stable Diffusion 3.5 มาสร้างใหม่ด้วย PyTorch ล้วนและมี dependency น้อยที่สุด
  • สร้างขึ้นเพื่อการเรียนรู้ การทดลอง และการแฮ็ก โดยเน้นลดปริมาณโค้ดที่จำเป็นต่อการทำซ้ำ Stable Diffusion 3.5 ตั้งแต่ต้น
  • ขนาดการติดตั้งใช้งานอยู่ที่ประมาณ 2,800 บรรทัด ครอบคลุมทั้ง VAE, DiT, สคริปต์ฝึก และสคริปต์ชุดข้อมูล

โครงสร้างไฟล์หลัก

  • โค้ดแกนหลักของโมเดล Stable Diffusion อยู่ในไฟล์ต่อไปนี้
    • dit.py: โค้ด โมเดล DiT หลัก
    • dit_components.py: embedding, normalization, patch embedding และฟังก์ชันช่วยของ DiT
    • attention.py: การติดตั้งใช้งาน Joint Attention
  • ใน noise.py มี Euler Scheduler สำหรับแก้ ODE ของ Rectified Flow
  • ตัวเข้ารหัสข้อความและ tokenizer ถูกแยกไว้เป็นไฟล์ต่างหาก
    • t5_encoder.py: ตัวเข้ารหัสข้อความ T5
    • clip.py: การติดตั้งใช้งาน CLIP
    • tokenizer.py: tokenizer ของ T5 และ CLIP
  • metrics.py ติดตั้งใช้งาน Fréchet Inception Distance(FID)
  • โค้ดช่วยสำหรับการฝึกและโค้ดแปลงข้อมูลอยู่ในไฟล์ต่อไปนี้
    • common.py: ฟังก์ชันช่วยสำหรับการฝึก
    • common_ds.py: การติดตั้งใช้งาน iterable dataset ที่แปลงข้อมูลภาพให้เป็นข้อมูลสำหรับฝึก DiT

โฟลเดอร์และเช็กพอยต์

  • โฟลเดอร์ model ใช้เก็บเช็กพอยต์โมเดลและล็อกหลังการฝึก
  • โฟลเดอร์ encoders ใช้เก็บเช็กพอยต์ของโมดูลอื่น เช่น VAE และ CLIP

องค์ประกอบที่รวมมา

  • โมดูลหลักสำหรับการสร้างภาพ
    • VAE

    • CLIP

    • T5 Text Encoders

      • tokenizer แบบ Byte-Pair และ Unigram
      • องค์ประกอบที่เกี่ยวข้องกับ Stable Diffusion 3
      • โมเดล Multi-Modal Diffusion Transformer
      • Flow-Matching Euler Scheduler
      • Logit-Normal Sampling
      • Joint Attention
      • มีสคริปต์ฝึกและสคริปต์อนุมานสำหรับ Stable Diffusion 3

การติดตั้งและการเตรียมใช้งาน

  • โคลนคลังเก็บ
git clone "https://github.com/yousef-rafat/miniDiffusion";
  • ติดตั้ง dependency
pip install -r requirements.txt
  • ก่อนติดตั้งเช็กพอยต์ของโมเดล ต้องเพิ่ม Hugging Face Token ลงใน get_checkpoints.py
python3 encoders/get_checkpoints.py

สถานะและไลเซนส์

  • ในคลังเก็บยังมี ฟีเจอร์เชิงทดลอง อยู่และต้องการการทดสอบเพิ่มเติม
  • โปรเจ็กต์เผยแพร่ภายใต้ MIT License เพื่อการศึกษาและการทดลอง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น