Scheduler

noise schedule — расписание уровней шума по шагам генерации

Раздел
Сэмплеры
Сокращ.
Karras schedule
Обновлено
18.05.26

Scheduler (шедулер) — правило, по которому при генерации картинки уменьшается уровень шума на каждом шаге диффузии. Семь актуальных шедулеров в 2025 году: Karras, Beta, SGM Uniform, Simple, Normal, Exponential, DDIM Uniform. Каждый сильнее на своей модели: для SDXL и SD 1.5 — Karras, для Flux Dev — Beta или SGM Uniform, для Flux Schnell — Simple. Универсального «лучшего» нет.

Коротко

Коротко. Scheduler — это правило, по которому при генерации картинки уменьшается уровень шума на каждом шаге. У ComfyUI и других интерфейсов сегодня семь актуальных шедулеров — Karras, Beta, SGM Uniform, Simple, Normal, Exponential, DDIM Uniform. Каждый сильнее на своих моделях: для SDXL отлично работает Karras, для Flux Dev часто лучше Beta или SGM Uniform, для Flux Schnell — Simple.

Что это такое

Месяц назад вы спокойно работали с DPM++ 2M Karras на SDXL. Перешли на Flux — и картинки внезапно «потеряли резкость». Тот же сэмплер, тот же промпт, всё то же. Что сломалось?

Не сэмплер. Шедулер.

Сэмплер и шедулер часто путают, но это разные вещи. Сэмплер — это алгоритм (Euler, DPM++, DDIM): он решает, как именно подсчитать следующий шаг. Шедулер — это расписание для этого алгоритма: какие уровни шума должны быть в каждой точке пути.

Сравнить можно с поездкой: сэмплер — это водитель, шедулер — это карта остановок. Водитель может быть отличный, но если карта неудачная — путешествие выйдет тряским.

В ComfyUI это два отдельных параметра в ноде KSampler. В Automatic1111 их часто объединяют в одно выпадающее меню: DPM++ 2M Karras — это сэмплер DPM++ 2M + шедулер Karras. В Forge — отдельные дропдауны.

С 2022 года Karras был де-факто стандартом для SD 1.5 и SDXL и почти полностью вытеснил линейное расписание. Но с появлением Flux в 2024-м картина поменялась: Black Forest Labs оптимизировали свою архитектуру под другие расписания, и на Flux часто лучше работают Beta или Simple, а Karras иногда даёт размытие.

Как это работает

Любая диффузия за N шагов уменьшает шум от σ_max (полный шум) до σ_min (почти чистая картинка). Вопрос — по какой кривой. Каждый шедулер — это математическая функция, которая раздаёт N уровней шума между крайними точками. Вот семь актуальных:

Karras (Тэро Каррас, NVIDIA, 2022). Степенная функция с параметром ρ (обычно 7). Сгущает шаги в области средних шумов, где модель делает критичные решения о структуре, и реже шагает на крайних уровнях. Лучший выбор для SDXL и SD 1.5 — даёт чистую детализацию при 20–25 шагах. Формула:

σ_i = ( σ_max^(1/ρ) + i/(N−1) × (σ_min^(1/ρ) − σ_max^(1/ρ)) )^ρ

Beta (бета-распределение, 2024). Использует кривую beta-функции для распределения шума. Делает переходы между уровнями шума плавнее, чем Karras, особенно в начале и в конце. Хорошо сохраняет тонкие детали и текстуры. Default в Flux и хороший вариант для SDXL, когда нужно сохранить мелкие детали (волосы, ткани). По исследованию Beta Sampling 2024 года, на низких шагах (4–10) превосходит uniform-расписания.

SGM Uniform. Равномерное расписание из теории Score-Based Generative Models. Не сгущает шаги, но использует «правильную» (с математической точки зрения) формулу распределения сигм. Стандарт для Flux Dev в комбинации с DPM++ 2M, рекомендуется для LCM-LoRA и Hyper-SD ускорителей. Помогает, когда Karras даёт размытие на современных моделях.

Simple. Плоское расписание, минимум математики — фактически линейное. Часто рекомендуется для Flux официальной документацией Black Forest Labs. На Flux Schnell с 4–8 шагами Simple даёт стабильно чистый результат.

Normal. Равномерное распределение шагов по уровням шума. Базовая линия — самый предсказуемый и нейтральный шедулер. Подходит как «второй выбор» если Karras/Beta дают артефакты.

Exponential. Front-loaded расписание: большая часть денойзинга происходит в начале, последние шаги едва трогают результат. Может ускорить генерацию, но иногда теряет тонкие детали. Используется для абстрактных стилей и анимации.

DDIM Uniform. Равномерное расписание, специально настроенное под DDIM-сэмплер. Используйте только с DDIM — с другими сэмплерами не имеет смысла.

Помимо этой семёрки, в продвинутых сборках встречаются KL Optimal (математически оптимальное расписание для конкретного сэмплера) и Linear Quadratic (для SD 3.5 и новых Flux-вариантов).

Пример на практике

Видеомонтажёру нужно сгенерировать 100 кадров на трёх разных моделях для AB-тестирования стиля. Бюджет шагов — 25 на кадр.

На SDXL — берёт DPM++ 2M Karras. Чёткая детализация, тонкие текстуры. Время рендера 6 секунд на кадр. Результат на чистовик.

