KSampler

ksampler — главный узел сэмплера в ComfyUI

Раздел
Сэмплеры
Обновлено
04.07.26

KSampler — центральный узел диффузионного пайплайна в ComfyUI. Он получает на вход модель, два промпта (положительный и отрицательный) и пустой латент, а возвращает шумоподавленный латент за заданное число шагов. Главные параметры: seed (стартовый шум), steps (количество шагов), cfg (сила следования промпту), sampler_name (алгоритм) и scheduler (расписание шума). В одной ноде сходятся все ключевые настройки генерации.

Коротко

Коротко. KSampler — это нода в ComfyUI, в которой собраны все параметры генерации картинки: seed, шаги, CFG, выбор сэмплера и шедулера. На вход — модель, два промпта и латент. На выход — латент после шумоподавления. Большинство пайплайнов в ComfyUI крутится именно вокруг KSampler, остальные узлы — обвязка.

Что это такое

В Automatic1111 параметры генерации разбросаны по форме: вы видите ползунки Steps, CFG, Sampler отдельно, в разных местах вкладки. В ComfyUI всё это собрано в одну ноду — KSampler. Она занимает центральное место в любом базовом workflow.

Технически «K» в названии — отсылка к k-diffusion, библиотеке сэмплеров от Katherine Crowson, на которой ComfyUI построен. K-diffusion реализует все основные алгоритмы шумоподавления: Euler, DPM++, DDIM, UniPC и десятки других.

KSampler — это обёртка над k-diffusion, которая принимает входы и параметры в формате нод ComfyUI и возвращает обработанный латент. Без KSampler пайплайн ничего не сгенерирует: даже если есть модель, промпт и пустой латент, нужен кто-то, кто проведёт латент по шагам диффузии.

В ComfyUI есть две основные версии узла:

  • KSampler — стандартный, для большинства задач. 7 параметров.
  • KSamplerAdvanced — продвинутый, для составных пайплайнов. Добавляет start_step, end_step, return_with_leftover_noise. Используется для SDXL Base + Refiner, для частичного шумоподавления, для AnimateDiff.

Практически это узел, вокруг которого чаще всего строится диагностика. Если workflow скачан с CivitAI, модель загрузилась, промпты подключены, а результат всё равно выглядит странно, первым делом смотрят не на красивую LoRA и не на VAE, а сюда: какие steps, какой sampler, какой scheduler, не уехал ли denoise, не слишком ли высокий CFG.

Как это работает

Базовый узел KSampler выглядит как блок с четырьмя входами и одним выходом.

Входы:

  • modelнейросеть (U-Net), приходит от Load Checkpoint.
  • positiveэмбеддинг положительного промпта от CLIP Text Encode.
  • negative — эмбеддинг отрицательного промпта.
  • latent_image — стартовый латент (обычно пустой шум из Empty Latent Image).

Параметры в самом узле:

  • seed — стартовое число для шума.
  • control_after_generate — что делать с seed после генерации (fixed / increment / randomize).
  • stepsколичество шагов диффузии (обычно 20–30 для SDXL, 4–6 для FLUX Schnell).
  • cfgсила следования промпту (6–8 для SDXL, 1 для FLUX, 1–2 для Turbo/Lightning).
  • sampler_name — алгоритм шумоподавления (Euler, DPM++ 2M, DDIM и прочие).
  • scheduler — расписание уровней шума (Karras, Beta, Simple, Normal).
  • denoiseсила шумоподавления (1.0 для txt2img, 0.4–0.8 для img2img).

Выход:

  • latent — обработанный латент после всех шагов диффузии. Дальше идёт в VAE Decode.

Быстрый смысл параметров:

Параметр Что меняет Когда трогать
seed стартовый шум и композицию когда нужно повторить или перебрать варианты
steps длину пути от шума к картинке когда картинка недоделана или рендер слишком долгий
cfg силу давления промпта когда модель не слушается или картинка «пережарена»
sampler_name характер движения по шуму когда нужен другой рисунок деталей и текстур
scheduler распределение шума по шагам когда sampler нормальный, но результат нестабилен
denoise насколько переписать входной латент когда работаете с img2img, inpainting или вторым проходом

Пример на практике

Иллюстратору нужен пайплайн SDXL Base + Refiner: основная модель делает 80% работы, refiner полирует финальные шаги. Это классический сценарий KSamplerAdvanced.

В ComfyUI он собирает:

  1. Первый KSamplerAdvanced на SDXL Base. Параметры: steps=30, start_step=0, end_step=24, return_with_leftover_noise=enable. То есть из 30 шагов делает первые 24, остаток шума передаёт дальше.
  2. Второй KSamplerAdvanced на SDXL Refiner. Параметры: steps=30, start_step=24, end_step=30, return_with_leftover_noise=disable. Завершает оставшиеся 6 шагов на refiner-модели.

Результат — лучшая чёткость в деталях, чем при чистом Base. Время на кадр — 14 секунд (вместо 12 без refiner). Для коммерческих рендеров оправдано.

Альтернативный сценарий с денойзом — приём «второй проход». Сгенерировал картинку, не нравится мелочь — берёт результат, прогоняет через VAE Encode → KSampler с denoise=0.4 и тем же промптом. Второй проход переписывает только часть деталей: лицо становится чище, остальная композиция сохраняется.

Если вы пришли из ComfyUI

В ComfyUI KSampler часто пугает не сложностью, а количеством маленьких ручек. На экране вроде обычный прямоугольник, но внутри сидит половина характера картинки. Один лишний пункт в выпадающем списке — и вместо аккуратного портрета получается пластиковая открытка.

