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