C10: Освоение сэмплеров и планировщиков диффузионных моделей: полное руководство

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



Что такое сэмплеры?

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

Как работают сэмплеры

  1. Представление латентного пространства:
    Диффузионные модели работают в латентном пространстве — многомерном представлении изображения. Изначально латентное пространство заполнено случайным шумом.
  2. Итеративное уточнение:
    Сэмплер работает, итеративно удаляя шум из латентного пространства с помощью ряда математических операций. Эти операции определяются алгоритмом сэмплирования, который задаёт темп и способ удаления шума.
  3. Добавление шума (необязательно):
    Некоторые сэмплеры, например ancestral-сэмплеры, добавляют дополнительный шум на каждом шаге. Такой стохастический подход вносит случайность, позволяя модели исследовать более разнообразные возможности и прорабатывать более мелкие детали.
  4. Сходимость и расходимость:
    • Сходящиеся сэмплеры: постепенно уточняют латентное пространство, чтобы последующие шаги близко напоминали предыдущие, давая более гладкие и предсказуемые результаты.
    • Расходящиеся сэмплеры: вносят случайность, позволяя последующим шагам отклоняться от предыдущих, что может дать более естественные или детализированные результаты.
  5. Финальное декодирование:
    После завершения процесса уточнения латентное пространство декодируется с помощью специфичного для модели декодера (например, декодера DAE) для получения конечного изображения.

Почему сэмплеры важны

Сэмплеры критически важны, поскольку они напрямую влияют на:

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

Сэмплеры в рабочем процессе ComfyUI
Имя сэмплераОписаниеВариант использованияПреимуществаНедостатки
EulerПростой и быстрый сэмплер, использующий метод Эйлера для удаления шума.Базовые рабочие процессы, быстрые тесты и модели низкой сложности.Быстрый и вычислительно эффективный.Может давать менее детализированные или менее качественные результаты.
Euler_Cfg_PPСэмплер Euler в сочетании с CFG (руководство без классификатора) для лучшего контроля.Сценарии, требующие точного управления генерацией изображений.Обеспечивает лучший контроль над конечным результатом.Немного медленнее базового сэмплера Euler.
Euler_AncestralВариант Euler, добавляющий случайность для более разнообразных результатов.Творческие рабочие процессы, требующие разнообразия результатов.Даёт разнообразные и уникальные результаты.Может вносить шум или несогласованность в результаты.
Euler_Ancestral_Cfg_PPСочетает Euler Ancestral с CFG для управляемых, но разнообразных результатов.Творческие рабочие процессы с контролируемой случайностью.Эффективно балансирует разнообразие и контроль.Может быть медленнее и требовать больше вычислений.
HeunСэмплер, использующий метод Хойна для более точного удаления шума.Сценарии, требующие большей точности, чем Euler.Даёт более гладкие и проработанные результаты.Немного медленнее Euler из-за повышенной точности.
DPM_2Сэмплер модели вероятностной диффузии с шумоподавлением (DPM) второго порядка.Высококачественные рабочие процессы, требующие детализированных результатов.Даёт высококачественные результаты с мелкими деталями.Требует много вычислений и работает медленнее.
DPM_2_AncestralДобавляет случайность в сэмплер DPM_2 для разнообразных результатов.Творческие рабочие процессы, требующие разнообразия результатов.Даёт разнообразные результаты при сохранении качества.Может давать несогласованные результаты.
DPM_FastБолее быстрый вариант DPM, разработанный для скорости.Рабочие процессы, требующие быстрых результатов с приемлемым качеством.Быстрее других вариантов DPM.Может жертвовать деталями и качеством ради скорости.
DPM_AdaptiveДинамически регулирует процесс удаления шума во время диффузии.Сложные рабочие процессы, требующие адаптивного уточнения.Даёт сбалансированные и адаптивные результаты.Требует много вычислений.
DPM++_2S_Cfg_PPУправляемый сэмплер DPM++, оптимизированный для высококачественных результатов.Рабочие процессы, ориентированные на точность и требующие управляемого уточнения.Даёт очень проработанные и детализированные результаты.Медленнее и требует тщательной настройки.
DPM++_SDEСэмплер DPM++ на основе стохастических дифференциальных уравнений (SDE).Сценарии, требующие контроля шума и гладких результатов.Даёт гладкие результаты без артефактов.Требует много вычислений и работает медленнее.
DPM++_2MСэмплер DPM++ второго порядка с несколькими шагами.Высококачественные рабочие процессы, требующие многошагового уточнения.Даёт детализированные и высококачественные результаты.Требует много вычислений.
DDIMСэмплер неявных диффузионных моделей с шумоподавлением (DDIM) для более быстрого вывода.Сценарии, требующие более быстрых результатов с приемлемым качеством.Быстрее традиционных диффузионных сэмплеров.Может давать несколько менее детализированные результаты.
Uni_PCСэмплер, использующий методы Uni-PC (равномерный предиктор-корректор).Рабочие процессы, требующие сбалансированного удаления шума.Даёт сбалансированные и предсказуемые результаты.Ограниченная гибкость в сложных рабочих процессах.
Uni_PC_BH2Вариант Uni-PC с улучшенными возможностями удаления шума.Высокоточные рабочие процессы, требующие гладких результатов.Даёт более гладкие и проработанные результаты, чем Uni-PC.Требует много вычислений.
IPNDMСэмплер итеративной вероятностной модели диффузии шума.Итеративные рабочие процессы, требующие точного контроля шума.Даёт очень детализированные и проработанные результаты.Медленнее из-за итеративной обработки.
DEISЭффективный сэмплер вывода на основе диффузии.Сценарии, требующие эффективного и быстрого вывода.Быстрый и вычислительно эффективный.Может жертвовать качеством ради скорости.
Gradient_EstimationСэмплер, ориентированный на оценку градиентов во время диффузии.Исследовательские рабочие процессы, требующие анализа градиентов.Предоставляет подробную информацию о градиентах.Не оптимизирован для генерации изображений общего назначения.

