Diffusion Model

diffusion model — модель, которая создаёт данные, постепенно восстанавливая их из шума

Раздел
Генеративные модели
Обновлено
05.09.26

Diffusion Model — семейство генеративных моделей, которые учатся восстанавливать данные из зашумлённого состояния. При генерации процесс идёт от случайного шума к изображению, аудио, видео или другому объекту. Текст и референсы направляют траекторию, а sampler и scheduler определяют, как выполняются шаги восстановления.

Коротко

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

Идея прямого и обратного процесса

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

Это прямой процесс. Он нужен для обучения: для чистого примера можно точно создать зашумлённую версию и знать, какой шум был добавлен.

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

Во время генерации работает обратный процесс: предсказания модели переводят текущее состояние к менее зашумлённому.

обучение:    данные → немного шума → больше шума → почти случайность
генерация:   случайность → уточнение → структура → готовый результат

Что происходит на одном шаге

На каждом переходе участвуют несколько частей:

  1. Denoiser, восстанавливающая сеть, анализирует текущее состояние и условия.
  2. Scheduler, расписание, задаёт уровни шума или времени.
  3. Sampler, алгоритм выборки, рассчитывает следующее состояние по предсказанию модели.
  4. Процесс повторяется до конечной точки траектории.

В некоторых библиотеках словом scheduler называют также сам алгоритм перехода. Поэтому при переносе настроек важно понимать, что именно регулирует параметр, а не ориентироваться только на название.

Модель и алгоритм выборки работают вместе. Один численный метод может хорошо работать на конкретной параметризации и хуже — на другой.

Как текст управляет изображением

Текстовый энкодер превращает промпт в набор представлений. Denoiser получает их как условие и на каждом шаге направляет результат к связанным с текстом признакам.

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

Guidance

Многие системы сравнивают условное предсказание с безусловным и усиливают разницу. Так текст влияет заметнее. Слишком сильное guidance способно ухудшить оттенки, фактуру и естественность, поэтому максимум параметра не равен максимуму качества.

Pixel diffusion и latent diffusion

Диффузию можно проводить непосредственно над данными, но для больших изображений это дорого. Latent diffusion сначала сжимает изображение через автоэнкодер, выполняет основную работу в компактном скрытом пространстве, а затем декодирует результат.

текст ───────────────┐
                     ↓
шум в latent → denoiser + sampler → готовый latent → VAE decode → изображение

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

Почему шагов может быть разное число

Количество шагов — это число переходов по выбранной численной траектории, а не прямой показатель «старательности» модели. После некоторого момента дополнительные шаги могут почти не менять результат или даже увести его в менее удачную область.

Есть и дистиллированные модели, обученные проходить путь короткой серией переходов. Сравнивать их с обычной моделью только по числу шагов недостаточно. Точнее смотреть на качество, время и число обращений к denoiser — NFE.

Зачем нужен seed

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

Если изменились веса, sampler, scheduler, размер или способ выполнения вычислений, одинаковое число уже не обещает тот же кадр. Seed — часть рецепта, но не полный рецепт.

Где используют diffusion

Изображения

Text-to-image строит сцену с нуля, img2img начинает с закодированного изображения, а inpainting предназначен для изменения выбранной области. Сохранность остальных пикселей зависит от способа обработки и последующего совмещения с исходником. Архитектура и условия различаются, но идея восстановления из шума остаётся общей.

Видео

К пространственным признакам добавляется время. Модель должна сохранить персонажа, фон и движение между кадрами. Это заметно сложнее независимой генерации отдельных изображений.

Аудио

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

Другие данные

Диффузионные методы применяют к трёхмерным структурам, движениям, молекулам и другим непрерывным представлениям. Конкретный смысл «шума» зависит от пространства задачи.

Workflow в ComfyUI

Базовый граф показывает процесс почти буквально:

  1. загрузить веса модели и совместимые энкодеры;
  2. закодировать текстовые условия; отрицательный промпт используется, если его поддерживает выбранная схема;
  3. подготовить скрытое представление нужного размера;
  4. запустить генерацию с выбранным алгоритмом, числом шагов и расписанием;
  5. декодировать результат через совместимый VAE;
  6. сохранить изображение и схему с параметрами.

Ноды ControlNet, LoRA, IP-Adapter и другие модули добавляют условия или меняют вычисления. Их совместимость определяется архитектурой и версией модели.

Откуда берутся артефакты

  • Слабая композиция. Текст не задаёт точную геометрию сцены.
  • Лишние детали. Модель соединяет вероятные признаки, но не считает объекты как человек.
  • Пластиковая фактура. На неё могут влиять данные обучения, слишком сильное управление текстом, реставрация лица и потери при кодировании.
  • Повторяющийся узор. Модель или tiled-процесс слишком локально воспринимает сцену.
  • Несогласованность видео. Модель может плохо удерживать детали между кадрами; независимая покадровая генерация дополнительно усиливает различия.
  • Нечитаемый текст. Визуальные закономерности букв не равны надёжному набору символов.

Такие проблемы решают референсами, структурным контролем, масками, другой композицией и ручной редактурой, а не только увеличением числа шагов.

Диффузия, GAN и авторегрессионные модели

  • GAN обучает генератор в состязании с дискриминатором. Он может быстро создавать результат, но имеет другую динамику обучения и набор ограничений.
  • Авторегрессионная модель строит объект последовательно по элементам — например, токен за токеном.
  • Diffusion уточняет всё состояние по траектории от шума к данным.

Современные системы часто смешивают идеи: transformer может быть denoiser, а данные — представлены дискретными токенами или непрерывным latent. Название архитектурного блока ещё не определяет весь процесс генерации.

Частые ошибки

  • «Модель находит готовую картинку в шуме». Нет, шум задаёт старт, а изображение строится по выученному распределению.
  • «Больше шагов всегда лучше». После разумного диапазона улучшение может исчезнуть; у дистиллированных моделей логика вообще другая.
  • «Один алгоритм выборки подходит всем моделям». Поведение зависит от обучения, расписания и числа переходов.
  • «VAE влияет только на размер файла». Он кодирует и декодирует данные, поэтому способен менять цвет и мелкие детали.
  • «Negative prompt удаляет любой объект». Он меняет текстовое условие, но не заменяет точную маску или контроль композиции.

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

Почему результат меняется при том же промпте? Стартовый шум задаёт разные траектории. Для повторяемости сохраняют seed и весь workflow, включая версии моделей.

Можно ли генерировать без текста? Да. Условием может быть класс, изображение, маска, глубина, поза или звук. Есть и безусловные модели: они генерируют данные без дополнительной подсказки.

Diffusion всегда медленнее других методов? Не обязательно. Время зависит от числа вычислений denoiser, размера данных, архитектуры и реализации. Короткая дистиллированная траектория и длинный высокоточный pipeline — разные режимы.

Что важнее: sampler или checkpoint? Checkpoint задаёт выученное распределение, а sampler — способ пройти по его предсказаниям. Хороший численный маршрут не добавит модели знания, которого нет в весах.

Главное

Diffusion Model учится восстанавливать структуру из зашумлённого состояния. Нейросеть оценивает нужное преобразование, расписание задаёт уровни шума, алгоритм выборки строит траекторию, а текст и другие условия направляют результат. Качество определяется всей связкой, поэтому устойчивый workflow хранит версии, seed и параметры, а не только текст промпта.

Основы подхода изложены в работе Denoising Diffusion Probabilistic Models, а перенос генерации в сжатое пространство — в исследовании Latent Diffusion.