(خلاصة تجربة) Diffusion Models من غشيم لـ يفك الخط

حبيت أطب في مجال الـ Diffusion Models وأتعلّمه، وعندي كرت شاشة RTX 5070 Ti فيه 16 قيقا VRAM. كنت أبي أشوف هل أقدر أسوي شي بهالكرت — هل الـ 16 يعتبر رقم زين ولا لا؟ وطلع زين والله، تقدر تشغّل موديلات وتجرب وتتعلم بدون ما تحتاج سيرفر أو قروش شهرية على الكلاود.

عموماً، حاط لكم هنا خلاصة بحثي: تعريفات لبعض المصطلحات، كيف تبدأ، وش المواقع اللي يبيلك تتابعها، وإيش الأدوات اللي تقدر تستخدمها للصور والفيديو والصوت، وإيش المهارات اللي تحتاجها (مثل معرفة بسيطة بالبايثون عشان تركب مكتبات وما يعلق عليك).

Lion running in the desert

 

📖 التعاريف اللي لازم تعرفها

عشان ما تروح تضيع بين الفيديوات والمنتديات وتفهم وش يقصدون لما يقولون “حط LoRA” أو “غيّر السامبلر”، هذي أهم المصطلحات بالبلدي:

 

🧪 Diffusion Models (موديلات الانتشار)

الفكرة إن الموديل يتعلّم إنه يبدأ من صورة مليانة نويز (شوشرة) ويمشي خطوة خطوة يزيل النويز لين يطلع لك صورة واضحة. فأنت ما ترسم بكسل بكسل — أنت تعطيه وصف نصي (prompt) وهو ينتج الصورة عن طريق عملية “إزالة نويز” هذي. الـ training نفسه يكون عكس هالمنطق: يأخذون صور حقيقية ويضيفون عليها نويز بالتدريج ويعلّمون الشبكة إنها ترد النويز — بعدين وقت الـ inference يبدأ من نويز عشوائي ويمشي بالعكس لين يطلع صورة.

أمثلة من الموديلات المشهورة: Flux، SDXL، Z-Image.

 

🏗️ U-Net

هي الشبكة (الموديل) اللي تسوي عملية إزالة النويز خطوة خطوة. شكلها يذكر بالحرف U: فيه مسار ينزل (يقارب الصورة لتمثيل مختصر) ومسار يطلع (يرجع التفاصيل). في Stable Diffusion 1 و 2 الـ denoiser الأساسي هو U-Net؛ في إصدارات أحدث زي SD3 صاروا يستخدمون معمارية Transformer (مثل MMDiT) بدالها، لكن الفكرة نفسها: وحدة مسؤولة عن الـ denoising.

أمثلة:

 

💾 Checkpoints (التشيك بوينتس)

ببساطة، الـ checkpoint غالباً نسخة من الموديل مدربة على شغلة معينة — مثلاً checkpoint شاطر بالسيارات، أو بالبشر من جنسية معينة، أو ستايل أنمي، وهكذا. هي الملفات الكبيرة اللي فيها أوزان الموديل الكامل (الـ U-Net أو البديل + إعدادات متعلقة). لما تحمّل “موديل” وتلقى ملف .safetensors أو .ckpt حجمه 2–7 قيقا، هذا الـ checkpoint. تغيّر الـ checkpoint = تغيّر الستايل والقدرات الأساسية للموديل.

التشيك بوينتس تجي نوعين، نوع يجي مخلوط معاه ال VAE وال CLIP وأحيانا لا, بس unet وتحتاج انت تجيب الفاي والكليب

أمثلة:

 

🖼️ VAE (Variational Autoencoder)

الـ VAE يشتغل في البداية والنهاية: يحوّل الصورة من بكسلات إلى تمثيل “مضغوط” (latent) في مكان أصغر، والموديل يشتغل على هالتمثيل المضغوط (عشان يوفر ذاكرة وحسابات). بعد ما الـ U-Net يخلص إزالة النويز، الـ VAE يرجع يحوّل التمثيل المضغوط لصورة بكسلات تشوفها. فـ VAE = مرحلة الترميز والتفكيك (encode/decode) بين الصورة والـ latents.

أمثلة: مافيه أمثلة هنا, تقريباً كل موديل المطورين مسوين معاه فاي مخصص له أو ينصحون بفاي حق موديل ثاني

 

⏱️ Samplers (السامبلرز)

هي الخوارزميات اللي تحدد كيف تنزل النويز خطوة خطوة. نفس الموديل، بس سامبلر ثاني يعطيك نتيجة ثانية وسرعة ثانية. السامبلر + عدد الخطوات (steps) يتحكمون بالجودة والوقت والـ “إبداع” — بعضهم يثبت على نتيجة، وبعضهم كل مرة يطلع شي مختلف شوي.

 

🎛️ LoRAs (Low-Rank Adaptation)

