عقدة KSampler في ComfyUI
KSampler يشغل حلقة إزالة الضوضاء: بياخد الموديل، البرومبتس واللاتنت وبيطلع صورة لاتنت جاهزة، بيتحكم فيها بالـ seed، الخطوات، cfg، السامبلر، السكيجولر والـ denoise.
ما تفعله KSampler
KSampler هو المكان اللي الصورة بتتولد فيه فعلاً. بيبدأ من اللاتنت اللي دخل (ضوضاء عشوائية من Empty Latent Image، أو صورة مشفرة لو كنت بتستخدم img2img)، وبيطلب من الموديل يشيل الضوضاء على عدد الخطوات اللي اخترتها، مع التوجه للبرومبت الإيجابي والابتعاد عن السلبي حسب قيمة cfg. النتيجة بتكون LATENT واللي VAE Decode بيحولها لصورة.
sampler_name بيختار الطريقة الرقمية (زي euler، euler_ancestral، dpmpp_2m، dpmpp_2m_sde، dpmpp_3m_sde، uni_pc، lcm، ...) وscheduler بيحدد منحنى الضوضاء (normal، karras، exponential، sgm_uniform، simple، beta). denoise بيتحكم في قد إيه من اللاتنت الأصلي بيتغير: 1.0 للـ text-to-image، و0.3-0.7 للـ img2img والـ hires passes. KSampler (Advanced) بيعرض خطوات البداية والنهاية للسمبلينج متعدد المراحل.
المدخلات
الاسم | النوع | ما هو |
|---|---|---|
model | MODEL | موديل إزالة الضوضاء، بعد أي باتشات LoRA أو ControlNet. |
positive | CONDITIONING | اللي عايزه (من CLIP Text Encode، ممكن يكون عبر ControlNet Apply). |
negative | CONDITIONING | اللي مش عايزه. |
latent_image | LATENT | اللاتنت اللي بتبدأ بيه: ضوضاء فاضية أو صورة مشفرة. |
seed | INT | بذرة الضوضاء. نفس البذرة والإعدادات بتطلع نفس الصورة. control_after_generate بيحدد إذا كانت ثابتة، بتزيد، بتقل أو عشوائية. |
steps | INT | عدد خطوات إزالة الضوضاء. 20-30 لمعظم موديلات SD، 4-8 لموديلات Lightning، Turbo وLCM. |
cfg | FLOAT | مقياس التوجيه بدون مصنف. 5-8 لـ SD 1.5 وSDXL، 1.0 لـ Flux والموديلات المقطرة. |
sampler_name | COMBO | خوارزمية السامبلينج. |
scheduler | COMBO | جدول الضوضاء. |
denoise | FLOAT | نسبة الضوضاء اللي بتتشال. 1.0 = تبدأ من جديد؛ أقل منها بيخلي جزء من الصورة الأصلية موجود. |
المخرجات
الاسم | النوع | ما هو |
|---|---|---|
LATENT | LATENT | اللاتنت اللي تم سمبلته عشان VAE Decode أو سامبلر تاني. |
كيفية استخدام KSampler
- وصل MODEL، الاتنين CONDITIONING وLATENT.
- حدد الخطوات 25، cfg 7، dpmpp_2m مع karras لـ SDXL؛ euler مع simple، cfg 1 لـ Flux.
- خلي denoise على 1.0 عشان صورة جديدة.
- وصل LATENT لـ VAE Decode وبعدين احفظ الصورة.
- حطها في الطابور، وبعدين ثبت البذرة لما تحب تعيد على البرومبت.
الإعدادات والنصائح
- dpmpp_2m + karras هو الاختيار العام؛ euler_ancestral بيضيف تنوع لكنه مش دايمًا بيستقر؛ dpmpp_2m_sde بيضيف تفاصيل زيادة بس بيقلل التكرار على كروت مختلفة.
- موديلات Lightning، Hyper وTurbo ليها إعدادات خاصة: 4-8 خطوات، cfg 1-2، sgm_uniform أو simple.
- لتمرير hires، مرر اللاتنت الأول من خلال Upscale Latent By وKSampler تاني مع denoise بين 0.4-0.55.
- اضغط Ctrl+Shift+V للصق نود مع وصلاته؛ مفيد لما تعيد تكرار السامبلرز.
- البذرة الثابتة مع نفس الإعدادات بتكرر نفس النتيجة على نفس كرت الشاشة؛ الكروت المختلفة ممكن تظهر اختلاف بسيط.
استكشاف أخطاء KSampler
ضوضاء، ثابت أو بقعة ضبابية بدل صورة
لماذا يحدث
الإعدادات مش مناسبة للموديل: cfg 7 على موديل مقطر، 4 خطوات على موديل عادي، موديل Flux بدون Flux Guidance، أو denoise أقل من 1 على لاتنت فاضي.
كيفية الإصلاح
طابق صفحة الموديل: SD عادي = 20-30 خطوة، cfg 5-8؛ Lightning/Turbo = 4-8 خطوات، cfg 1-2؛ Flux = cfg 1، توجيه 3.5، 20+ خطوة. استخدم denoise 1.0 لما اللاتنت فاضي.
نتيجة مشبعة زيادة، متضخمة، بتباين عالي
لماذا يحدث
cfg عالي جدًا للموديل أو مجموعة LoRA، أو سامبلر ancestral مع خطوات كتير.
كيفية الإصلاح
قلل cfg لـ 4-6، خفف قوة LoRA، أو بدل euler_ancestral بـ dpmpp_2m.
torch.OutOfMemoryError: نفدت الذاكرة على CUDA أثناء السامبلينج
لماذا يحدث
اللاتنت كبير جدًا على الكرت مع حجم الدُفعة ده، أو موديل تاني (ControlNet، upscaler) شغال في نفس الوقت في VRAM.
كيفية الإصلاح
قلل الدقة أو batch_size، استخدم --lowvram، استخدم أوزان fp8، أو قسم تمرير hires في طابور تاني عشان الموديل الأول يتفصل.
خطأ: أشكال mat1 و mat2 مش بتتضرب
لماذا يحدث
الـ conditioning جاي من مشفر نص من عائلة مختلفة عن الموديل (CLIP لـ SD 1.5 في موديل SDXL، أو العكس).
كيفية الإصلاح
وصل CLIP من نفس نقطة التحقق اللي جاي منها الـ MODEL.
الصور بتتغير في كل مرة مع إن البذرة ثابتة
لماذا يحدث
control_after_generate متضبط على عشوائي، أو سامبلر SDE / ancestral بيشتغل مع خلفية غير حتمية.
كيفية الإصلاح
خلي control_after_generate على ثابت وفضل dpmpp_2m أو euler للتكرار الدقيق.
نفس الصورة بتتكرر مع برومبتات مختلفة (البذرة معلقة)
لماذا يحدث
control_after_generate ثابت والضوضاء مسيطرة عند cfg منخفض أو خطوات قليلة.
كيفية الإصلاح
خليه عشوائي أو يزيد، ورفع cfg شوية.
أسئلة حول KSampler
ما الفرق بين KSampler وKSampler (Advanced)؟
النسخة المتقدمة بتضيف add_noise، start_at_step، end_at_step وreturn_with_leftover_noise، وده بيسمح تقسم السامبلينج بين موديلين، زي SDXL الأساسي وبعدين المكرر.
أي سامبلر هو الأسرع؟
euler و dpmpp_2m بياخدوا نداء موديل واحد لكل خطوة؛ النسخ _2s و _3m بياخدوا أكتر. موديلات LCM وLightning سريعة لأنها بتحتاج خطوات قليلة، مش عشان السامبلر.
denoise بيعمل إيه مع لاتنت فاضي؟
أي قيمة أقل من 1.0 بتخلي جزء من الضوضاء الأصلية موجودة في الناتج وبتعمل ضباب. خليك على 1.0 للـ text-to-image.
عُقد ذات صلة
KSampler (Advanced)
ComfyUI core
KSampler (Advanced) هو KSampler مع تحكم في نطاق الخطوات: add_noise، start_at_step، end_at_step و return_with_leftover_noise، يُستخدم لسلاسل base + refiner وعينات من نموذجين.
Empty Latent Image
ComfyUI core
Empty Latent Image ينشئ لوحة كامنة فارغة (العرض، الارتفاع، حجم الدُفعة) التي يبدأ منها أخذ العينات من النص إلى الصورة؛ الأبعاد لازم تكون مضاعفات 8 وتتوافق مع عائلة النموذج.
VAE Decode
ComfyUI core
يقوم VAE Decode بتحويل LATENT المأخوذ إلى صورة بكسلية باستخدام VAE؛ وVAE Decode (Tiled) يعمل نفس الشيء لكن على أجزاء (بلاطات) للصور الكبيرة جداً.
CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text Encode يحول نص البرومبت إلى CONDITIONING باستخدام مشفر النص الخاص بالنموذج. عقدة واحدة تحمل البرومبت الإيجابي، والثانية تحمل البرومبت السلبي.
Upscale Latent and Upscale Latent By
ComfyUI core
Upscale Latent بيكبر اللاتنت لحجم جديد (أو بنسبة معينة) عشان KSampler التاني يضيف تفاصيل بدقة أعلى: ده الحل الكلاسيكي لمشكلة الدقة العالية.
المزيد من عُقد ComfyUI
ComfyUI Manager
ComfyUI-Manager
ComfyUI Manager هو الإضافة اللي بتثبت، تحدث وتصلح حزم العقد المخصصة والنماذج من داخل الواجهة، بتحل مشكلة العقد المفقودة في سير العمل المستورد وبتسجل إعداداتك.
Load Checkpoint
ComfyUI core
Load Checkpoint (CheckpointLoaderSimple) يفتح ملف نموذج .safetensors أو .ckpt ويعطيك الأجزاء الثلاثة اللي يحتاجها أي سير عمل: نموذج diffusion MODEL، مشفر النص CLIP، وVAE.
Save Image
ComfyUI core
Save Image يكتب مصفوفة IMAGE إلى ComfyUI/output كملف PNG، مع تضمين سير العمل الكامل في بيانات الملف الوصفية بحيث يمكن سحب الصورة مرة أخرى إلى ComfyUI لاستعادة الرسم البياني.
Load Image
ComfyUI core
Load Image يقرأ صورة من مجلد الإدخال في ComfyUI (أو من رفع ملف) ويخرج صورة كـ IMAGE tensor بالإضافة إلى MASK مأخوذة من قناة الألفا، وهي نقطة البداية لـ img2img، inpainting، ControlNet و IP-Adapter في الرسوم البيانية.
Load LoRA
ComfyUI core
Load LoRA (LoraLoader) يطبق ملف LoRA على MODEL و CLIP بقوى منفصلة، بحيث يمكن إضافة نمط أو شخصية أو مفهوم لأي نقطة تحقق بدون دمج.
Load Diffusion Model
ComfyUI core
يقوم Load Diffusion Model (UNETLoader) بتحميل شبكة إزالة التشويش الأساسية مثل Flux، SD3.5، Wan أو HunyuanVideo من models/diffusion_models، مع خيار weight_dtype لـ fp8 لتوفير ذاكرة الفيديو (VRAM).
