Sampler
sampling method — численный путь от шума к изображению
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. Лучший выбор находится небольшим воспроизводимым сравнением, а не универсальным пресетом из чужой таблицы.