Что такое планировщики?

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

Планировники для Stable Diffusion

Как работают планировщики

Планировщики управляют процессом сэмплирования следующим образом:

  1. Стратегия удаления шума:
    Определение того, удалять ли одинаковое количество шума на каждом шаге или динамически регулировать скорость.
  2. Регулировка шагов:
    Контроль над тем, как процесс уточнения развивается по мере увеличения числа шагов. Например:
    • Равномерные планировщики удаляют фиксированное количество шума на каждом шаге.
    • Динамические планировщики по мере развития процесса удаляют всё меньше шума, что позволяет вносить более тонкие корректировки на поздних шагах.
  3. Повышение производительности сэмплера:
    Сочетание сэмплеров с подходящим планировщиком может значительно улучшить качество изображения и уменьшить артефакты.

ПланировщикОписаниеВариант использованияПреимуществаНедостатки
NormalПланировщик по умолчанию, применяющий стандартный равномерный процесс удаления шума.Базовые рабочие процессы и генерация изображений общего назначения.Прост в использовании и широко совместим с большинством сэмплеров.Может давать зашумлённые результаты или артефакты, если не сочетается с оптимальным сэмплером.
KarrasДинамический планировщик, постепенно регулирующий удаление шума и часто улучшающий результаты.Продвинутые рабочие процессы, требующие высококачественных результатов без артефактов.Уменьшает артефакты и улучшает качество изображения.Может требовать тонкой настройки для конкретных сэмплеров.
ExponentialПостепенно уменьшает шум по экспоненциальной схеме, уделяя особое внимание ранним шагам.Сценарии, в которых уточнение на ранних этапах имеет решающее значение.Даёт более плавные переходы в латентном пространстве.Может испытывать трудности с проработкой мелких деталей на поздних шагах.
SGM_UniformПланировщик, адаптированный для стохастических градиентных методов и применяющий равномерное удаление шума.Подходит для стохастических рабочих процессов и моделей, оптимизированных для методов SGM.Обеспечивает последовательное удаление шума на всех шагах.Может не хватать гибкости для моделей, требующих динамической регулировки шума.
SimpleПростой планировщик с минимальной сложностью.Быстрые тесты и рабочие процессы, где предпочтительна простота.Быстрый и простой в настройке.Ограниченные возможности оптимизации для высококачественных результатов.
DDIM_UniformПланировщик, разработанный для DDIM (неявные диффузионные модели с шумоподавлением) с равномерным удалением шума.Рабочие процессы на основе DDIM, требующие последовательного снижения шума.Обеспечивает совместимость с сэмплерами DDIM.Может плохо работать с сэмплерами, отличными от DDIM.
BetaИспользует бета-распределение для контроля удаления шума, уделяя особое внимание определённым шагам.Сценарии, требующие особого акцента на определённых этапах процесса диффузии.Обеспечивает больший контроль над схемой удаления шума.Требует детальной настройки и понимания бета-распределений.
Linear_QuadraticСочетает линейные и квадратичные схемы удаления шума.Сложные рабочие процессы, требующие сочетания постепенного и агрессивного снижения шума.Балансирует плавные переходы и резкие уточнения.Может давать несогласованные результаты, если не сочетается с подходящим сэмплером.
KL_OptimalПланировщик, оптимизированный с помощью KL-дивергенции для минимизации шумовых артефактов.Высокоточные рабочие процессы, требующие минимального шума и артефактов.Даёт высококачественные результаты без артефактов.Требует много вычислений и может потребовать тщательной настройки.