На Flux Dev пробует то же DPM++ 2M Karras — и видит проблему. Лица слегка размытые, мелкие детали смазаны, кожа выглядит «акварельной». Не то.

Переключает на Beta — резкость возвращается, кожа выглядит естественнее, время не меняется. Karras, который полтора года был стандартом, на этой модели проигрывает. Беру Beta.

На Flux Schnell (4 шага вместо 25) — Karras даёт мусор: модель не успевает собраться, картинка в шумных пятнах. Переключает на Simple + Euler — результат живой и собранный за 1 секунду на кадр. То что нужно для быстрого превью.

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

С чем часто путают

  • Шедулер и сэмплер — сэмплер это алгоритм пересчёта следующего шага, шедулер это таблица уровней шума на каждом шаге. В Automatic1111 они слиты в одно меню (DPM++ 2M Karras), в ComfyUI разделены. Поменять можно по отдельности.
  • Karras-шедулер и Karras-сэмплер — Karras это название шедулера, а не сэмплера. Когда видите DPM++ 2M Karras, это сэмплер DPM++ 2M плюс шедулер Karras. Самостоятельного «сэмплера Karras» не существует.
  • Шедулер и noise schedule в обучении — terminologically одно и то же, но в разных контекстах. В обучении noise schedule задаёт, как добавляется шум во время тренировки. В инференсе шедулер задаёт, как шум убирается во время генерации. Чаще говорят про второе.
  • Шедулер и модель — шедулер не зашит в модель. Одну и ту же checkpoint можно гонять с разными шедулерами, и результаты будут разные. Это полностью runtime-параметр.

Частые ошибки и заблуждения

  • Karras — универсальный лучший выбор. Был стандартом 2022–2024 для SD 1.5/SDXL. На Flux Dev часто даёт размытие, на Flux Schnell — мусор. Универсального шедулера нет, привязывайтесь к модели.
  • Шедулер сам по себе ничего не «улучшает». Он лишь распределяет нагрузку по шагам. С плохим сэмплером или мало шагов даже идеальный шедулер не спасёт.
  • Beta, SGM Uniform, Simple — это «старые» расписания. Нет, прямо наоборот: они актуальнее Karras для современных моделей. Beta — главная рекомендация для Flux, SGM Uniform — стандарт для LCM/Hyper-ускорителей.
  • Любой сэмплер с любым шедулером. Технически можно, но не каждая пара даёт хороший результат. DDIM Uniform работает только с DDIM. Karras разработан под dpmpp_*-семейство и Euler. Совместимость лучше смотреть в гайдах ComfyUI.
  • Больше шагов всегда лучше. Нет. С Karras после 25 шагов разница минимальна. С Simple на Flux Schnell хватает 4–8 шагов. Лишние шаги — пустая трата ресурсов.
  • Расписание = модель. Шедулер задаётся в момент инференса и не зашит в модель. Одну и ту же checkpoint можно гонять с разными шедулерами и получать разные результаты.

Связанные термины

  • Sampler — алгоритм денойзинга, использует расписание.
  • Stepsколичество шагов в расписании.
  • CFG Scale — параллельный параметр, контролирует силу промпта.
  • Seed — начальный шум, от которого стартует расписание.
  • Stable Diffusion / SDXL / Flux — у каждой базовой модели свой оптимальный шедулер.

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

Какой шедулер выбрать новичку? Зависит от модели:

  • SD 1.5 / SDXLDPM++ 2M Karras, 20–25 шагов. Рабочий стандарт.
  • Flux DevDPM++ 2M Beta или Euler Beta, 20–28 шагов.
  • Flux SchnellEuler Simple, 4–8 шагов.
  • DDIM-сэмплер (если выбрали именно его) — обязательно DDIM Uniform.

Чем шедулер отличается от сэмплера? Сэмплер — это алгоритм пересчёта следующего шага. Шедулер — это таблица уровней шума, которые должны быть на каждом шаге. Сэмплер использует шедулер как карту.

Можно ли менять шедулер посреди процесса? В стандартных пайплайнах — нет. Расписание задаётся до начала генерации и не меняется. В ComfyUI через продвинутые ноды (KSamplerAdvanced) можно склеить два прохода с разными шедулерами, но это редкий приём.

Beta всегда лучше Karras на Flux? Чаще — да, но не всегда. На сложных композициях с большим количеством мелких деталей Beta даёт более чистый результат. На простых сценах разница незаметна. Пробуйте оба на своём промпте.

Что такое linear_quadratic и kl_optimal? Новые расписания, появившиеся в 2025-м для SD 3.5 и Flux. kl_optimal — оптимальное по теории распределение для конкретной модели. linear_quadratic — гибрид линейного и квадратичного. Используются редко, для большинства задач хватает базовых семи.

Почему в Flux Schnell нет выбора сэмплера и шедулера? В Flux Schnell ускорение достигается за счёт жёсткой связки модели и пайплайна — она тренировалась на конкретной комбинации. Менять её можно, но это часто ломает результат. Дефолт Euler + Simple, 4 шага — оптимум.

Главное

Scheduler — расписание шумоподавления по шагам. Универсального «лучшего» нет: для SDXL и SD 1.5 стандарт — Karras, для Flux Dev — Beta или SGM Uniform, для Flux Schnell — Simple. Эпоха «Karras на всё» закончилась с приходом Flux: новые модели проектируются под другие расписания. При смене базовой модели — всегда переподбирайте шедулер.