المستوى: مبتدئ — هذا المقال موجّه لأي شخص سمع عن Stable Diffusion أو Midjourney لكن مش فاهم ازاي بيشتغلوا فعلاً. مش محتاج خلفية في deep learning.
لو فتحت Stable Diffusion أو Midjourney وكتبت "رائد فضاء راكب حصان على سطح القمر"، الصورة بتطلع في 4 ثواني. الكلام ده مكنش ممكن قبل 2020. الموضوع مش سحر، وفهمه بياخد 10 دقايق وهيفرق معاك لما تيجي تستخدم الأدوات دي في شغلك.
المشكلة باختصار
الكمبيوتر مش بيرسم زي الإنسان. هو ما عندوش يد ولا فرشاة ولا ذوق. هو بيشتغل على أرقام بس. السؤال اللي حيّر الباحثين سنين: ازاي تحوّل جملة نص (5 كلمات مثلاً) لـ مصفوفة 512×512×3 من البكسلز تشبه صورة حقيقية يقبلها العين البشرية؟
محاولات قبل 2020 (زي GANs) كانت بتنجح في صور وجوه بس، وبتفشل لمّا تطلب منها حاجة معقدة. سنة 2020 ظهرت ورقة اسمها "Denoising Diffusion Probabilistic Models" من Ho et al، وغيّرت اللعبة بطريقة غريبة شوية: بدل ما تعلّم الموديل يرسم، علّمه يشيل ضوضاء.
الفكرة الأساسية: ابدأ من الفوضى
تخيّل إنك بتلعب لعبة عكسية. عندك صورة واضحة لقطة. بتضيف عليها شويّة تشويش (noise) في كل خطوة لحد ما تبقى مجرد بقع رمادية ملهاش معنى — حرفيًا برد التليفزيون لمّا الإشارة بتقطع. ده النص الأمامي من العملية وبيتسمى forward diffusion.
الـ Diffusion Model بيتعلم العكس: ياخد الفوضى دي ويتنبأ بالـ noise اللي اتضاف، يطرحه، ويرجّع الصورة الأصلية خطوة خطوة. لمّا بتدّيه نص (prompt)، الموديل بيشيل الـ noise بطريقة موجّهة نحو الصورة اللي توصف الجملة دي.
مثال للتقريب: المذيع في الغرفة المزعجة
تخيّل مذيع راديو بيقرأ خبر، بس في خلفية الصوت ضوضاء عالية جدًا — موسيقى، ناس بتتكلم، تكييف شغّال. لو عندك جهاز ذكي يعرف يفصل الكلام عن الضوضاء، الجهاز ده مش بيخترع الكلام من العدم. هو بيستخدم معرفته المسبقة بـ "ازاي شكل الكلام البشري الطبيعي" علشان يشيل الضوضاء طبقة بطبقة.
Diffusion Models بتشتغل بنفس المنطق على الصور بدل الصوت. الموديل اتدرّب على ملايين الصور، فبقى عارف "ازاي شكل الصورة الطبيعية". لمّا بتدّيه ضوضاء + جملة "قطة بنية"، هو بيشيل الضوضاء بشكل يخلّي اللي فاضل يطابق "قطة بنية" في معرفته.
التعريف العلمي بشكل أدق
الـ Diffusion Model هو شبكة عصبية (غالبًا U-Net معماريًا) بتتدرّب على مهمة واحدة فقط: توقّع الـ noise اللي اتضاف لصورة معيّنة عند خطوة زمنية t. لو الموديل قدر يتنبأ بالـ noise بدقة، تقدر تطرحه وتقرب من الصورة الأصلية.
التدريب بيتم على ملايين الأزواج (صورة، نص يصفها). الموديل بيتعلم العلاقة الإحصائية بين الكلمات والـ visual patterns. الجزء اللي بيربط النص بالصورة اسمه text encoder (غالبًا CLIP من OpenAI)، وبيحوّل الجملة لـ vector رقمي يفهمه الـ U-Net.