Алхимия изображений: как работают современные генеративные модели
Современный ИИ научился рисовать. Он создает фотореалистичные портреты, акварельные пейзажи и неоновые города по текстовому описанию. Магия кроется в математике — модели постепенно превращают хаос в порядок, случайный шум в осмысленную картинку. Технология, стоящая за Midjourney, Stable Diffusion и DALL-E, называется диффузией, и её понимание открывает доступ к управлению творчеством алгоритмов, подробнее читайте на ai.
От хаоса к порядку: физика в основе творчества
В физике диффузия — это процесс, при котором молекулы хаотично движутся из области с высокой концентрацией в область с низкой, постепенно распространяясь в пространстве . Генеративный ИИ позаимствовал эту концепцию, но запустил её в обратную сторону. Вместо того чтобы разрушать структуру, диффузионная модель учится восстанавливать порядок из чистого шума.
Представьте, что вы смотрите, как кто-то рисует картину задом наперед. В прямом процессе модель берет реальное изображение из обучающего набора и шаг за шагом добавляет в него гауссовский шум . После сотен шагов от четкой фотографии кота не остается ничего — лишь бессмысленная зернистость, визуальный «белый шум» . В процессе обучения сеть запоминает, как именно выглядела картинка на каждом этапе зашумления. Это похоже на то, как если бы вы смотрели, как изображение тонет в тумане, и фиксировали каждую стадию исчезновения.
Обратный процесс — это настоящее волшебство. Натренированная нейросеть учится «отматывать время вспять». Она берет случайный шум и постепенно, шаг за шагом, убирает лишнюю зернистость, дорисовывая детали в соответствии с тем, чему научилась . На каждом шаге модель спрашивает себя: «Как должна выглядеть чуть менее шумная версия того, что я вижу?» . Итеративное уточнение позволяет добиваться идеальной проработки текстуры и мелких элементов, что выгодно отличает диффузию от одноэтапных методов вроде GAN.
Архитектурно это реализовано через U-Net — нейросеть, названную так из-за U-образной формы. Она сначала сжимает изображение, чтобы понять общий контекст («здесь кто-то стоит»), а потом расширяет обратно, восстанавливая и уточняя детали («это девушка в красном платье») . Чтобы модель понимала, на каком именно этапе «проявки» она находится, в неё подается информация о временном шаге (time embedding) — специальный вектор, подсказывающий, много шума уже убрано или мало.
Ключевым прорывом стала технология латентной диффузии (Latent Diffusion), используемая в Stable Diffusion. Вместо того чтобы возиться с миллионами пикселей напрямую, модель сначала сжимает картинку в более компактное «латентное» пространство с помощью вариационного автокодировщика (VAE) . В этом сжатом мире операций значительно меньше, поэтому генерация ускоряется в десятки раз без потери качества . Представьте, что вы пишете картину не мазками по холсту, а собираете её из крупных кубиков, а потом уже увеличиваете до нужного размера — так работать гораздо быстрее.
Управление реальностью: текст, шкалы и сэмплеры
Чтобы модель рисовала не абы что, а именно «кота в шляпе», используется текстовое кондиционирование. Текстовый кодировщик (например, CLIP) превращает ваши слова в цифровые векторы — эмбеддинги . Внутри U-Net эти векторы внимательно анализируются (через механизм cross-attention), направляя процесс шумоподавления . Слова «закат» заставят модель добавлять теплые тона, а «киберпанк» — неоновые блики. Промптинг — это искусство, и качественный запрос обычно включает субъект, стиль, освещение, композицию и детали .
Для тонкой настройки влияния текста служит параметр guidance scale (CFG — classifier-free guidance). Это рычаг управления воображением модели. Низкое значение (3-5) дает модели больше свободы: результат может быть креативным и неожиданным, но слабо связанным с запросом. Высокое значение (10-15) заставляет модель строго следовать тексту, но здесь есть риск получить перенасыщенные цвета или артефакты . Оптимальный диапазон для большинства задач — 7-9. Если вам нужно, чтобы модель нарисовала точную копию вашего эскиза, выкручивайте регулятор выше; если вы ищете вдохновение — прикручивайте.
Отрицательные промпты (negative prompts) работают как противоядие. Вы прямо говорите модели: «Не делай этого». «Размыто, лишние пальцы, водяной знак, искаженная анатомия» — такие фразы эффективно отсекают типичные ошибки генерации . Математически это работает как вычитание: модель делает два предсказания — с вашим текстом и без него, а усиление разницы между ними (guidance scale) заставляет её активнее избегать нежелательного .
Разные сэмплеры (сэмплеры) — это разные способы «сходить» от шума к картинке. Одни спешат, другие выверяют каждый шаг. DPMSolverMultistep — современный стандарт, дающий отличное качество за 20-30 шагов . DPM++ 2M Karras обеспечивает хорошую резкость и стабильность. Euler и Heun хороши для художественных стилей. DDIM детерминирован и воспроизводим . На практике сэмплер — это выбор между скоростью и качеством: если изображение выглядит слишком сглаженным, попробуйте DPM++ 2M; если слишком шумным — увеличьте количество шагов до 40-50 .
Зерно (seed) — это начальная точка случайности. Сохранив зерно, вы всегда сможете вернуться к той же композиции, даже меняя текст . Перебирая зерна, вы исследуете варианты композиции, а найдя удачное, фиксируете настройки. Это превращает генерацию из лотереи в управляемый процесс.
Диффузионные модели и картинки сегодня неразрывно связаны. Технология лежит в основе популярнейших инструментов: Stable Diffusion (открытая и кастомизируемая), DALL-E 3 (интегрированная с ChatGPT), Midjourney (лидер по художественному качеству), а также специализированных моделей вроде Waifu Diffusion для аниме . Количество шагов генерации влияет на время и детализацию: 10-20 шагов дадут грубый набросок, 30-50 — качественный результат, а свыше 50 редко оправдано .
Современные исследования движутся к ускорению и контролю. Новые сэмплеры сокращают количество шагов, а техники вроде ControlNet позволяют диктовать модели не только текст, но и позу персонажа или композицию кадра через карту глубины или скелет . ElasticDiffusion решает проблему генерации неквадратных изображений, разделяя глобальный контур и локальные детали . Понимание принципов диффузии превращает пользователя из пассивного зрителя в оператора, способного сознательно управлять пикселями через слова и цифры.