โหนดคัสตอมสำหรับ ComfyUI ที่เร่งการอนุมาน Z-Image ได้ 20~30%
(github.com/newgrit1004)สวัสดีครับ/ค่ะ จากกำลังใจและความสนใจที่ทุกท่านมอบให้กับโปรเจกต์ปรับแต่ง Triton kernel สำหรับ Qwen3-TTS ครั้งก่อน ผม/ฉันจึงได้ทำและแบ่งปันโปรเจกต์โอเพนซอร์สตัวที่สองนี้
นี่คือ โหนดคัสตอมสำหรับ ComfyUI ที่เร่งการอนุมานของ Z-Image S3-DiT (6.15B) ซึ่งเป็นโมเดลสร้างภาพยอดนิยมที่มียอดดาวน์โหลดบน HuggingFace มากกว่า 3.6 ล้านครั้งต่อเดือน ได้ 20~30%
1. ทำไมถึงสร้างสิ่งนี้ขึ้นมา? (ที่มาและจุดเด่น)
ปัจจุบันมี Nunchaku(SVDQuant) เป็นเครื่องมือสำหรับเร่ง Z-Image แต่รองรับเฉพาะโมเดล Z-Image 'Turbo' เท่านั้น ผม/ฉันจึงมองว่าจำเป็นต้องมีโซลูชันเร่งความเร็วระดับเคอร์เนลสำหรับโมเดล Base
อีกทั้งในมุมของผู้ใช้ การต้องดาวน์โหลดโมเดล quantized ขนาดหลายสิบ GB (เช่น GGUF) ใหม่อีกครั้งก็เป็นภาระอย่างมาก ดังนั้นจึงได้ทำให้ สามารถ quantize โมเดล BF16 safetensors ที่ใช้อยู่เดิมได้ทันทีขณะรันไทม์ (On-the-fly Quantization) และนำมาใช้ต่อได้เลย
- ติดตั้งได้ง่ายด้วยการคลิกครั้งเดียวผ่าน ComfyUI Manager หรือด้วย
pip install(ไม่ต้องปวดหัวกับการ build CUDA แบบคัสตอมหรือการจับคู่เวอร์ชันที่ยุ่งยาก) - เพียงเพิ่มโหนดเดียวเข้าไปในเวิร์กโฟลว์เดิม และรองรับ LoRA กับ ControlNet ได้อย่างสมบูรณ์
2. เบนช์มาร์กประสิทธิภาพ (RTX 5090, อ้างอิง 30 steps)
- T2I Baseline: 18.9s → Triton + INT8: 15.3s (เร็วขึ้น 1.24x)
- LoRA Baseline: 19.0s → LoRA + Triton + INT8: 14.6s (เร็วขึ้น 1.30x)
- ประหยัด VRAM: รวม 23GB → 19.5GB (ลดลงประมาณ 3.5GB)
3. ยืนยันด้วยตาว่าคุณภาพยังคงอยู่ (ไม่เชอร์รีพิก)
ในโปรเจกต์ TTS ครั้งก่อน การตรวจสอบผลลัพธ์ต้องดาวน์โหลดไฟล์เสียงมาฟังเองซึ่งค่อนข้างยุ่งยาก แต่ครั้งนี้สามารถเปรียบเทียบคุณภาพได้ทันทีบนเว็บ
สำหรับการเปรียบเทียบประสิทธิภาพนี้ ไม่มีการเชอร์รีพิก (Cherry-picking) ใด ๆ แม้ว่าจากลักษณะของ kernel fusion และ quantization จะมีความเปลี่ยนแปลงเล็กน้อยในระดับพิกเซล แต่คุณภาพโดยรวมทั้งด้านองค์ประกอบภาพและรายละเอียดนั้นยังคงรักษาไว้ได้อย่างยอดเยี่ยม ลองดูภาพเปรียบเทียบต้นฉบับของทุกสถานการณ์ได้จากลิงก์ด้านล่าง
- ดูผลเบนช์มาร์ก: https://github.com/newgrit1004/ComfyUI-ZImage-Triton/…
4. จุดด้านวิศวกรรม
โค้ดเคอร์เนลครั้งนี้ก็ได้รับความช่วยเหลือจาก Claude Code อย่างมากเช่นกัน ส่วนผม/ฉันทุ่มพลังทั้งหมดไปกับการทำเบนช์มาร์กและตรวจสอบคุณภาพอย่างเข้มงวด
- ใช้ Triton fusion kernel 6 แบบ (RMSNorm, SwiGLU, QK-Norm+RoPE, Norm+Gate+Residual, AdaLN, RoPE 3D)
- ใช้ W8A8 + Hadamard Rotation (อิงตาม NeurIPS 2024 QuaRot / ConvRot) เพื่อกระจาย outlier และรักษาคุณภาพของการ quantize ให้ได้มากที่สุด
5. แจ้งอัปเดตโปรเจกต์ก่อนหน้า
เพิ่มเติมอีกนิด โปรเจกต์ qwen3-tts-triton ที่เคยเปิดเผยไว้ก่อนหน้านี้ ก็กำลังจะถูกนำมาเป็นโหนดคัสตอมสำหรับ ComfyUI เช่นกันในเร็ว ๆ นี้ (อัปเดต v0.2.0: ลดอาการเสียงเพี้ยนจากการออกเสียงด้วยไฮบริด Triton+PyTorch, ใช้ TurboQuant, เปลี่ยนเครื่องมือประเมินผลของ Cohere ฯลฯ)
ตอนนี้ได้ทดสอบในสภาพแวดล้อมส่วนตัวของผม/ฉัน (RTX 5090) เรียบร้อยแล้ว หากลองรันบน GPU ซีรีส์ 30/40 หรือในสภาพแวดล้อมอื่น ๆ แล้วช่วยส่งฟีดแบ็กผ่าน GitHub issue หรือคอมเมนต์ จะเป็นประโยชน์อย่างมาก ขอบคุณครับ/ค่ะ!
ยังไม่มีความคิดเห็น