- يقلِّص تكميم GGUF نماذج الانتشار الكبيرة مثل FLUX.1 من حجم يقارب 24 غيغابايت إلى نطاق يتراوح بين 5 و12 غيغابايت، ما يسمح بتشغيلها على وحدات معالجة رسومات استهلاكية تتراوح سعة ذاكرتها (VRAM) بين 6 و16 غيغابايت.
- ثبِّت العقدة المخصصة ComfyUI-GGUF المطوَّرة من قِبل city96، وانسخ ملفات النموذج إلى
.ggufالمجلدComfyUI/models/unet/، واستخدم عقدةUnetLoaderGGUFبدلًا من عقدة UNETLoader القياسية. - توفر مستويات التكميم Q4_K_S أو Q5_K_S أفضل نسبة بين الجودة وسعة ذاكرة VRAM لمعظم بطاقات الرسومات. أما Q8_0 فهي قريبة جدًّا من فقدان الصلاحية (near-lossless) لكنها توفر أقل قدر من الذاكرة. وتستهدف Q2_K بطاقات الرسومات التي تتراوح سعة ذاكرتها بين 4 و6 غيغابايت، مع وجود تنازلات مرئية في الجودة.
- يمكن لمشفّر النصوص T5-XXL الخاص بـ FLUX (~9 GB في fp16) أيضاً أن يتم تحميله كـ GGUF عبر
DualCLIPLoaderGGUF، مما يحرّر VRAM إضافياً كبيراً.
GGUF هو صيغة ثنائية طورتها مشروع llama.cpp لتخزين أوزان الشبكات العصبية المُكمَّمة. تم تطويره في الأصل لنماذج اللغات الكبيرة، وتم تكييفه لاحقاً مع UNets نماذج الانتشار، و العقدة المخصصة ComfyUI-GGUF العقدة المخصصة من قِبَل city96 توفر دعماً لهذه الصيغة داخل ComfyUI. النتيجة العملية: FLUX.1-dev، الذي يتطلب تقريباً 24 GB من VRAM بدقة BF16 الكاملة، يصبح قابلاً للتشغيل على وحدة معالجة رسومات بسعة 6–8 GB عند تكمية Q4 — مع جودة صور غالباً ما تكون لا تُميَّز عن النموذج كامل الدقة بالعين المجردة.
لماذا يُهمّ GGUF لتوليد الصور
تأتي نقاط التفتيش القياسية للانتشار على شكل .safetensors ملفات بصيغة FP16 أو BF16. بالنسبة للنماذج الأقدم (SD1.5 بحوالي 2 GB، SDXL بحوالي 7 GB)، هذا قابل للإدارة على أجهزة متوسطة المستوى. بالنسبة لـ FLUX.1 و SD3، فإن ملفات الدقة الكاملة هي 24 GB و 16 GB على التوالي — وهو ما يتجاوز سقف الـ VRAM لأي بطاقة رسومات استهلاكية واحدة.
يقوم GGUF quantisation بتعيين كل وزن إلى تمثيل عددي أصغر. يستخدم وزن Q8_0 8 بتات بدلاً من 16، مما يقلل حجم النموذج تقريباً إلى النصف مع فقدان جودة بالكاد يُلاحظ. تستخدم متغيرات Q4 4 بتات لكل وزن، مما يقلل الحجم إلى ربع fp16 تقريباً. تتراكم المدخرات بشكل درامي على النماذج التي تحتوي على مليارات المعاملات. استخدم حاسبة VRAM لتقدير مقدار ذاكرة وحدة معالجة الرسومات التي ستحتاجها مستوى تكمية معين قبل تحميل أي شيء.
يحتوي FLUX.1 أيضاً على مشفر نصي كبير T5-XXL (~9.3 GB بصيغة fp16). يجمع وحدة GGUF UNet مع مشفر GGUF T5-XXL يجعل خط أنابيب FLUX.1 الكامل يتناسب مع البطاقات التي كانت ستكون غير قادرة تماماً على تشغيله. يمكن تحميل كلا المكونين بصيغة GGUF بشكل مستقل.
تثبيت عقدة ComfyUI-GGUF المخصصة
عبر ComfyUI Manager (موصى به)
- افتح ComfyUI وانقر على Manager في الشريط الجانبي.
- انتقل إلى تثبيت عقد مخصصة.
- ابحث عن
العقدة المخصصة ComfyUI-GGUF. - انقر على تثبيت بجانب الإدخال بواسطة city96، ثم أعد تشغيل ComfyUI.
التثبيت اليدوي
استنسخ المستودع إلى custom_nodes الدليل، ثم ثبّت اعتماد Python الخاص به:
cd ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI-GGUF
Linux / macOS (venv):
source ComfyUI/venv/bin/activate
pip install -r ComfyUI/custom_nodes/ComfyUI-GGUF/requirements.txt
Windows (portable ComfyUI):
ComfyUIpython_embedspython.exe -m pip install -r ComfyUIcustom_nodesComfyUI-GGUFrequirements.txt
Windows (venv):
ComfyUIvenvScriptsactivate.bat
pip install -r ComfyUIcustom_nodesComfyUI-GGUFrequirements.txt
الاعتماد الرئيسي هو حزمة gguf Python. أعد تشغيل ComfyUI بعد التثبيت.
الحصول على ملفات نموذج GGUF
city96 تحمّل نسخ GGUF من FLUX.1-dev و FLUX.1-schnell إلى Hugging Face تحت اسم المستخدم city96. ابحث عن city96 FLUX.1-dev-gguf على Hugging Face للعثور على المستودع. يحتوي كل مستودع على عدة .gguf ملفات، ملف واحد لكل مستوى تكميم. حمّل الملف الواحد الذي يطابق مستوى التكميم الذي تريده — لا تحتاج إلى تحميلها كلها.
نسخ GGUF من مشفر النصوص T5-XXL متاحة أيضًا على Hugging Face (ابحث عن t5-v1_1-xxl-encoder-gguf). مشفّر CLIP-L صغير بما يكفي (~240 MB) بحيث أن تكميمه نادرًا ما يستحق العناء.
يقوم أعضاء المجتمع أيضًا برفع متغيرات GGUF من نماذج FLUX المضبوطة بدقة على CivitAI. تنطبق نفس بنية العقدة والمجلد بغض النظر عن مكان تنزيل الملف منه.
مكان وضع ملفات النموذج
| نوع الملف | المجلد |
|---|---|
GGUF diffusion UNet (مثلاً flux1-dev-Q4_K_S.gguf) |
ComfyUI/models/unet/ |
GGUF text encoder (مثل T5-XXL .gguf) |
ComfyUI/models/clip/ |
وحدة تحليل التباين المُتغيرة (VAE) (.safetensorsتبقى دون تغيير) |
ComfyUI/models/vae/ |
لا يُكمَّن نموذج VAE الخاص بـ FLUX، ويظل في موقعه الطبيعي. أما الاستفادة من تحميل ملفات GGUF فتقتصر فقط على نموذج UNet ومشفر النص.
استخدام عُقد تحميل GGUF
بعد تثبيت مكوِّن ComfyUI-GGUF وإعادة تشغيل البرنامج، تظهر عُقد جديدة في مستعرض العُقد. وهذه العُقد تحل محل نظيراتها القياسية في سير عملك — فلا يمكن تحميل ملف .gguf باستخدام العقدة القياسية UNETLoader.
| العقدة | تحل محل | تقبل |
|---|---|---|
UnetLoaderGGUF |
UNETLoader |
.gguf نماذج الانتشار |
UnetLoaderGGUFAdvanced |
UNETLoader |
.gguf مع خيارات إضافية |
DualCLIPLoaderGGUF |
DualCLIPLoader |
ملفات GGUF أو .safetensors CLIP/T5 |
CLIPLoaderGGUF |
CLIPLoader |
مشفر CLIP واحد بصيغة GGUF |
لتدفق عمل FLUX القياسي: استبدل UNETLoader لـ UnetLoaderGGUF، واستبدل DualCLIPLoader لـ DualCLIPLoaderGGUF إذا كنت تستخدم أيضًا نموذج T5-XXL بتنسيق GGUF. وصِل المخرجات إلى نفس العُقد التالية كما كان من قبل — فأشكال المتجهات متوافقة.
اختيار مستوى التكمية
يعرض الجدول أدناه أرقامًا تقريبية لأوزان وحدة UNet في FLUX.1 فقط. ويجب أن يغطي إجمالي ميزانيتك من ذاكرة VRAM أيضًا وحدة VAE (حوالي 350 ميغابايت)، ومشفرات النصوص (240 ميغابايت لـ CLIP-L، بالإضافة إلى ما تخصصه لنموذج T5-XXL)، والمتجهات المؤقتة أثناء التوليد. استخدم مرجع متطلبات VRAM جنباً إلى جنب مع هذا الجدول، واستشر دليل بطاقات الرسوميات إذا كنت تقرر أي بطاقة شراء.
| التكمية | الحجم التقريبي للملف (أوزان UNet في FLUX.1) | كمية ذاكرة VRAM المطلوبة عادةً | الجودة مقارنةً بـ BF16 |
|---|---|---|---|
| BF16 (مرجع) | حوالي 24 جيجابايت | 24 جيجابايت فأكثر | مرجعي |
| Q8_0 | حوالي 12 جيجابايت | حوالي 13 جيجابايت | شبيهة جدًّا بالنسخة الأصلية |
| Q5_K_S | حوالي 8 GB | حوالي 8–9 جيجابايت | تدهور ضئيل جدًّا |
| Q4_K_S | حوالي 7 جيجابايت | حوالي 7–8 جيجابايت | تدهور طفيف، غالبًا غير ملحوظ |
| Q4_0 | حوالي 6.5 جيجابايت | حوالي 7 جيجابايت | تدهور طفيف |
| Q3_K_S | حوالي 5.5 جيجابايت | حوالي 6 جيجابايت | متوسط |
| Q2_K | ~4.5 غيغابايت | ~5 غيغابايت | ملاحظ بوضوح |
نقاط انطلاق عملية: استخدم Q5_K_S أو Q4_K_S للبطاقات ذات سعة 8–12 جيجابايت (أفضل نسبة بين الجودة وسعة VRAM). واستخدم Q3_K_S أو Q2_K للبطاقات ذات سعة 6 جيجابايت إذا كنت تستخدم أيضًا نموذج T5-XXL مُكمَّن. واستخدم Q8_0 للبطاقات ذات سعة 16 جيجابايت عندما ترغب في أعلى دقة ممكنة مع الاحتفاظ بكامل النموذج داخل ذاكرة VRAM.
المقايضة بين الجودة والسرعة
عند مستوى الكمّنة Q8_0، تكون الاختلافات عن BF16 غير ملحوظة عمليًّا في المقارنات الجانبية. أما عند مستوى Q4_K_S فقد تظهر درجات طفيفة جدًّا من التدهور في التفاصيل الدقيقة والنصوص عند الفحص الدقيق، لكن المخرجات لا تزال مناسبة للإنتاج في معظم حالات الاستخدام. أما Q2_K فيؤدي إلى تبلور مرئي واضحاً وأخطاء ظاهرية أحيانًا، خاصة في الوجوه والتفاصيل الدقيقة — وهو خيار أخيرٌ فقط للأجهزة شديدة القيود الذاكرة.
سرعة التوليد باستخدام تنسيق GGUF قد تكون مماثلة أو أسرع من تحميل نموذج BF16 مع إزاحة بعض العمليات إلى وحدة المعالجة المركزية (CPU offloading)، لأن الأوزان المكمَّنة تقلل الضغط على عرض نطاق الذاكرة. ومع ذلك، إذا كانت بطاقتك الرسومية قادرة على احتواء النموذج الكامل بتنسيق BF16 داخل ذاكرة VRAM دون الحاجة إلى الإزاحة، فستكون هذه الطريقة عمومًا أسرع من استنتاج GGUF. وتظهر ميزة السرعة في GGUF بشكل أوضح عندما يتطلب البديل نقل الطبقات بين ذاكرة VRAM وذاكرة النظام الرئيسية (RAM).
في أجهزة أبل ذات المعالجات المدمجة (macOS)يدعم محرك MPS استنتاج GGUF عبر ComfyUI-GGUF، لكن خصائص الأداء تختلف عن CUDA الخاص بشركة NVIDIA. النتائج وظيفية، لكن سرعة التوليد قد تكون أبطأ من تلك المحققة على بطاقة رسوميات NVIDIA مماثلة. وبفضل بنية الذاكرة الموحَّدة في معالجات أبل المدمجة، يكون الحد العملي لسعة VRAM أعلى من البطاقات الرسومية المنفصلة ذات السعة الاسمية نفسها، لذا قد تتمكن من تشغيل مستويات كمّنة أعلى مما يوحي به الجدول أعلاه.
في بطاقات الرسوميات من AMD (لينكس، ROCm)يعمل استنتاج GGUF عبر محرك ROCm الخاص بـ PyTorch. قم بتثبيت إصدار PyTorch المتوافق مع ROCm لبرنامج ComfyUI قبل تثبيت ComfyUI-GGUF. وتتفاوت الأداء والتوافق حسب جيل البطاقة الرسومية؛ حيث تتمتع بطاقات RDNA 3 (سلسلة RX 7000) بأفضل دعم موثوق.
الأسئلة المتكررة
هل يمكنني تحميل ملف .gguf باستخدام عقدة UNETLoader القياسية؟
لا. إن عقدة UNETLoader القياسية تقبل فقط ملفات .safetensors ، ويجب عليك تثبيت العقدة المخصصة ComfyUI-GGUF واستخدام UnetLoaderGGUF لتحميل .gguf نماذج الانتشار (diffusion models).
هل يجب عليّ تكمين النماذج بنفسي، أم يمكنني تنزيل ملفات مكمَّنة مسبقًا؟
بالنسبة لطرز FLUX.1-dev وFLUX.1-schnell، يوفِّر city96 ملفات GGUF مكمَّنة مسبقًا على منصة Hugging Face تشمل جميع مستويات الكمّنة الرئيسية. قم بتنزيل ملف .gguf المحدد للمستوى الذي تريده — ولا حاجة لتشغيل أي أدوات تكمين بنفسك.
هل يعمل تنسيق GGUF مع نماذج SD1.5 وSDXL؟
من الناحية التقنية نعم، لكن الفائدة ضئيلة. فحجم نموذج SD1.5 هو حوالي 2 جيجابايت وحجم SDXL هو حوالي 7 جيجابايت بتنسيق fp16 — وكلاهما يناسبان بسهولة بطاقات الرسوميات الاستهلاكية متوسطة المواصفات. وتكون فائدة تكمين GGUF أكبر ما يكون مع النماذج الكبيرة جدًّا (مثل FLUX.1 وSD3)، حيث تتجاوز أوزانها بدقة كاملة سعة ذاكرة VRAM في معظم البطاقات.
هل يؤدي استخدام نموذج T5-XXL بتنسيق GGUF إلى تدهور ملحوظ مقارنةً بالإصدار الكامل بتنسيق fp16؟
عند مستويي الكمّنة Q8_0 أو Q5_K_S، تكون جودة اتباع التعليمات والترميز النصي مكافئة تمامًا لإصدار fp16. أما المستويات الأدنى من الكمّنة (مثل Q2_K وQ3_K_S) فقد تؤدي أحيانًا إلى تدهور طفيف في اتباع التعليمات المعقدة، لكن هذا التدهور طفيف مقارنةً بالتأثير المماثل على جودة وحدة UNet عند نفس مستوى الكمّنة.
كنت قد صممت تدفق عملي (workflow) خاصتي لنموذج FLUX بدقة كاملة. هل يجب عليّ إعادة بنائه بالكامل؟
لا. استبدل UNETLoader مع UnetLoaderGGUF و(اختياريًّا) DualCLIPLoader مع DualCLIPLoaderGGUF. وتبقى جميع الروابط التالية دون تغيير — مثل عقدة KSampler وفك ترميز VAE والشروط (conditioning). ومخرجات هذه العقدة متوافقة من حيث أشكال المتجهات مع باقي مكونات تدفق عمل FLUX القياسي.
لماذا تستمر واجهة ComfyUI في استنفاد ذاكرة VRAM حتى عند استخدام نموذج مكمَّن؟
إن وحدة UNet بصيغة GGUF ليست سوى جزء من إجمالي استهلاك ذاكرة VRAM. إذ يحمل تدفق FLUX الكامل أيضًا نموذج CLIP-L (حوالي 240 ميغابايت)، ونموذج T5-XXL (حتى 9.3 جيجابايت في تنسيق fp16)، ووحدة VAE (حوالي 350 ميغابايت)، بالإضافة إلى المخازن المؤقتة أثناء التوليد. وإذا استمرت المشكلة، فقم بتحميل نموذج T5-XXL أيضًا بصيغة GGUF عبر DualCLIPLoaderGGUF، وفكِّر في تفعيل تقنية تقسيم VAE المدمجة في ComfyUI لمرحلة فك الترميز.
