DDPM / DDIM (сэмплирование диффузии)
DDPM и DDIM — алгоритмы обучения и сэмплирования диффузионных моделей. DDPM (2020) задал forward/reverse-процесс из ~1000 шагов, DDIM (2021) сделал генерацию детерминированной и в 10-50 раз быстрее.
DDPM (Denoising Diffusion Probabilistic Models) и DDIM (Denoising Diffusion Implicit Models) — фундаментальные алгоритмы, стоящие за современными диффузионными моделями. DDPM (Ho et al., NeurIPS 2020) формализовал процесс диффузии, а DDIM (Song et al., ICLR 2021) сделал его практичным по скорости. Понимание этих двух работ объясняет, почему Stable Diffusion, DALL-E 3 и GPT Image 2 работают именно так.
DDPM: два процесса
- Forward diffusion: к чистому изображению шаг за шагом (обычно T ≈ 1000 шагов) добавляется гауссов шум по фиксированному расписанию (noise schedule), пока не останется чистый шум. Этот процесс задан математически и не обучается.
- Reverse diffusion: нейросеть (обычно U-Net) учится делать обратный шаг — предсказать и убрать шум, добавленный на данном шаге. Запуская reverse-процесс из случайного шума, модель «выращивает» изображение.
Что именно предсказывает сеть
Ключевая идея DDPM: сеть предсказывает не само изображение, а добавленный шум (ε-prediction). Это стабилизирует обучение. Loss — простой MSE между реальным и предсказанным шумом. Из-за этого диффузия обучается устойчивее, чем GAN, где нет прямого целевого сигнала и легко случается mode collapse.
Проблема DDPM — скорость
Классический DDPM требует ~1000 последовательных проходов сети для генерации одного изображения. Это делало его непрактично медленным. Именно поэтому появился DDIM.
DDIM: быстрее и детерминированно
- Меньше шагов: DDIM переформулирует reverse-процесс как неявный, что позволяет пропускать шаги — 20–50 шагов вместо 1000 при сопоставимом качестве. Ускорение в 10–50 раз.
- Детерминированность: при одном seed DDIM даёт воспроизводимый результат, что важно для контролируемого редактирования и image-to-image.
- Гладкое латентное пространство: интерполяция между двумя seed даёт плавные переходы между изображениями.
Современные сэмплеры
DDIM открыл направление быстрых сэмплеров. Сегодня используются DPM-Solver, DPM++, Euler a и другие, доводящие качественную генерацию до 4–20 шагов. В связке с латентной диффузией это и сделало AI-генерацию массовой и дешёвой.
Почему это важно для обработки фото
Число шагов сэмплирования — прямой компромисс «качество / скорость / цена». Диффузионные апскейлеры вроде SeedVR2 и prompt-редакторы (/edit-photo-ai) внутри используют именно эти алгоритмы: больше шагов — чище результат, но дороже вычисление. PhotoPanda подбирает баланс шагов под каждую задачу автоматически.
FAQ
Чем DDIM отличается от DDPM простыми словами?
DDPM — «медленный, но точный» процесс из ~1000 шагов со случайностью. DDIM — ускоренная детерминированная версия: 20–50 шагов, воспроизводимый результат по seed.
Больше шагов — всегда лучше?
До определённого предела. После 30–50 шагов прирост качества минимален, а время и стоимость растут линейно. Современные сэмплеры дают отличный результат уже за 4–20 шагов.
Почему диффузия стабильнее GAN?
Есть явный целевой сигнал (предсказать шум) и простой MSE-loss, без состязательной игры двух сетей. Поэтому нет типичных для GAN проблем: mode collapse и нестабильного обучения.