Sampler

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

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

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

Коротко

Сэмплер (sampler) вычисляет следующий шаг генерации по прогнозу модели. Модель удаления шума, или деноизер, получает текущее состояние. В латентной диффузии это латент — сжатое внутреннее представление изображения. Сэмплер использует прогноз, чтобы обновить это состояние. Euler, DDIM, DPM++ и другие методы по-разному балансируют скорость, устойчивость и случайность. Их поведение зависит от расписания уровней шума (scheduler) и модели.

Зачем нужен сэмплер

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

Сэмплер определяет:

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

Он не заменяет саму модель. Сэмплер не заменяет обученные веса модели, но способен заметно изменить детализацию и стабильность.

Sampler и scheduler

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

Sampler — правило численного обновления. Scheduler в таком разделении задаёт последовательность уровней шума или сигм, по которым идёт алгоритм. В некоторых библиотеках, например Diffusers, словом scheduler называют компонент, объединяющий расписание и правило обновления.

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

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

Euler и Heun

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

Ancestral-методы

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

DDIM

DDIM допускает детерминированный режим при параметре eta=0; при ненулевом eta в процесс может добавляться шум. Метод также используют для генерации и инверсии — приближённого движения от изображения к шумовому состоянию. Реальное совпадение всё равно зависит от реализации, устройства и всех параметров.

DPM-Solver и DPM++

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

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

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

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

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

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

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

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

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

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

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

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

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

Один шаг в интерфейсе не всегда равен одной оценке модели. Некоторые решатели сначала делают прогноз, затем корректируют его с новой оценкой. Поэтому для сопоставимого сравнения полезно учитывать NFE — число оценок функции.

Больше шагов может помочь, но улучшение не обязано быть непрерывным. После некоторого числа результат часто меняется мало, а вычисления продолжают расти. У специально ускоренных моделей лишние шаги могут и ухудшить изображение.

Sampler для img2img

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

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

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

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

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

Sampler в ComfyUI

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

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

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

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

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

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

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

С какого сэмплера начать?

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

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

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

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

Нет. Дополнительный шум тоже может воспроизводиться при фиксированных генераторах случайных чисел и одинаковой среде. Стохастический алгоритм не означает обязательную неповторимость каждого запуска.

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

Некоторые workflow разделяют траекторию на этапы. Это требует согласованных уровней шума и проверки стыка. Многошаговые методы также используют историю предыдущих оценок: при перезапуске она может потеряться, и продолжение уже не будет эквивалентно одному непрерывному запуску.

Главное

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

Источники