ملفات صغيرة (تقريباً 10–200 ميقا) تعلّم الموديل على شي معيّن بدون ما تعيد تدريب الموديل كامل. مثلاً: شخصية معيّنة، ستايل، أو تفاصيل. تحمّلها فوق الـ checkpoint وتفعّلها، فيصير الموديل يلتزم باللي درّبوا عليه الـ LoRA. تقدر تجمع أكثر من LoRA مع بعض (شخصية + ستايل + إلخ). فـ checkpoint = الموديل الأساسي، LoRA = إضافات خفيفة فوقه.

 

📝 Text Encoder و CLIP

الـ text encoder هو الجزء اللي يأخذ الـ prompt (النص اللي تكتبه) ويحوّله لتمثيل رياضي يفهمه الموديل. في Stable Diffusion غالباً يستخدمون CLIP (من شركة OpenAI) — نسخ مختلفة مثل ViT-L/14. الـ CLIP درّبوه على نصوص وصور عشان يفهم الربط بين الوصف والصورة، فصار يستخدمونه “مجمّد” (frozen) كـ text encoder في موديلات الانتشار. فـ CLIP هنا = المكوّن اللي يترجم كلامك لشي الموديل يشتغل عليه.

أمثلة: CLIP ViT-L/14 (SD 1.x)، OpenCLIP (SD 2.x و SDXL)، T5 (في موديلات أحدث زي SD3).

 

👁️ CLIP Vision

هذا الجزء من CLIP اللي يتعامل مع الصور مو النص. يستخدمونه في سيناريوهات زي: صورة مرجعية (reference)، أو تحكم بالوجه/الهيئة (مثل بعض تقنيات الـ ControlNet أو IP-Adapter). فـ CLIP text = فهم النص، CLIP Vision = فهم الصورة المدخلة عشان تتحكم بالنتيجة بناءً عليها.

أمثلة: IP-Adapter (صورة مرجعية)، InstantID (تحكم بالوجه)، ControlNet مع صورة إرشادية.

 

🎮 ControlNet

تقنية تخلّيك تتحكم بتوليد الصورة عن طريق صورة إرشادية (مدخل ثاني). تعطيه مثلاً خريطة حواف (edge)، أو خريطة عمق (depth)، أو وضعية جسم (pose)، والموديل يلتزم بهيكل هالصورة ويولد النتيجة عليه. فأنت تحدد الهيئة أو التكوين أو الحواف، والموديل يملأ التفاصيل حسب الـ prompt. يكثر استخدامه مع الويبوي و ComfyUI عبر موديلات ControlNet جاهزة لكل نوع تحكم.

أمثلة: ControlNet للحواف (Canny)، للعمق (Depth)، لوضعية الجسم (OpenPose).

 

🔗 IP-Adapter

طريقة تستخدم CLIP Vision عشان “تحقن” محتوى أو ستايل صورة مرجعية داخل التوليد. تعطيه صورة وحدة كمرجع، والموديل يحاول يلتزم بمحتواها أو ستايلها وهو يولد الصورة الجديدة. يصلح لستايل معيّن، أو لشكل عام تريده يظهر في النتيجة، بدون ما تربط الوجه بالضرورة. غالباً يشتغل مع الـ checkpoint ويفتح لك خيارات “صورة مرجعية” في الواجهات.

أمثلة: IP-Adapter للستايل، للتفاصيل العامة، أو مع صور مرجعية متعددة.

 

🪪 InstantID

تقنية تركّز على الحفاظ على هوية الوجه من صورة مرجعية. تعطيه صورة لوجه شخص، والموديل يثبت هالهوية في الصور اللي يولدها — يعني نفس الوجه يطلع في مشاهد أو ستايلات مختلفة. يختلف عن IP-Adapter إنه مخصّص للهوية/الوجه أكثر، ومرة وحدة تكفي عشان الموديل يلتزم بالوجه. يكثر استخدامه مع ComfyUI وواجهات تدعمه.

أمثلة: استخدامه مع portrait، مع صور كرتونية تحافظ على الوجه، أو مع LoRAs للشخصيات.

  1. ثبّت واجهة محلية على جهازك: Stable Diffusion WebUI (AUTOMATIC1111) أو ComfyUI — ComfyUI أقوى من ناحية الـ workflows لكن تحتاج تفهم العقد والوصلات، والويبو أبسط للبداية.
  2. حمّل checkpoint واحد من Civitai أو Hugging Face وجرّب توليد صور بنص (text-to-image).
  3. جرّب LoRAs على نفس الـ checkpoint وشوف الفرق.
  4. غيّر السامبلر وعدد الـ steps ولاحظ الفرق بالجودة والوقت.

 

📌 مواقع ومصادر تتابعها

 

🛠️ أدوات للصور والفيديو والصوت

 

🧩 المهارات اللي تحتاجها

 

هذي خلاصة من تجربة غشيم بدأ من الصفر ويفك الخط مع الوقت.

وبس.

التعليقات