Diffusion Model
diffusion model — модель, которая создаёт данные через обратное расшумление
Diffusion Model — семейство генеративных моделей, которые учатся восстанавливать данные из зашумлённого состояния. При генерации процесс идёт от случайного шума к изображению, аудио, видео или другому объекту. Текст и референсы направляют траекторию, а sampler и scheduler определяют, как выполняются шаги восстановления.
Коротко
Диффузионная модель учится обращать постепенное добавление шума. Во время генерации она начинает с зашумлённого состояния и много раз уточняет его, пока не получится связный объект. Это не буквальное «проявление спрятанной картинки»: модель каждый раз строит один из возможных результатов.
Идея прямого и обратного процесса
Представим фотографию, к которой небольшими порциями добавляют случайный шум. Через достаточно много шагов исходная сцена становится неразличима.
Это прямой процесс. Он нужен для обучения: для чистого примера можно точно создать зашумлённую версию и знать, какой шум был добавлен.
Модель получает такое состояние вместе с уровнем шума и учится предсказывать информацию, необходимую для восстановления. В зависимости от архитектуры целью может быть сам шум, чистый образец, скорость изменения или другая математически связанная величина.
Во время генерации работает обратный процесс: предсказания модели переводят текущее состояние к менее зашумлённому.
обучение: данные → немного шума → больше шума → почти случайность
генерация: случайность → уточнение → структура → готовый результат
Что происходит на одном шаге
На каждом переходе участвуют несколько частей:
- Denoiser анализирует текущее состояние и условия.
- Scheduler сообщает уровень шума или времени.
- Sampler рассчитывает следующее состояние по предсказанию модели.
- Процесс повторяется до конечной точки траектории.
Поэтому sampler и модель нельзя оценивать отдельно. Один численный метод может хорошо работать на конкретной параметризации и хуже — на другой.
Как текст управляет изображением
Текстовый энкодер превращает промпт в набор представлений. Denoiser получает их как условие и на каждом шаге направляет результат к связанным с текстом признакам.
Это не список команд уровня графического редактора. Слова влияют на вероятности деталей, композиции и стиля через выученные связи. Точное положение объекта часто требует дополнительного контроля: маски, карты глубины, позы, референса или регионального conditioning.
Guidance
Многие системы сравнивают условное предсказание с безусловным и усиливают разницу. Так текст влияет заметнее. Слишком сильное guidance способно ухудшить оттенки, фактуру и естественность, поэтому максимум параметра не равен максимуму качества.
Pixel diffusion и latent diffusion
Диффузию можно проводить непосредственно над данными, но для больших изображений это дорого. Latent diffusion сначала сжимает изображение через автоэнкодер, выполняет основную работу в компактном скрытом пространстве, а затем декодирует результат.
текст ───────────────┐
↓
шум в latent → denoiser + sampler → готовый latent → VAE decode → изображение
Степень сжатия, число каналов и масштаб latent зависят от семейства модели. Их берут из конфигурации, а не из универсальной таблицы.
Почему шагов может быть разное число
Количество steps — это длина выбранной численной траектории, а не прямой показатель «старательности» модели. После некоторого момента дополнительные шаги могут почти не менять результат или даже увести его в менее удачную область.
Есть и дистиллированные модели, обученные проходить путь короткой серией переходов. Сравнивать их с обычной моделью по одному числу steps бессмысленно. Точнее смотреть на качество, время и число обращений к denoiser — NFE.
Зачем нужен seed
Seed инициализирует генератор псевдослучайных чисел, из которого получается стартовый шум. При одинаковой модели, workflow и окружении тот же seed помогает повторить траекторию.
Если изменились веса, sampler, scheduler, размер или backend, одинаковое число уже не обещает тот же кадр. Seed — часть рецепта, но не полный рецепт.
Где используют diffusion
Изображения
Text-to-image строит сцену с нуля, img2img начинает с закодированного изображения, а inpainting меняет только выбранную область. Архитектура и условия различаются, но идея обратного расшумления остаётся общей.
Видео
К пространственным признакам добавляется время. Модель должна сохранить персонажа, фон и движение между кадрами. Это заметно сложнее независимой генерации отдельных изображений.
Аудио
Процесс может идти по waveform, спектрограмме или скрытому аудиопредставлению. После декодирования получается речь, музыка или эффект.
Другие данные
Диффузионные методы применяют к трёхмерным структурам, движениям, молекулам и другим непрерывным представлениям. Конкретный смысл «шума» зависит от пространства задачи.
Workflow в ComfyUI
Базовый граф показывает процесс почти буквально:
- загрузить checkpoint и совместимые энкодеры;
- закодировать положительное и отрицательное условия;
- создать latent нужной формы;
- запустить sampling с выбранными steps и scheduler;
- декодировать latent через соответствующий VAE;
- сохранить изображение вместе с параметрами.
Ноды ControlNet, LoRA, IP-Adapter и другие модули добавляют условия или меняют вычисления. Их совместимость определяется архитектурой и версией модели.
Откуда берутся артефакты
- Слабая композиция. Текст не задаёт точную геометрию сцены.
- Лишние детали. Модель соединяет вероятные признаки, но не считает объекты как человек.
- Пластиковая фактура. Сильное guidance, реставрация или неудачный VAE сглаживают естественные мелочи.
- Повторяющийся узор. Модель или tiled-процесс слишком локально воспринимает сцену.
- Несогласованность видео. Каждый кадр уходит по немного другой траектории.
- Нечитаемый текст. Визуальные закономерности букв не равны надёжному набору символов.
Такие проблемы решают референсами, структурным контролем, масками, другой композицией и ручной редактурой, а не только увеличением steps.
Diffusion, GAN и autoregressive-модели
- GAN обучает генератор в состязании с дискриминатором. Он может быстро создавать результат, но имеет другую динамику обучения и набор ограничений.
- Autoregressive-модель строит объект последовательно по элементам — например, токен за токеном.
- Diffusion уточняет всё состояние по траектории от шума к данным.
Современные системы часто смешивают идеи: transformer может быть denoiser, а данные — представлены дискретными токенами или непрерывным latent. Название архитектурного блока ещё не определяет весь процесс генерации.
Частые ошибки
- «Модель находит готовую картинку в шуме». Нет, шум задаёт старт, а изображение строится по выученному распределению.
- «Больше steps всегда лучше». После разумного диапазона улучшение может исчезнуть; у дистиллированных моделей логика вообще другая.
- «Один sampler лучший для всех checkpoint». Поведение зависит от обучения, scheduler и длины траектории.
- «VAE влияет только на размер файла». Он кодирует и декодирует данные, поэтому способен менять цвет и мелкие детали.
- «Negative prompt удаляет любой объект». Он смещает conditioning, но не заменяет точную маску или контроль композиции.
Частые вопросы
Почему результат меняется при том же промпте? Стартовый шум задаёт разные траектории. Для повторяемости сохраняют seed и весь workflow, включая версии моделей.
Можно ли генерировать без текста? Да. Условием может быть класс, изображение, маска, глубина, поза, звук или вообще только выученное распределение.
Diffusion всегда медленнее других методов? Не обязательно. Время зависит от числа вычислений denoiser, размера данных, архитектуры и реализации. Короткая дистиллированная траектория и длинный высокоточный pipeline — разные режимы.
Что важнее: sampler или checkpoint? Checkpoint задаёт выученное распределение, а sampler — способ пройти по его предсказаниям. Хороший численный маршрут не добавит модели знания, которого нет в весах.
Главное
Diffusion Model учится восстанавливать структуру из зашумлённого состояния. Denoiser предсказывает направление, scheduler задаёт уровни шума, sampler строит траекторию, а conditioning направляет результат. Качество определяется всей связкой, поэтому устойчивый workflow хранит версии, seed и параметры, а не только текст промпта.