نود KSampler در ComfyUI
KSampler حلقه حذف نویز رو اجرا میکنه: مدل، پرامپتها و یک latent رو میگیره و تصویر نهایی latent رو تولید میکنه، که با seed، steps، cfg، sampler، scheduler و denoise کنترل میشه.
KSampler چه میکند
KSampler جاییه که تصویر واقعاً ساخته میشه. از latent ورودی شروع میکنه (نویز تصادفی از 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 کنترل میکنه چقدر از latent ورودی جایگزین بشه: 1.0 برای متن به تصویر، 0.3-0.7 برای img2img و مراحل با کیفیت بالا. KSampler (Advanced) شروع و پایان مراحل برای نمونهگیری چندمرحلهای رو نشون میده.
ورودیها
نام | نوع | چیست |
|---|---|---|
model | MODEL | مدل حذف نویز، بعد از هر پچ LoRA یا ControlNet. |
positive | CONDITIONING | چیزی که میخوای (از CLIP Text Encode، احتمالاً از طریق ControlNet Apply). |
negative | CONDITIONING | چیزی که نمیخوای. |
latent_image | LATENT | latent شروع: نویز خالی یا تصویر کدگذاری شده. |
seed | INT | بذر نویز. با همون بذر و تنظیمات تصویر یکسان تولید میشه. control_after_generate میتونه ثابت، افزایش، کاهش یا تصادفی باشه. |
steps | INT | تعداد مراحل حذف نویز. برای بیشتر مدلهای SD بین 20-30، برای Lightning، Turbo و مدلهای LCM بین 4-8. |
cfg | FLOAT | مقیاس راهنمایی بدون طبقهبندی. برای SD 1.5 و SDXL بین 5-8، برای Flux و مدلهای تقطیر شده 1.0. |
sampler_name | COMBO | الگوریتم نمونهگیری. |
scheduler | COMBO | برنامه نویز. |
denoise | FLOAT | نسبت نویزی که باید حذف بشه. 1.0 یعنی از صفر شروع کن؛ مقدار کمتر یعنی بخش بیشتری از تصویر ورودی حفظ میشه. |
خروجیها
نام | نوع | چیست |
|---|---|---|
LATENT | LATENT | latent نمونهگیری شده برای VAE Decode یا نمونهگیر دوم. |
نحوه استفاده از KSampler
- MODEL، هر دو CONDITIONING و یک LATENT رو وصل کن.
- برای SDXL مراحل 25، cfg 7، dpmpp_2m با karras تنظیم کن؛ برای Flux euler با simple و cfg 1.
- denoise رو روی 1.0 برای تصویر تازه تنظیم کن.
- LATENT رو به VAE Decode وصل کن و بعد تصویر رو ذخیره کن.
- صفبندی کن، بعد بذر رو وقتی میخوای روی پرامپت تکرار کنی ثابت کن.
تنظیمات و نکات
- dpmpp_2m + karras انتخاب همهکاره است؛ euler_ancestral تنوع میده ولی هیچوقت همگرا نمیشه؛ dpmpp_2m_sde جزئیات بیشتری میده ولی روی GPUهای مختلف دقیق نیست.
- Lightning، Hyper و Turbo تنظیمات خاص خودشون رو دارن: 4-8 مرحله، cfg 1-2، sgm_uniform یا simple.
- برای مرحله با کیفیت بالا، latent اول رو از Upscale Latent By رد کن و بعد یک KSampler دوم با denoise بین 0.4-0.55.
- برای چسبوندن یک نود با اتصالاتش Ctrl+Shift+V رو نگه دار؛ وقتی نمونهگیرها رو کپی میکنی مفیده.
- بذر ثابت با تنظیمات یکسان روی همون GPU قابل تکراره؛ کارتهای مختلف ممکنه کمی فرق داشته باشن.
عیبیابی KSampler
نویز، تصویر ثابت یا لکه تار به جای تصویر
چرا رخ میدهد
تنظیمات با مدل هماهنگ نیست: cfg 7 روی مدل تقطیر شده، 4 مرحله روی مدل معمولی، مدل Flux بدون Flux Guidance، یا denoise خیلی کمتر از 1 روی latent خالی.
چگونه رفع میشود
صفحه مدل رو چک کن: SD معمولی = 20-30 مرحله، cfg 5-8؛ Lightning/Turbo = 4-8 مرحله، cfg 1-2؛ Flux = cfg 1، راهنمایی 3.5، 20+ مرحله. وقتی latent خالیه denoise رو 1.0 بگذار.
خروجی خیلی پررنگ، اشباع شده یا کنتراست بالا
چرا رخ میدهد
cfg برای مدل یا پشته LoRA خیلی بالاست، یا نمونهگیر ancestral با مراحل زیاد استفاده شده.
چگونه رفع میشود
cfg رو به 4-6 کاهش بده، قدرت LoRA رو کم کن، یا از euler_ancestral به dpmpp_2m تغییر بده.
torch.OutOfMemoryError: CUDA out of memory during sampling
چرا رخ میدهد
latent برای کارت با این اندازه دسته خیلی بزرگه، یا مدل دیگهای (ControlNet، upscaler) همزمان توی VRAM هست.
چگونه رفع میشود
رزولوشن یا batch_size رو کم کن، --lowvram اضافه کن، از وزنهای fp8 استفاده کن، یا مرحله با کیفیت بالا رو توی صف دوم بذار تا مدل اول آزاد بشه.
خطا: mat1 و mat2 قابل ضرب نیستند
چرا رخ میدهد
conditioning از یک انکودر متنی از خانوادهای متفاوت با مدل میاد (مثلاً SD 1.5 CLIP توی مدل SDXL یا برعکس).
چگونه رفع میشود
CLIP رو از همون چکپوینتی که MODEL رو میده وصل کن.
تصاویر هر بار تغییر میکنن با اینکه بذر ثابت هست
چرا رخ میدهد
control_after_generate روی randomize تنظیم شده، یا نمونهگیر SDE / ancestral با بکاند غیرقطعی استفاده میشه.
چگونه رفع میشود
control_after_generate رو روی fixed بگذار و برای تکرار دقیق dpmpp_2m یا euler رو ترجیح بده.
همان تصویر در پرامپتهای مختلف تکرار میشود (بذر گیر کرده)
چرا رخ میدهد
control_after_generate روی fixed است و نویز در cfg یا مراحل کم غالب شده.
چگونه رفع میشود
اون رو روی randomize یا increment بگذار و کمی cfg رو بالا ببر.
پرسشها درباره KSampler
تفاوت KSampler و KSampler (Advanced) چیه؟
نسخه پیشرفته add_noise، start_at_step، end_at_step و return_with_leftover_noise رو اضافه میکنه که اجازه میده نمونهگیری رو بین دو مدل تقسیم کنی، مثلاً اول SDXL base بعد refiner.
کدوم نمونهگیر سریعتره؟
euler و dpmpp_2m هر مرحله یک بار مدل رو صدا میزنن؛ نسخههای _2s و _3m بیشتر. مدلهای LCM و Lightning سریعن چون مراحل کمی لازم دارن، نه به خاطر نمونهگیر.
denoise با latent خالی چیکار میکنه؟
هر چی کمتر از 1.0 باشه، بخشی از نویز اصلی توی خروجی میمونه و مه ایجاد میکنه. برای متن به تصویر 1.0 نگه دار.
نودهای مرتبط
KSampler (Advanced)
ComfyUI core
KSampler (پیشرفته) نسخهای از KSampler است که کنترل محدوده مرحله دارد: add_noise، start_at_step، end_at_step و return_with_leftover_noise، که برای زنجیرههای پایه + تصفیهکننده و نمونهگیری دو مدلی استفاده میشود.
Empty Latent Image
ComfyUI core
Empty Latent Image یک بوم خالی در فضای نهان (عرض، ارتفاع، اندازه دسته) ایجاد میکند که نمونهگیری متن به تصویر از آن شروع میشود؛ ابعاد باید مضربی از ۸ باشند و با خانواده مدل همخوانی داشته باشند.
VAE Decode
ComfyUI core
رمزگشایی VAE نمونه LATENT را با استفاده از VAE به تصویر پیکسلی تبدیل میکند؛ رمزگشایی VAE (کاشیشده) همین کار را به صورت کاشی برای تصاویر خیلی بزرگ انجام میدهد.
CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text Encode یک متن پرامپت رو با استفاده از مدل انکودر متن به CONDITIONING تبدیل میکنه. یک نود پرامپت مثبت رو نگه میداره و نود دوم پرامپت منفی رو.
Upscale Latent and Upscale Latent By
ComfyUI core
Upscale Latent اندازه یک latent را به اندازه جدید (یا بر اساس یک ضریب) تغییر میدهد تا یک KSampler دوم بتواند در وضوح بالاتر جزئیات اضافه کند: این روش همان رفع کلاسیک hires است.
نودهای بیشتر ComfyUI
ComfyUI Manager
ComfyUI-Manager
ComfyUI Manager افزونهای است که بستهها و مدلهای سفارشی را از داخل رابط نصب، بهروزرسانی و رفع مشکل میکند، گرههای گمشده در جریانهای کاری وارد شده را حل میکند و تنظیمات شما را ذخیره میکند.
Load Checkpoint
ComfyUI core
Load Checkpoint (CheckpointLoaderSimple) یک فایل مدل .safetensors یا .ckpt را باز میکند و سه بخش اصلی که هر ورکفلو نیاز دارد را تحویل میدهد: مدل diffusion، کدگذار متن CLIP و VAE.
Save Image
ComfyUI core
Save Image تصویر IMAGE را به صورت PNG در پوشه ComfyUI/output ذخیره میکند، بهطوری که کل روند کاری در متادیتای فایل جاسازی شده تا بتوان تصویر را دوباره به ComfyUI کشید و گراف را بازیابی کرد.
Load Image
ComfyUI core
Load Image یک تصویر را از پوشه ورودی ComfyUI (یا آپلود شده) میخواند و یک تنسور IMAGE به همراه یک MASK که از کانال آلفا گرفته شده است، خروجی میدهد. این نقطه شروع برای گرافهای img2img، inpainting، ControlNet و IP-Adapter است.
Load LoRA
ComfyUI core
بارگذاری 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 را ذخیره میکند.
