KSampler
ksampler — главный узел сэмплера в ComfyUI
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 он собирает:
- Первый KSamplerAdvanced на SDXL Base. Параметры: steps=30, start_step=0, end_step=24, return_with_leftover_noise=enable. То есть из 30 шагов делает первые 24, остаток шума передаёт дальше.
- Второй 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-пайплайна держите простой маршрут:
Load Checkpoint→CLIP Text Encodepositive / negative.Empty Latent Imageс нужным размером.- Всё это в
KSampler. VAE Decode→Save 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 берётся, когда нужен ручной контроль над частичным шумоподавлением. Если что-то в пайплайне идёт не так — диагностику обычно начинают именно отсюда.