Karus Scheduler

  • Как это работает: динамически регулирует скорость удаления шума в зависимости от числа шагов, оптимизируя процесс уточнения для получения более гладких результатов.
  • Преимущества: улучшает производительность сэмплера, особенно для таких сэмплеров, как dpmpp_2m.
  • Ограничения: может потребовать экспериментов, чтобы найти наилучшие настройки для конкретных рабочих процессов.

Практический рабочий процесс: выбор сэмплеров и планировщиков

Пошаговый процесс

  1. Выбрать сэмплер:
    • Начните со стандартного сэмплера, например Euler, для получения гладких и предсказуемых результатов.
    • Переключитесь на Euler Ancestral или UniPC для более естественных или высококонтрастных результатов.
    • Поэкспериментируйте с сэмплерами семейства DPM для сложных задач.
  2. Проверить совместимость:
    • Убедитесь, что сэмплер совместим с вашей диффузионной моделью. Например, избегайте LMS с Juggernaut XL.
  3. Выполнить рабочий процесс:
    • Запустите процесс генерации изображений с выбранным сэмплером.
    • Наблюдайте за результатами, отмечая артефакты, сходимость или расходимость.
  4. Настроить планировщик:
    • Если результат зашумлён или содержит много артефактов, переключитесь на динамический планировщик, например Karus.
    • Запустите рабочий процесс повторно и сравните результаты.
  5. Сравнить результаты:
    • Используйте панель очереди, чтобы переключаться между изображениями, созданными разными комбинациями сэмплера и планировщика.
    • Оцените различия в детализации, контрасте и проработке артефактов.

Пример: сравнение сэмплеров и планировщиков

Настройка сценария

  • Промпт: “A vibrant sunset over a mountain range with clouds, realistic style.”
  • Фиксированный seed: 599869489844012
  • CheckPoint: Realistic Vision 5.1
  • Шаги: 50
  • Масштаб CFG: 7.5
  • Разрешение: 512×512

Таблица сравнения

