النماذج التوليدية2022متقدم11 دقيقة قراءة
توليد صور عالية الدقة باستخدام نماذج الانتشار الكامنة
High-Resolution Image Synthesis with Latent Diffusion Models
Rombach, R. · Blattmann, A. · Lorenz, D. · Esser, P. · Ommer, B. — CVPR
المشكلة
بحلول 2021 كانت نماذج الانتشار قد وصلت إلى مستوى الشبكات التوليدية التنافسية أو تجاوزتها في جودة الصور، لكن الثمن الحوسبي كان باهظاً. نموذج انتشار قوي مباشرةً على البكسلات كان يستهلك مئات الأيام على وحدات معالجة رسومية، وتوليد صورة واحدة كان يتطلب مئات الخطوات المتتابعة بالدقة الكاملة. هذا جعل نماذج الانتشار غير عملية للتوليد عالي الدقة وبعيدة المنال عن أغلب الباحثين. السؤال المطروح: هل يمكن الحفاظ على جودة الانتشار ومرونته مع تقليص الكُلفة الحوسبية بأضعاف مضاعفة؟
الإسهام
نماذج الانتشار الكامنة (LDMs): منهجية من مرحلتين تفصل مهمة ضغط التفاصيل البصرية عن مهمة التعلُّم التوليدي. في المرحلة الأولى يُدرَّب مُرمِّز ذاتي يضغط الصور إلى فضاء كامن مُدمَج، فتتحول صورة بأبعاد 512×512×3 إلى تمثيل بأبعاد 64×64×4، أي ضغط بمقدار 48 ضعفاً. في المرحلة الثانية يُدرَّب نموذج انتشار ( مُعزَّزة بانتباه ذاتي وانتباه تبادلي) يعمل بالكامل داخل هذا . طبقات تستقبل إشارات من مُرمِّزات نصية أو خرائط دلالية أو مربعات إحاطة، مما يجعل هذه النماذج مولِّدات مرنة متعددة الاستخدامات. النتيجة: أداء رائد في ، وأداء تنافسي في التوليد غير المشروط والتركيب الدلالي ، وكل ذلك بجزء صغير من الكُلفة الحوسبية لنماذج فضاء البكسل. هذه البنية هي ما أصبح يُعرف بـ Stable Diffusion.
الأثر
جعلت نماذج الانتشار الكامنة توليد الصور عالية الجودة في متناول الجميع. Stable Diffusion — المبني مباشرةً على هذه الورقة — كان أول نموذج مفتوح المصدر عالي الدقة يمكن تشغيله على بطاقة رسوميات منزلية. ونشأت حوله منظومة كاملة تشمل ControlNet والضبط الدقيق بـ LoRA وimg2img وSDXL وتوليد الفيديو عبر Stable Video Diffusion. وبإثبات أن الانتشار يعمل في الفضاء الكامن، امتد تأثير هذه النماذج إلى الصوت (Stable Audio) والنماذج ثلاثية الأبعاد (Zero-1-to-3) والتوليد الجزيئي. النمط المعماري الذي قدمته الورقة — مُرمِّز ذاتي + انتشار كامن + توجيه بالانتباه التبادلي — أصبح القالب المعياري للنماذج التوليدية القابلة للتحكم.
تخيّل رسّاماً يعمل بطريقة غريبة: يبدأ بلوحة مغطاة ببُقع عشوائية من الألوان، ثم يُزيل هذه البُقع تدريجياً حتى تظهر تحتها لوحة فنية متقنة. هذا بالضبط ما يفعله . المشكلة؟ أن اللوحة هنا جدارية ضخمة — كل ضربة فرشاة على هذا الحجم تستغرق وقتاً طويلاً وتكلّف كثيراً.
يمنح الرسّام دفتر رسم مُصغَّر بدلاً من الجدارية. أولاً، تأتي كاميرا ذكية () فتُصوّر الجدارية وتُصغّرها إلى رسمة بحجم الكف تحتفظ بكل الأشكال والألوان الجوهرية لكنها تتخلى عن التفاصيل الدقيقة التي لا تراها العين. الآن يعمل الرسّام على إزالة البُقع من الرسمة الصغيرة — مساحة أصغر بـ 48 مرة. وعند الانتهاء، يأتي جهاز عرض () فيُعيد تكبيرها إلى حجم الجدارية ويملأ التفاصيل الدقيقة تلقائياً. النتيجة: اللوحة ذاتها بجهدٍ أقل بكثير.
المشكلة: تشغيل الانتشار على البكسلات مباشرةً مُكلف جداً
فكرة نماذج الانتشار بسيطة: تبدأ من ضوضاء عشوائية بالكامل، ثم تتعلم كيف تُزيل هذه الضوضاء تدريجياً خطوةً بخطوة حتى تظهر صورة نظيفة. بحلول 2021 حقق هذا النهج نتائج متقدمة جداً، لكن بثمنٍ حوسبي باهظ:
-
كُلفة التدريب. شبكة إزالة الضوضاء تحتاج لمعالجة الصورة بكامل دقتها في كل خطوة. لصورة بأبعاد 512×512 وثلاث قنوات لونية، نتحدث عن 786,432 قيمة في كل خطوة، ومئات الخطوات لكل عينة، وملايين العينات خلال التدريب. المحصّلة: مئات الأيام على وحدات معالجة رسومية.
-
كُلفة . توليد صورة واحدة يتطلب 250 إلى 1000 خطوة متتابعة لإزالة الضوضاء بالدقة الكاملة. ولا يمكن تشغيل هذه الخطوات بالتوازي لأن كل خطوة تعتمد على نتيجة سابقتها.
-
جهد ضائع. الجزء الأكبر من الحوسبة كان يُصرف على نمذجة تفاصيل عالية التردد لا تُدركها العين — كحبيبات النسيج الدقيقة أو أنماط الضوضاء على مستوى البكسل — بدلاً من المحتوى الدلالي الذي يجعل الصورة تبدو كقطة أو غروب شمس أو وجه إنسان.
الفكرة المحورية: افصل الضغط عن التوليد
الفكرة المحورية للورقة تنطلق من حقيقة معروفة في نظرية المعلومات: الجزء الأكبر من بتات أي صورة يُرمِّز تفاصيل لا تُدركها العين — نسيج عالي التردد، ضوضاء دون مستوى البكسل، تشوّهات الضغط. صيغة JPEG تستغل هذا بإسقاط أكثر من 80% من البيانات دون أن يلاحظ المشاهد فرقاً يُذكر. نماذج الانتشار الكامنة تأخذ هذه الفكرة خطوة أبعد وتُقسّم المشكلة إلى مرحلتين:
المرحلة الأولى — . يُدرَّب مُرمِّز ذاتي (مبني على VQGAN) على ضغط الصور إلى فضاء كامن مُدمَج. صورة بأبعاد 512×512×3 تتحول إلى بأبعاد 64×64×4 — أي تقليص بمقدار 48 ضعفاً. يُدرَّب هذا الذاتي مرة واحدة بدالة (تضمن أن إعادة البناء تحافظ على ما تراه العين) ودالة (تضمن أن الصور المُعاد بناؤها تبدو حادة وواقعية).
المرحلة الثانية — عبر الانتشار. يُدرَّب نموذج انتشار بالكامل داخل هذا الفضاء الكامن. النموذج لا يحتاج لتعلُّم التفاصيل البكسلية لأن المُرمِّز الذاتي تولّى ذلك مسبقاً، فيتفرّغ لتعلُّم البنية الدلالية للصور — أي الأجسام والتخطيطات والأساليب البصرية.
قوة هذا الفصل تكمن في أمرين: يمكن ضبط معدل ضغط المُرمِّز الذاتي بشكل مستقل عن نموذج الانتشار، ونموذج الانتشار يعمل على تمثيل مُختصر يحمل فيه كل بُعد معنى دلالياً حقيقياً.
المرحلة الأولى: المُرمِّز الذاتي — تعلُّم الضغط
المُرمِّز الذاتي هو الأساس الذي تقوم عليه المنظومة بأكملها، ويتكون من شقّين:
-
المُرمِّز يأخذ صورة ويُحوّلها إلى تمثيل كامن ، حيث و، و هو عدد القنوات الكامنة (عادةً 4).
-
فاكّ الترميز يُعيد بناء الصورة الأصلية: .
يُدرَّب هذا المُرمِّز الذاتي بمزيج من دوال الخسارة مُصمَّم ليضمن أن الفضاء الكامن مفيد لنموذج الانتشار الذي سيعمل فيه لاحقاً: دالة خسارة إدراكية تقارن السمات العميقة عبر شبكة VGG مُدرَّبة مسبقاً لتضمن أن إعادة البناء تبدو صحيحة للعين البشرية، ودالة خسارة تنافسية على مستوى الرُّقع يتحقق فيها من أن المخرجات تبدو واقعية على مستوى الأجزاء الصغيرة، إضافةً إلى خفيف أو يمنع الفضاء الكامن من أن ينفجر تباينه بشكل عشوائي ويبقيه مُنضبطاً ومُهيَّأً لنموذج الانتشار.
المرحلة الثانية: الانتشار في الفضاء الكامن
بعد أن يُدرَّب المُرمِّز الذاتي ويُجمَّد، يعمل نموذج الانتشار بالكامل على التمثيلات الكامنة. العملية تتبع الوصفة القياسية لـ DDPM لكن في الفضاء الكامن:
(إضافة الضوضاء). نبدأ بتمثيل كامن نظيف ، ثم نُضيف إليه غاوسية بشكل تدريجي على مدار خطوة زمنية لنحصل على نسخ متزايدة التشويش ، حتى يصبح ضوضاء صِرفة تقريباً.
(إزالة الضوضاء). شبكة عصبية تتعلّم التنبؤ بالضوضاء التي أُضيفت عند كل خطوة. نبدأ من ضوضاء عشوائية ونُزيل الضوضاء خطوة بخطوة حتى نسترجع تمثيلاً كامناً نظيفاً . بعدها نمرّر عبر فاكّ الترميز للحصول على الصورة النهائية: .
شبكة إزالة الضوضاء هي U-Net — بنية مُرمِّز-فاكّ ترميز مزوّدة بـ تجعلها مناسبة تماماً لهذه المهمة. تعالج السمات المكانية على مستويات دقة متعددة، وتحافظ وصلات التخطّي على التفاصيل الدقيقة عبر .
محرّك المرونة: التوجيه عبر الانتباه التبادلي
من أبرز إسهامات نماذج الانتشار الكامنة آلية توجيه مرنة وعامة الأغراض. الفكرة هي أننا نريد توجيه نموذج الانتشار بإشارة خارجية — سواء كانت نصاً أو أو أي مُدخل آخر — ولتحقيق ذلك تُدخل الورقة طبقات انتباه تبادلي في بنية U-Net الأساسية.
لتوضيح الفكرة، تخيّل أن السمات الوسيطة في U-Net هي غرفة مليئة بأجزاء الصورة، كل جزء يحاول أن يُقرّر ما الذي ينبغي أن يُمثّله. إشارة التوجيه (مثلاً النص "قلعة على تلة عند الغروب") تدخل الغرفة وكأنها فريق من المستشارين. كل جزء من الصورة يسأل المستشارين: "كيف ينبغي أن أبدو؟" فيُجيب كل مستشار (أي كل نصّي) بحسب مدى علاقته بذلك الجزء ومحتواه وموقعه المكاني.
من الناحية الرسمية، يُحوّل مُرمِّز مُتخصص مُدخل التوجيه (نصاً أو تخطيطاً أو خريطة دلالية) إلى تمثيل وسيط . بعد ذلك، عند طبقات مختارة من U-Net، يُحسَب الانتباه التبادلي: سمات U-Net تُنتج بينما إشارة التوجيه تُنتج و****.
البنية الكاملة لنموذج الانتشار الكامن
لنجمع الأجزاء معاً. منظومة نموذج الانتشار الكامن تتكون من ثلاثة مكوّنات رئيسية:
-
المُرمِّز الذاتي (يُدرَّب مرة واحدة ثم يُجمَّد). المُرمِّز يضغط الصور إلى الفضاء الكامن، وفاكّ الترميز يُعيد بناءها. يُدرَّب بدوال خسارة إدراكية + تنافسية + تنظيمية.
-
U-Net مُزيلة الضوضاء (نموذج الانتشار). تعمل بالكامل في الفضاء الكامن. بنيتها الأساسية U-Net مُعزَّزة بطبقات (للاستدلال المكاني داخل الصورة) وطبقات انتباه تبادلي (لاستقبال إشارات التوجيه الخارجية). الخطوة الزمنية تُحقن عبر الجيبية.
-
مُرمِّز التوجيه . مُرمِّز مُتخصص يُحوّل مُدخل التوجيه إلى سلسلة من المتجهات. إن كان المُدخل نصاً فيكون مُحوِّلاً لغوياً مثل BERT أو CLIP، وإن كان مُدخلاً مكانياً كـالخرائط الدلالية فيمكن أن يكون مُرمِّزاً التفافياً بسيطاً.
أثناء التدريب: تُرمَّز الصورة إلى ، تُضاف ضوضاء للحصول على ، ثم تتنبأ U-Net بالضوضاء بمعلومية و وإشارة التوجيه . أثناء الاستدلال: نسحب عينة من ضوضاء صِرفة ونُشغّل العملية العكسية للوصول إلى ، ثم نفكّ ترميزها عبر للحصول على الصورة.
النتائج: جودة مماثلة بكُلفة أقل بكثير
حققت نماذج الانتشار الكامنة نتائج رائدة أو تنافسية جداً في عدة مهام:
-
التوليد غير المشروط على مجموعتَي بيانات CelebA-HQ وLSUN بدقة 256×256 — درجات تُضاهي أو تتفوق على انتشار فضاء البكسل و، مع حوسبة أقل بكثير.
-
ملء فراغات الصور — أداء رائد جديد يتفوق على الأساليب السابقة في دقة التفاصيل والتماسك الدلالي للمناطق المملوءة.
-
توليد الصور من النص — أداء منافس لـ DALL·E وGLIDE مع الحاجة فقط إلى بطاقة رسوميات منزلية واحدة لـالاستدلال (مقارنةً بمجموعات كبيرة من المعالجات).
-
تحسين الدقة — تكبير 4 أضعاف بجودة إدراكية عالية.
-
التركيب الدلالي للمشاهد — توليد صور واقعية من تخطيطات دلالية.
مكاسب الكفاءة كانت لافتة: نموذج LDM-4 (بمعامل f=4) حقق جودة مماثلة لنماذج فضاء البكسل بـتدريب أسرع بنحو 2.7 ضعف. ونموذج LDM-8 (بمعامل f=8) كان أسرع من ذلك مع تراجع طفيف في الجودة. الاستدلال على بطاقة رسوميات واحدة أصبح ممكناً عملياً — وهو أمر لم يكن وارداً مع انتشار فضاء البكسل بهذه الدقات.
الفكرة نفسها في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
# ── المرحلة 1: المُرمِّز الذاتي (درِّبه مرة ثم جمِّده) ──────
def encode(image, encoder):
"""اضغط صورة 512×512×3 إلى تمثيل كامن 64×64×4."""
return encoder(image) # (H, W, 3) → (H/f, W/f, c)
def decode(z, decoder):
"""أعد بناء الصورة الكاملة من التمثيل الكامن."""
return decoder(z) # (H/f, W/f, c) → (H, W, 3)
# ── المرحلة 2: الانتشار في الفضاء الكامن ───────────────────────
def add_noise(z0, t, noise):
"""العملية الأمامية: أضف ضوضاء عند الخطوة الزمنية t."""
alpha = noise_schedule(t)
return np.sqrt(alpha) * z0 + np.sqrt(1 - alpha) * noise
def train_step(image, text, encoder, unet, text_encoder):
"""خطوة تدريب واحدة لنموذج الانتشار الكامن."""
z0 = encode(image, encoder) # اضغط إلى الكامن
t = np.random.randint(0, T) # خطوة زمنية عشوائية
noise = np.random.randn(*z0.shape) # اسحب عينة ضوضاء
zt = add_noise(z0, t, noise) # الكامن المُشوَّش
cond = text_encoder(text) # رمِّز النص الموجِّه
predicted_noise = unet(zt, t, cond) # تنبّأ بالضوضاء
loss = np.mean((noise - predicted_noise)**2) # MSE بسيط
return loss
def generate(text, unet, text_encoder, decoder, steps=50):
"""ولِّد صورة من نص."""
zt = np.random.randn(64, 64, 4) # ابدأ من ضوضاء
cond = text_encoder(text) # رمِّز الموجِّه
for t in reversed(range(steps)):
predicted_noise = unet(zt, t, cond) # تنبّأ بالضوضاء
zt = denoise_step(zt, predicted_noise, t) # أزل خطوة واحدة
return decode(zt, decoder) # كامن → بكسلات
# هذه هي الفكرة الجوهرية. Stable Diffusion هو هذه الحلقة على نطاق واسع.ماذا أتاحت نماذج الانتشار الكامن
2022
نماذج الانتشار الكامنة (LDMs)
أثبتت أن الانتشار يمكن أن يعمل في فضاء كامن مضغوط دون خسارة تُذكر في الجودة. خفّضت كُلفة التدريب والاستدلال بأضعاف مضاعفة. وقدّمت آلية التوجيه بالانتباه التبادلي لتوليد مرن من النص إلى الصورة.
2022
Stable Diffusion
التطبيق مفتوح المصدر لنماذج الانتشار الكامنة. أول نموذج عالي الجودة لتحويل النص إلى صورة يعمل على بطاقات رسوميات منزلية. ملايين المستخدمين خلال أسابيع من الإطلاق.
2023
ControlNet
أضاف تحكماً مكانياً دقيقاً لنماذج الانتشار الكامنة — توليد صور موجَّهة بالحواف أو خرائط العمق أو الأوضاع أو أقنعة التجزئة. مبني مباشرةً على بنية U-Net مع الانتباه التبادلي.
2023
SDXL
وسّع نماذج الانتشار الكامنة إلى دقة أعلى (1024×1024) بشبكة U-Net أكبر ونموذج تنقيح. حسَّن عرض النصوص والفهم التركيبي بشكل ملحوظ.
2023
Stable Video Diffusion
مدّ نماذج الانتشار الكامنة إلى مجال الفيديو بإضافة طبقات انتباه زمني، مما أتاح توليد مقاطع فيديو متماسكة من نص أو صورة.
2024
Stable Diffusion 3 / FLUX
استبدل بنية U-Net بمُحوِّل انتشار (DiT)، لكنه حافظ على نموذج العمل في الفضاء الكامن والتوجيه بالانتباه التبادلي من ورقة الانتشار الكامن الأصلية.
الإسهام الأبقى لـنماذج الانتشار الكامنة هو إسهام معماري في جوهره: فكرة أن الضغط الإدراكي و مشكلتان مختلفتان يُفضَّل حلّهما كُلٌّ على حدة. درِّب مُرمِّزاً ذاتياً مرة واحدة ليتولى التعامل مع البكسلات، ثم دَع النموذج التوليدي يُركّز فقط على الدلالات في فضاء كامن مُدمَج ومُنظَّم. هذا النمط يقف اليوم خلف معظم أنظمة توليد الصور والفيديو والصوت المتقدمة.
المرجعRombach, Blattmann, Lorenz, Esser, Ommer. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR, 2022.
مصطلحات هذه الورقة
- نموذج الانتشار الكامنLatent Diffusion Model
- الضغط الإدراكيPerceptual Compression
- الضغط الدلاليSemantic Compression
- معامل تقليص الأبعادDownsampling Factor
- التوجيه بلا مُصنِّفClassifier-Free Guidance