Для первого рабочего txt2img-пайплайна держите простой маршрут:

  1. Load CheckpointCLIP Text Encode positive / negative.
  2. Empty Latent Image с нужным размером.
  3. Всё это в KSampler.
  4. VAE DecodeSave Image.

Стартовые настройки, от которых удобно отталкиваться:

Модель steps cfg sampler scheduler denoise
SD 1.5 20-25 6-8 dpmpp_2m karras 1.0
SDXL 25-30 5-7 dpmpp_2m_sde karras 1.0
FLUX Dev 20 1.0 euler simple 1.0
FLUX Schnell 4 1.0 euler simple 1.0
img2img / второй проход 15-25 как в txt2img тот же тот же 0.35-0.65

Если картинка развалилась, не меняйте всё сразу. Зафиксируйте seed, потом двигайте один параметр: сначала denoise, затем cfg, затем sampler/scheduler. Так видно, что именно улучшило кадр. Это скучнее, чем хаотично крутить все ручки, зато быстрее приводит к рабочему workflow.

С чем часто путают

  • KSampler и Sampler — KSampler это нода ComfyUI, Sampler это алгоритм внутри неё (Euler, DPM++). Узел один — алгоритмов десятки.
  • KSampler и KSamplerAdvanced — Advanced даёт ручной контроль над start/end шагами и оставшимся шумом. Для базовых задач лишний, для пайплайнов Base+Refiner необходим.
  • KSampler и Empty Latent Image — Empty Latent создаёт стартовый шум (входной для KSampler). KSampler потом этот шум шумоподавляет.
  • KSampler и VAE Decode — KSampler возвращает латент, VAE Decode превращает его в пиксели. Это последовательные узлы, не альтернативы.

Частые ошибки и заблуждения

  • «Чем больше steps, тем лучше». До определённого порога. На SDXL разница между 25 и 50 шагами обычно не видна глазом, время удваивается. На FLUX Schnell больше 6 шагов — пустая трата времени, модель не училась на длинных трактах.
  • «CFG=20 даёт самое точное следование промпту». Наоборот. Высокий CFG «пережаривает» картинку: пересвет, артефакты, неестественные цвета. Оптимум для SDXL — 5–8, для Flux Dev — 3.5, для Flux Schnell — 1.
  • «Sampler и scheduler связаны жёстко». Не всегда. Некоторые комбинации работают плохо (DDIM Uniform с Euler), но большинство сэмплеров и шедулеров взаимозаменяемы. Подробнее — в статьях про Sampler и Scheduler.
  • «KSampler у FLUX-моделей такой же». Похожий, но FLUX часто использует свои варианты: SamplerCustom, BasicScheduler. Параметры (cfg=1, steps=20) другие. Готовые FLUX-workflow обычно уже всё настраивают за вас.
  • «seed=-1 в KSampler даёт случайный seed каждый раз». В ComfyUI seed=-1 (или 0) — это не «random» из коробки. Для рандомизации используют параметр control_after_generate: randomize, а не значение seed.

Связанные термины

  • ComfyUI — интерфейс, в котором живёт KSampler.
  • ComfyUI с нуля — практический маршрут, где KSampler показан внутри полного workflow.
  • Sampler — алгоритм внутри узла (Euler, DPM++, DDIM).
  • Scheduler — расписание уровней шума по шагам.
  • CFG Scaleсила следования промпту.
  • Seed — стартовое число для шума.
  • Denoising Strength — насколько сильно KSampler переписывает входной латент.
  • Stepsколичество шагов диффузии.
  • Refiner — частый сценарий для KSamplerAdvanced.
  • VAE Decode — следующий за KSampler узел, превращает латент в картинку.
  • Latent Space — пространство, в котором KSampler работает до VAE Decode.
  • KSamplerAdvanced — продвинутая версия для составных пайплайнов.

Частые вопросы

Какие параметры KSampler выставлять по умолчанию? Для SDXL Base: steps 28, cfg 6.0, sampler dpmpp_2m, scheduler karras, denoise 1.0. Для FLUX Dev: steps 20, cfg 1.0, sampler euler, scheduler simple, denoise 1.0. Для FLUX Schnell: steps 4, cfg 1.0, sampler euler, scheduler simple.

В чём разница между control_after_generate fixed и randomize? fixed — seed не меняется после каждой генерации, вы получаете тот же кадр повторно. randomize — после каждого запуска seed случайный, удобно для перебора. increment — +1 к seed каждый раз, удобно для серии «соседних» картинок.

Можно ли вернуть оставшийся шум из KSampler? В обычном KSampler нет. В KSamplerAdvanced — да, через return_with_leftover_noise: enable. Это и нужно для SDXL Base+Refiner: первый узел не доводит шум до конца, передаёт остаток второму.

KSampler работает с FLUX? Да, обычный KSampler поддерживает FLUX из коробки. Но для лучшего качества часто используют специализированные узлы вроде SamplerCustomAdvanced с FluxGuidance. Готовые FLUX-workflow с CivitAI уже всё настраивают.

Сколько KSampler-ов может быть в пайплайне? Сколько угодно. Часто используется два (Base+Refiner) или три (Base+Refiner+detail-pass). Каждый берёт латент от предыдущего и добавляет свой проход. Главное — следить за общим количеством шагов и временем.

Главное

KSampler — это сердце ComfyUI. В нём собраны все ключевые параметры генерации: seed, шаги, CFG, sampler, scheduler, denoise. Знать его параметры по памяти — значит свободно собирать пайплайны от черновика до Base+Refiner. KSamplerAdvanced берётся, когда нужен ручной контроль над частичным шумоподавлением. Если что-то в пайплайне идёт не так — диагностику обычно начинают именно отсюда.