Комбинация сэмплера и планировщикаОписание результатаСильные стороныСлабые стороны
Euler + NormalСоздаёт базовое изображение с чётким закатом и горами, но без мелких деталей.Быстрый и вычислительно эффективный.Облака могут выглядеть плоскими, а цветам может не хватать яркости.
Euler_Ancestral + KarrasСоздаёт более яркое изображение с мягкими, случайно сформированными облаками.Добавляет изображению разнообразие и художественную выразительность.Может вносить небольшие несогласованности в формы гор.
DPM++_2M + ExponentialСоздаёт очень детализированное и реалистичное изображение с чёткими краями гор и гладкими облаками.Даёт высококачественные фотореалистичные результаты.Требует много вычислений и работает медленнее.
DDIM + Linear_QuadraticДаёт сбалансированное изображение с хорошей детализацией и плавными переходами между элементами.Быстрее вариантов DPM++ при сохранении приличного качества.Может уступать в предельной проработке сэмплерам DPM++.
DPM++_2S_Cfg_PP + KL_OptimalСоздаёт потрясающе реалистичный закат с замысловатыми деталями облаков и чёткими текстурами гор.Обеспечивает наивысшую проработку и результат без артефактов.Требует значительных вычислительных ресурсов и большего времени обработки.
DPM_Fast + BetaДаёт достаточно детализированное изображение с хорошими цветами и текстурами.Быстрее большинства сэмплеров на основе DPM.Может жертвовать деталями и резкостью ради скорости.
Gradient_Estimation + KarrasСоздаёт художественное изображение с градиентными переходами между закатом и горами.Идеально подходит для творческих или исследовательских рабочих процессов.Может не подходить для фотореалистичных результатов.
DEIS + NormalБыстро создаёт умеренно детализированное изображение приемлемого качества.Чрезвычайно быстрый и вычислительно эффективный.Облака и горы могут выглядеть чрезмерно упрощёнными.

Пример визуального сравнения

1. Euler + Normal

  • Результат: базовое изображение с видимыми горами и облаками, но без замысловатых текстур.
  • Вариант использования: быстрое прототипирование или тестирование.

2. Euler_Ancestral + Karras

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

3. DPM++_2M + Exponential

  • Результат: очень детализированные горы и облака с плавными переходами и реалистичными световыми эффектами.
  • Вариант использования: высококачественная фотореалистичная генерация изображений.

4. DDIM + Linear_Quadratic

  • Результат: сбалансированное изображение с хорошей детализацией и плавными градиентами, подходящее для общего использования.
  • Вариант использования: более быстрые рабочие процессы без значительной потери качества.

Ключевые выводы

Быстрые сэмплеры (Euler, DEIS):

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

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

Высококачественные сэмплеры (варианты DPM++):

Создают реалистичные, детализированные изображения, но требуют много вычислений.

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

Творческие сэмплеры (ancestral-варианты):

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

Могут жертвовать согласованностью или реалистичностью ради креативности.

Влияние планировщика:

Normal: стандартные результаты без значительных улучшений.

Karras: повышает яркость и уменьшает артефакты.

Exponential: плавные переходы и раннее уточнение.


Советы по оптимизации выбора сэмплера и планировщика

  1. Эксперименты — ключ к успеху:
    Протестируйте несколько комбинаций сэмплера и планировщика, чтобы найти оптимальное сочетание для вашей модели и варианта использования.
  2. Понимать требования модели:
    Изучите совместимость вашей диффузионной модели с конкретными сэмплерами и планировщиками. Например, сэмплерам семейства DPM для наилучших результатов часто требуются динамические планировщики.
  3. Использовать ancestral-сэмплеры для разнообразия:
    Если ваша цель — генерировать разнообразные и естественные результаты, рассмотрите возможность использования ancestral-сэмплеров, таких как Euler Ancestral.
  4. Использовать динамические планировщики:
    Сочетайте сэмплеры с динамическими планировщиками, например Karus, чтобы повысить производительность и уменьшить артефакты.

Заключение

Сэмплеры и планировщики — основа диффузионных моделей, формирующая качество и характеристики генерируемых изображений. Понимая их механику и экспериментируя с комбинациями, вы сможете раскрыть весь потенциал своих рабочих процессов. Независимо от того, уточняете ли вы гладкие результаты с помощью сходящихся сэмплеров или прорабатываете замысловатые детали с помощью ancestral-вариантов, правильный планировщик может сыграть решающую роль.

Оставить комментарий