Model
.ai
śledzimy otwarte modele AI

Węzeł KSampler w ComfyUI

KSampler wykonuje pętlę odszumiania: bierze model, prompt i latent, i tworzy gotowy latent obrazu, kontrolowany przez seed, kroki, cfg, sampler, scheduler i denoise.
Pakiet węzłów: ComfyUI core
Kategoria: Samplowanie
Author: comfyanonymous

Co robi KSampler

KSampler to miejsce, gdzie obraz faktycznie powstaje. Zaczyna od wejściowego latenta (losowy szum z Empty Latent Image lub zakodowany obraz dla img2img), prosi model o usunięcie szumu przez wybraną liczbę kroków, przyciągając do pozytywnego promptu i odsuwając od negatywnego o wartość cfg. Wynikiem jest LATENT, który VAE Decode zamienia na obraz.
sampler_name wybiera metodę numeryczną (euler, euler_ancestral, dpmpp_2m, dpmpp_2m_sde, dpmpp_3m_sde, uni_pc, lcm, ...) a scheduler krzywą szumu (normal, karras, exponential, sgm_uniform, simple, beta). denoise kontroluje, ile z wejściowego latenta jest zastąpione: 1.0 dla text-to-image, 0.3-0.7 dla img2img i przejść hires. KSampler (Advanced) pozwala ustawić start i end steps dla wieloetapowego próbkowania.

Wejścia

Nazwa
Typ
Co to jest
model
MODEL
Model do odszumiania, po wszelkich poprawkach LoRA lub ControlNet.
positive
CONDITIONING
To, co chcesz uzyskać (z CLIP Text Encode, ewentualnie przez ControlNet Apply).
negative
CONDITIONING
To, czego nie chcesz.
latent_image
LATENT
Początkowy latent: pusty szum lub zakodowany obraz.
seed
INT
Seed szumu. Ten sam seed i ustawienia dają ten sam obraz. control_after_generate ustawia fixed, increment, decrement lub randomize.
steps
INT
Liczba kroków odszumiania. 20-30 dla większości modeli SD, 4-8 dla Lightning, Turbo i LCM.
cfg
FLOAT
Skala classifier-free guidance. 5-8 dla SD 1.5 i SDXL, 1.0 dla Flux i modeli destylowanych.
sampler_name
COMBO
Algorytm próbkowania.
scheduler
COMBO
Harmonogram szumu.
denoise
FLOAT
Ułamek szumu do usunięcia. 1.0 = start od zera; niższe wartości zachowują więcej z obrazu wejściowego.

Wyjścia

Nazwa
Typ
Co to jest
LATENT
LATENT
Wylosowany latent do VAE Decode lub kolejnego sampler.

Jak używać KSampler

  1. Podłącz MODEL, oba CONDITIONING i LATENT.
  2. Ustaw steps na 25, cfg na 7, dpmpp_2m z karras dla SDXL; euler z simple, cfg 1 dla Flux.
  3. Ustaw denoise na 1.0, żeby zacząć od nowa.
  4. Podłącz LATENT do VAE Decode, a potem do Save Image.
  5. Dodaj do kolejki, potem ustaw seed na stały, gdy chcesz iterować nad promptem.

Ustawienia i wskazówki

  • dpmpp_2m + karras to uniwersalny wybór; euler_ancestral dodaje różnorodność, ale nigdy nie zbiega się do jednego wyniku; dpmpp_2m_sde daje więcej detali, ale kosztem powtarzalności między GPU.
  • Checkpointy Lightning, Hyper i Turbo potrzebują własnych ustawień: 4-8 kroków, cfg 1-2, sgm_uniform lub simple.
  • Dla przejścia hires, podaj pierwszy latent przez Upscale Latent By i drugi KSampler z denoise 0.4-0.55.
  • Przytrzymaj Ctrl+Shift+V, żeby wkleić node z połączeniami; przydatne przy duplikowaniu samplerów.
  • Stały seed z tymi samymi ustawieniami jest powtarzalny na tym samym GPU; różne karty mogą dawać trochę inne wyniki.

Rozwiązywanie problemów z KSampler

Szum, statyczny obraz lub rozmazana plama zamiast obrazu

Dlaczego tak się dzieje
Ustawienia nie pasują do modelu: cfg 7 na modelu destylowanym, 4 kroki na normalnym modelu, model Flux bez Flux Guidance, albo denoise dużo poniżej 1 na pustym latencie.

Jak to naprawić
Dopasuj do strony modelu: normalny SD = 20-30 kroków, cfg 5-8; Lightning/Turbo = 4-8 kroków, cfg 1-2; Flux = cfg 1, guidance 3.5, 20+ kroków. Używaj denoise 1.0, gdy latent jest pusty.

Przepalone, przesycone, zbyt kontrastowe wyjście

Dlaczego tak się dzieje
cfg jest za wysokie dla modelu lub stosu LoRA, albo sampler ancestral z dużą liczbą kroków.

Jak to naprawić
Obniż cfg do 4-6, zmniejsz siłę LoRA lub zmień euler_ancestral na dpmpp_2m.

torch.OutOfMemoryError: CUDA out of memory podczas próbkowania

Dlaczego tak się dzieje
Latent jest za duży dla karty przy tym batch size, albo inny model (ControlNet, upscaler) zajmuje VRAM w tym samym czasie.

Jak to naprawić
Zmniejsz rozdzielczość lub batch_size, dodaj --lowvram, użyj wag fp8 lub podziel przejście hires na drugą kolejkę, żeby pierwszy model się zwolnił.

Błąd: mat1 i mat2 mają niezgodne kształty do mnożenia

Dlaczego tak się dzieje
Conditioning pochodzi z enkodera tekstu innej rodziny niż model (SD 1.5 CLIP do modelu SDXL lub odwrotnie).

Jak to naprawić
Podłącz CLIP z tego samego checkpointu, co MODEL.

Obrazy zmieniają się przy każdym uruchomieniu, mimo stałego seeda

Dlaczego tak się dzieje
control_after_generate jest ustawione na randomize lub używany jest sampler SDE / ancestral z niedeterministycznym backendem.

Jak to naprawić
Ustaw control_after_generate na fixed i wybierz dpmpp_2m lub euler dla dokładnej powtarzalności.

Ten sam obraz powtarza się przy różnych promptach (seed zablokowany)

Dlaczego tak się dzieje
control_after_generate jest fixed, a szum dominuje przy niskim cfg lub małej liczbie kroków.

Jak to naprawić
Ustaw na randomize lub increment i lekko podnieś cfg.

Pytania o KSampler

Jaka jest różnica między KSampler a KSampler (Advanced)?

Advanced dodaje add_noise, start_at_step, end_at_step i return_with_leftover_noise, co pozwala podzielić próbkowanie między dwa modele, np. bazowy SDXL, a potem refiner.

Który sampler jest najszybszy?

euler i dpmpp_2m wykonują jedno wywołanie modelu na krok; warianty _2s i _3m więcej. Modele LCM i Lightning są szybkie, bo potrzebują mało kroków, nie przez sampler.

Co robi denoise z pustym latentem?

Wszystko poniżej 1.0 zostawia część oryginalnego szumu w wyjściu i tworzy mgłę. Dla text-to-image trzymaj 1.0.

Więcej węzłów ComfyUI