- BrainTools - https://www.braintools.ru -
Метод выборки (sampling method) в генеративных моделях, таких как Stable Diffusion или FLUX, определяет способ преобразования случайного шума в изображение в процессе диффузии. Этот метод напрямую влияет на качество, стиль и скорость генерации изображения.
В предыдущей статье [1] я разбирал, как работает CFG Scale и для чего он нужен. Рекомендую ознакомиться, потому что будем его использовать.
Постепенное уменьшение шума:
Основная задача метода выборки — это постепенное уменьшение шума и улучшение структуры изображения на каждом шаге. Каждый шаг итерации уменьшает уровень шума и добавляет детали, приближая изображение к целевому.
Управление процессом диффузии:
Методы выборки управляют процессом диффузии, определяя, как модель должна обновлять изображение на каждом этапе. Это позволяет контролировать скорость и качество генерации.
Оптимизация качества и скорости:
Различные методы выборки предлагают компромиссы между качеством конечного изображения и скоростью его генерации.
Стабилизация процесса:
Методы выборки также помогают стабилизировать процесс генерации, чтобы избежать артефактов и нежелательных искажений. Это особенно важно при работе с сложными текстовыми подсказками или при генерации высококачественных изображений.
Качество изображения:
Некоторые методы выборки могут обеспечивать более высокое качество изображения, лучше сохраняя детали и улучшая реалистичность.
Стиль изображения:
Разные методы могут приводить к различным стилям изображения. Например, одни методы могут создавать более сглаженные изображения, а другие — более детализированные.
Скорость генерации:
Методы выборки могут различаться по скорости. Некоторые методы быстрее, но могут уступать в качестве, тогда как другие медленнее, но обеспечивают лучшее качество.
DDIM (Denoising Diffusion Implicit Models):
Преимущества: быстрая генерация, возможность управления стилем.
Недостатки: может уступать в качестве более медленным методам.
PLMS (Pseudo Linear Multistep):
Преимущества: хорошая комбинация скорости и качества, улучшенная устойчивость к шумам.
Недостатки: жрет много времени.
DPM‑Solver:
Преимущества: высокое качество изображения, более точное управление процессом диффузии.
Недостатки: более высокая вычислительная сложность и время генерации.
Euler A and B:
Преимущества: быстрая и стабильная генерация, подходит для широкого спектра задач.
Недостатки: может уступать в качестве более специализированным методам.
LMS (Laplacian Pyramid Sampling):
Преимущества: хорошее сохранение деталей и текстур.
Недостатки: могут быть более медленными по сравнению с другими методами.
В данном разделе рассмотрим процесс взаимодействия CFG Scale и метода выборки, чтобы понимать механизмы денойза.
В начале процесса инициализируем случайный шум , который генерируется по нормальному распределению:
где
— начальный момент времени.
Шум нужен для того, чтобы модели было что расшумлять — это называется обратной диффузией и лежит в основе современных генеративных нейросетей.
Он генерируется только один раз в начале всего цикла, чтобы запустить весь процесс, описанный далее.
Подробнее про CFG Scale [1].
На этом этапе модель генерирует 3 изображения из шума: одно на основе позитивного промпта, одно на основе негативного + одно безусловное изображение — без какого‑либо промпта.
Здесь задействуется модель CLIP для перевода промпта в векторы (язык нейросети) и U‑Net для непосредственно генерации.
Важно отметить, что на этом этапе модель лишь частично преобразует шум, выделяя самые общие паттерны и формы, соотносящиеся с текстовой подсказкой.
Применяем формулу CFG Scale для получения результирующего состояния на основе безусловной и условной генерации:
где:
— безусловная генерация (случайное изображение).
— условная положительная генерация (с учетом положительного условия).
— условная негативная генерация (с учетом отрицательного условия).
— коэффициент, который регулирует, насколько сильно положительные и отрицательные условия влияют на итоговое состояние изображения (его мы вводим ручками в интерфейсе).
На основе результата из шага 2, модель рассчитывает модифицированный шум, учитывающий влияние условий:
— предсказанный шум для безусловного процесса на основе полученного состояния.
— предсказанный шум с учетом положительного условия.
— предсказанный шум с учетом отрицательного условия.
— коэффициент, регулирующий степень влияния положительного и отрицательного условий.
— это результирующее состояние, подающееся на вход модели (получили на шаге 2).
— текущий шаг времени в процессе генерации
— позитивный промпт
— негативный промпт
В этом шаге, исходя из полученного , модель вычисляет разные предсказанные шумы (
,
,
), а затем получает модифицированный шум
, который используется в формуле DDIM для обновления состояния изображения.
Этот шаг — своего рода «корректировка» на основе уже имеющегося состояния изображения и специфических условий. Благодаря этому процессу итоговое изображение становится более адаптированным к условиям, которые были заданы.
Данный шаг также нужен из‑за несовершенства математики [2] — для оптимизации вычислений. Именно значения из третьего шага взаимодействуют с формулой метода выборки. В прошлом же шаге подготавливается база для этого.
Это как 1+1=2, где без одной единицы двойка не получится.
Вычисления на данном шаге также проводятся с помощью U‑Net.
Далее модифицированный шум и результирующее состояние подставляются в формулу метода выборки, чтобы скорректировать мелкие детали и стабилизировать общий процесс генерации.
На этом шаге будет решено: где шум добавить, а где убрать.
Зачем добавлять шум? Чтобы повысить детализацию. Вспомните снимки со своего смартфона ночью — если убрать весь шум, то они будут смазанными.
Формула метода выборки DDIM:
где — текущее состояние изображения на шаге
.
и
— коэффициенты, контролирующие скорость изменения состояния изображения на каждом шаге. Они зависят от заданных параметров шума и времени.
Подставляем значения модифицированного шума в формулу DDIM:
Результатом всего процесса будет являться матрица векторов — т. е. изображение в скрытом пространстве нейросети, очищенное от части шума.
Обратный диффузионный процесс идет в обратном направлении по времени, начиная с шума и постепенно очищая его до целевого изображения
.
обозначает состояние изображения на шаге
, которое является результатом применения модифицированного шума к текущему состоянию
. Также на каждом шаге корректируются
и
, отвечающие за количество шума, который будет исключен на текущем и следующем шаге.
Теперь все значения будут рассчитываться для , которое затем нужно подставить в формулу метода выборки DDIM:
После вычисления мы вычисляем
, и так далее до
.
Метод выборки DPM++ 2M (Denoising Diffusion Probabilistic Models++) является одним из методов улучшения процесса диффузии. Рассмотрим его, так как он, по моему мнению, является самым удачным сэмплером по соотношению качество / скорость.
DPM++ 2M использует прогрессивные улучшения и шаги для более точного и стабильного уменьшения шума.
Karras указывает на применение оптимизаций, которые могут включать улучшенные методы планирования шагов, адаптивное уменьшение шума и другие техники, направленные на повышение качества.
Вот так выглядит формула метода выборки DPM++ 2M Karras:
Здесь:
— текущее состояние изображения на шаге t.
— состояние изображения на предыдущем шаге.
— коэффициент шага.
— весовой коэффициент для градиента.
— градиент функции потерь.
— функции, включающие оптимизации, предложенные Тимо Керрасом.
Как вы, надеюсь, поняли, sampling method работает не в отрыве от всего остального, а является звеном в конвейерной цепочки по генерации изображения. Он, как и все рассмотренные в статье шаги, сделан для корректировки работы основном модели, чтобы генерации получались точнее и детальнее.
Кратко повторим материал:
Для запуска процесса генерации нужен первичный шум, который мы подаем на вход модели вместе с текстовыми подсказками.
Модель преобразует шум, чтобы наметить общие формы (шаг 2).
Затем модель этот шум повторно корректирует, чтобы еще больше конкретизировать формы и детали (шаг 3).
После этого предсказания из шага 2 и 3 объединяются в формуле метода выборки, и тогда модель конкретно и с высокой точностью начинает убирать и добавлять шум, чтобы вытягивать из шума детали и приближать его к целевому.
Далее уже не нужно генерировать случайный шум — на вход подаётся полученное на 4 шаге изображение, после чего алгоритм повторяется до тех пор, пока не пройдёт все шаги.
Интересный факт: нет смысла ставить чрезмерное количество шагов сэмплирования, так как модель начнет на чистое изображение добавлять шум и его же убирать, из-за чего могут возникать артефакты и неточности.
Буду рад видеть вас в телеграм‑канале [3], где я пишу гайды по Stable Diffusion и FLUX. Там же будут и анонсы новых статей.
Автор: dima_yiu
Источник [4]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/10749
URLs in this post:
[1] предыдущей статье: https://habr.com/ru/articles/845746/
[2] математики: http://www.braintools.ru/article/7620
[3] телеграм‑канале: https://t.me/yiu_ai
[4] Источник: https://habr.com/ru/articles/846358/?utm_source=habrahabr&utm_medium=rss&utm_campaign=846358
Нажмите здесь для печати.