Sampler

sampling method — численный путь от шума к изображению

Раздел
Сэмплеры
Сокращ.
sampling method
Обновлено
11.08.26

Sampler задаёт правило, по которому диффузионная модель обновляет noisy latent на каждом шаге. Он работает вместе с scheduler, checkpoint и числом шагов. Универсально лучшего алгоритма нет: кандидатов сравнивают на одинаковых seed и сценах.

Коротко

Коротко. Деноизер оценивает, как изменить текущий latent, а sampler превращает эту оценку в следующий шаг траектории. Euler, DDIM, DPM++ и другие методы по-разному балансируют скорость, устойчивость и случайность. Их поведение зависит от scheduler и модели.

Зачем нужен sampler

Диффузионная модель обучена работать с зашумлёнными данными. Во время генерации нужно решить численную задачу: пройти от высокого уровня шума к низкому, используя конечное число оценок сети.

Sampler определяет:

  • как вычислить следующее состояние;
  • использовать ли одну или несколько оценок denoiser на шаг;
  • добавлять ли новую случайность;
  • как учитывать предыдущие оценки;
  • как обрабатывать непрерывную или дискретную шумовую траекторию.

Он не заменяет саму модель. Один sampler не превратит слабый checkpoint в другой, но способен заметно изменить детализацию и стабильность.

Sampler и scheduler

Названия часто объединяют два понятия.

Sampler — правило численного обновления. Scheduler — последовательность уровней шума или сигм, по которым идёт алгоритм.

Поэтому DPM++ 2M и DPM++ 2M Karras — не просто одно и то же название разной длины: во втором случае указан способ распределить шаги. Интерфейсы могут показывать эти параметры в одном списке или двумя полями.

Основные семейства

Euler и Heun

Методы этого семейства просты и понятны как базовые численные решатели. Heun использует дополнительную коррекцию и может требовать больше оценок сети на шаг.

Ancestral-методы

Варианты с a обычно добавляют случайность по ходу траектории. Это может дать разнообразие, но усложняет точное воспроизведение промежуточных стадий и согласованность серии.

DDIM

DDIM предлагает детерминированную траекторию при фиксированных условиях и исторически широко применялся для генерации и инверсии. Реальное совпадение всё равно зависит от реализации, устройства и всех параметров.

DPM-Solver и DPM++

Это семейство высокопорядковых методов, рассчитанных на эффективное решение диффузионной траектории. Суффиксы описывают порядок, использование нескольких прошлых оценок и стохастический режим.

Ускоренные consistency-подходы

LCM и родственные методы связаны не только с выбором sampler. Обычно нужна модель или адаптер, обученный для короткой траектории. Применить название LCM к обычному checkpoint недостаточно для ожидаемого результата.

Детерминированность

Фиксированный seed помогает сравнивать параметры, но не гарантирует одинаковые пиксели между всеми средами. Различия дают:

  • stochastic sampler;
  • backend и precision;
  • порядок операций;
  • версия ноды или библиотеки;
  • начальный шум и способ его генерации;
  • изменения checkpoint, VAE и адаптеров.

Для воспроизводимости сохраняют весь workflow и версии, а не только seed.

Наглядный пример

Художник сравнивает три sampler на одном prompt. Он фиксирует checkpoint, seed, размер, CFG и scheduler, если тот выбирается отдельно.

Для каждого кандидата делает несколько значений steps и смотрит:

  • когда появляется устойчивая композиция;
  • сколько оценок denoiser потребовалось;
  • как ведут себя мелкие текстуры;
  • повторяется ли результат;
  • не меняются ли лица и фон в серии.

Рабочим становится не самый модный sampler, а тот, который даёт нужный результат в допустимое время на нескольких сценах.

Число шагов и NFE

Один step интерфейса не всегда равен одному вызову модели. Predictor-corrector и некоторые solver могут обращаться к denoiser несколько раз. Поэтому для честного сравнения полезно учитывать NFE — число оценок функции.

Больше steps помогает только до точки насыщения. Дальше растут вычисления, а характер изображения может почти не меняться.

Sampler для img2img

В img2img траектория начинается не с полного шума, а с зашумлённого представления исходника. На результат одновременно влияют sampler, scheduler, steps и denoise strength.

Разные интерфейсы по-разному переводят strength в участок траектории. Поэтому один и тот же видимый набор чисел не всегда означает одинаковое вычисление.

Анимация и серии

Для последовательности важна согласованность между кадрами. Детерминированный sampler упрощает контроль, но сам по себе не удерживает персонажа и движение. Нужны временная модель, общие условия, coherent noise или другие способы связи кадров.

Ancestral-случайность может усилить мерцание, однако утверждение «любая буква a запрещена для видео» слишком категорично. Решение проверяют на точном pipeline.

Sampler в ComfyUI

ComfyUI позволяет выбирать sampler, scheduler и steps отдельно либо строить собственную последовательность sigmas. Custom nodes могут добавлять новые реализации и менять названия.

При переносе workflow проверяют:

  • наличие того же алгоритма;
  • трактовку scheduler;
  • denoise и начальный шаг;
  • поддержку архитектуры модели;
  • версию расширения.

Встроенный Manager помогает управлять custom nodes, но не подтверждает математическую эквивалентность разных реализаций.

Частые ошибки

  • Выбирать один sampler «навсегда». Он может быть хорош для одного checkpoint и слаб для другого.
  • Сравнивать разные seed. Причина изменения теряется.
  • Игнорировать scheduler. Он заметно меняет распределение шагов.
  • Считать step одинаковой работой. NFE у методов различается.
  • Применять ускоренный режим без совместимой модели. Короткая траектория требует соответствующего обучения.
  • Ожидать пиксельной идентичности на другой системе. Численная реализация может отличаться.

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

С какого sampler начать?

С рекомендованного авторами точной модели или workflow. Затем сравнить ещё один-два кандидата на сохранённом наборе seed.

Почему один sampler выглядит резче?

Траектория и распределение шума меняют высокочастотные детали. Резкость может быть полезной текстурой или артефактом, поэтому её оценивают на лице, тексте и границах.

Стохастический sampler всегда даёт новый результат?

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

Можно ли сменить sampler в середине?

Некоторые workflow разделяют траекторию на этапы. Это требует согласованных sigmas и проверки стыка; простая смена названия не гарантирует корректность.

Главное

Sampler — численный маршрут по предсказаниям диффузионной модели. Он работает только в связке с scheduler, steps и checkpoint. Лучший выбор находится небольшим воспроизводимым сравнением, а не вечным preset из чужой таблицы.