Latent Diffusion Model (LDM)
يعمل نموذج الانتشار الكامن (LDM) في الفضاء الكامن المضغوط لمُرمّز تلقائي بدلًا من العمل على البكسلات، وهو التصميم الذي يقوم عليه Stable Diffusion.
نموذج الانتشار الكامن (LDM) هو نموذج انتشار يولّد البيانات بإزالة الضوضاء من تمثيل مضغوط ناتج عن مُرمّز تلقائي مدرّب مسبقًا، بدلًا من البكسلات الخام. وقدّم Robin Rombach وAndreas Blattmann وDominik Lorenz وPatrick Esser وBjörn Ommer هذا النهج في توليد الصور عالية الدقة باستخدام نماذج الانتشار الكامن، التي عُرضت في CVPR 2022. ويزيل المُرمّز التلقائي التفاصيل الدقيقة للبكسلات، المكلفة في النمذجة وقليلة الأثر في مظهر الصورة، لذا تنفق شبكة الانتشار سعتها على المحتوى والتكوين. ولذلك تقل تكلفة التدريب وأخذ العينات كثيرًا مقارنةً بالانتشار في فضاء البكسلات، ما يتيح لـStable Diffusion، أشهر نماذج LDM، توليد الصور على GPU استهلاكي واحد. وتتبع معظم مولدات الصور والفيديو والصوت الحالية في الذكاء الاصطناعي التوليدي التصميم ذا المرحلتين نفسه.
كيف يعمل الانتشار الكامن؟#
تضغط المرحلة الأولى الصور. إذ يحوّل المشفّر صورة بحجم H×W×3 إلى تمثيل كامن بحجم H/f×W/f×c، حيث f عامل خفض الدقة وc عدد القنوات الكامنة، ثم يحوّل مفكّك الترميز التمثيلات الكامنة إلى بكسلات. ودرّب Rombach وزملاؤه هذا المشفّر التلقائي باستخدام خسارة إدراكية وهدف خصومي قائم على الرقع، كما في مميّز GAN، للحفاظ على حدة إعادة البناء، ونظّموا التمثيل الكامن إما بعقوبة KL صغيرة باتجاه توزيع طبيعي معياري، أو باستخدام تكميم المتجهات. وحققت عوامل خفض الدقة من 4 إلى 16 توازنًا بين السرعة والجودة: كان التدريب في فضاء البكسلات (f = 1) بطيئًا، بينما ضغط f = 32 البيانات إلى حد أدى إلى انخفاض جودة العينات. يستخدم المشفّر التلقائي في Stable Diffusion العامل f = 8 وأربع قنوات؛ لذا يرمّز هذا الكود صورة، ثم يفك ترميزها، ويقيس ما تفقده عملية التحويل ذهابًا وإيابًا:
import urllib.request
import numpy as np
import torch
from diffusers import AutoencoderKL
from PIL import Image
# Stable Diffusion's autoencoder, the first stage of a latent diffusion model
vae = AutoencoderKL.from_pretrained("stabilityai/sd-vae-ft-mse")
# Load a photo and scale its pixels to [-1, 1]
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg")).convert("RGB").resize((480, 640))
x = torch.tensor(np.array(image), dtype=torch.float32).permute(2, 0, 1)[None] / 127.5 - 1
# Encode to the latent that diffusion runs on, then decode back to pixels
with torch.no_grad():
latent = vae.encode(x).latent_dist.mode()
recon = vae.decode(latent).sample.clamp(-1, 1)
psnr = 10 * torch.log10(4 / torch.mean((recon - x) ** 2))
print(f"image {tuple(x.shape)} -> latent {tuple(latent.shape)}: {x.numel() // latent.numel()}x fewer values")
print(f"reconstruction PSNR: {psnr:.1f} dB")
Image.fromarray(((recon[0] + 1) * 127.5).byte().permute(1, 2, 0).numpy()).save("bus_reconstructed.jpg")يطبع image (1, 3, 640, 480) -> latent (1, 4, 80, 60): 48x fewer values وreconstruction PSNR: 23.0 dB. ويحافظ الملف المحفوظ bus_reconstructed.jpg على الحافلة والأشخاص والشارع، بينما تعود الكتابة الصغيرة على جانب الحافلة مشوّشة، فهي من التفاصيل الدقيقة التي لا يستطيع تمثيل كامن بأربع قنوات الاحتفاظ بها.
المرحلة الثانية هي نموذج انتشار عادي يُدرّب على هذه التمثيلات الكامنة. ففي التدريب، تُرمّز صورة، وتُضاف إليها ضوضاء غاوسية عند خطوة عشوائية، ثم تُدرّب شبكة إزالة الضوضاء، وهي U-Net في العمل الأصلي ومحوّل انتشار في معظم النماذج الأحدث، على التنبؤ بتلك الضوضاء، أو بالتنبؤ بالسرعة التي تنقل الضوضاء نحو التمثيل الكامن النظيف في نماذج التدفق المصحّح. تدخل الشروط عبر طبقات الانتباه المتقاطع التي تتيح للتمثيل الكامن الانتباه إلى تضمينات مطالبة نصية أو تسمية فئة أو خريطة دلالية. ويبدأ التوليد بضوضاء كامنة عشوائية، ثم يزيل الضوضاء خطوة بخطوة وفق الشرط، ويشغّل مفكّك الترميز مرة واحدة في النهاية؛ وبذلك تعمل كل خطوة مكلفة على التمثيل الكامن الصغير.
من Stable Diffusion إلى النماذج الحالية#
- Stable Diffusion: صدر في أغسطس 2022، ووسّع وصفة LDM لتوليد صور من النص بحجم 512×512 باستخدام تمثيل كامن بحجم 64×64×4 وشبكة U-Net تضم 860 مليون مُعامل ومشفّر نصي CLIP، مع إتاحة أوزانه للتنزيل للجميع.
- Stable Diffusion 3: انتقل إلى مشفّر تلقائي ذي 16 قناة، ما رفع PSNR لإعادة البناء من 25.12 dB عند استخدام 4 قنوات إلى 28.62 dB، واستبدل شبكة U-Net بمحوّل انتشار متعدد الوسائط مدرّب باستخدام التدفق المصحّح. كما تزيل نماذج FLUX.1 من Black Forest Labs الضوضاء من تمثيلات كامنة ذات 16 قناة باستخدام محوّل تدفق مصحّح.
- الفيديو والصوت: تضغط مولدات الفيديو المقاطع في المكان والزمان، ووصفت OpenAI نموذج Sora بأنه يضغط مقاطع الفيديو إلى فضاء كامن منخفض الأبعاد ويقسّمها إلى رقع زمكانية. ويطبّق AudioLDM وStable Audio من Stability AI النهج نفسه على التمثيلات الكامنة للمخططات الطيفية أو الموجات الصوتية.
- نماذج الاتساق الكامن: تقطّر نموذج LDM ليُنشئ الصور في خطوتين إلى أربع بدلًا من 20 إلى 50، ما يتيح التوليد شبه الآني.
نماذج LDM والمصطلحات ذات الصلة#
- نماذج الانتشار في فضاء البكسلات: تنفّذ عمليتي إضافة الضوضاء وإزالتها على كل بكسل. ونموذج LDM هو أيضًا نموذج انتشار، ولا يختلف إلا في موضع تنفيذ العملية.
- المشفّرات التلقائية التغايرية: ينشئ نموذج VAE العينة بفك ترميز تمثيل كامن مأخوذ في مرور واحد، وتميل عيناته إلى الضبابية. أما نموذج LDM، فيستخدم مشفّرًا تلقائيًا على نمط VAE للضغط فقط، ويترك التوليد لنموذج الانتشار.
- Stable Diffusion: عائلة واحدة من نماذج الانتشار الكامنة (LDMs) من Stability AI وCompVis وRunway؛ لذا فإن كل نموذج من Stable Diffusion هو نموذج LDM، بينما تشمل نماذج LDM أيضًا FLUX ومولّدات الفيديو ونماذج الصوت.
التطبيقات#
تدعم نماذج LDM توليد النص إلى الصورة وترميم الصور، حيث حققت الورقة الأصلية أفضل النتائج آنذاك، وزيادة الدقة، وتوليد الصور من التخطيطات والخرائط الدلالية. كما تنتج في الرؤية الحاسوبية بيانات اصطناعية، مثل العيوب النادرة والطقس غير المعتاد وزوايا الرؤية غير الشائعة التي يصعب تصويرها. وتأتي الصور المولّدة بلا تسميات، وتقوم الدالة auto_annotate في Ultralytics بتوسيم مجلد منها عبر اكتشاف الأجسام بنموذج YOLO26 ورسم حدود كل صندوق مكتشف بنموذج Meta SAM للتجزئة، ثم كتابة تسميات التجزئة بتنسيق YOLO للتدريب.










