Stable Diffusion
Stable Diffusion — семейство моделей латентной диффузии с открытыми весами от Stability AI, которые создают изображения по текстовым запросам и редактируют их на потребительских GPU.
Stable Diffusion — семейство моделей преобразования текста в изображение с открытыми весами от Stability AI, которые генерируют и редактируют изображения по запросам на естественном языке. Первая версия, выпущенная в августе 2022 года, стала результатом сотрудничества с группой CompVis из Мюнхенского университета Людвига-Максимилиана и компанией Runway; в ней исследования латентной диффузии применили к изображениям размером 512×512 из подмножества набора данных LAION-5B. U-Net с 860 миллионами параметров и текстовый энкодер со 123 миллионами параметров работали на потребительском GPU с памятью не менее 10 ГБ. Поскольку любой мог скачать веса, модель стала основой большой экосистемы дообученных моделей, адаптеров и инструментов редактирования. В текущем выпуске — Stable Diffusion 3.5, вышедшем в октябре 2024 года, — U-Net заменена мультимодальным диффузионным трансформером, обученным с помощью выпрямленного потока.
Как работает Stable Diffusion#
Stable Diffusion — это диффузионная модель, которая удаляет шум из сжатого изображения, а не из пикселей, используя три сети:
- Вариационный автокодировщик (VAE): Энкодер сжимает изображение размером 512×512×3 в латентное представление 64×64×4, содержащее в 48 раз меньше значений, а декодер преобразует готовое латентное представление обратно в изображение. Удаление шума происходит в небольшом латентном пространстве, поэтому модель помещается на потребительском оборудовании.
- Текстовый энкодер: Преобразует запрос длиной до 77 токенов в эмбеддинги. В Stable Diffusion 1.x используется CLIP ViT-L/14 от OpenAI, в версии 2.x — OpenCLIP ViT-H/14, SDXL объединяет два энкодера CLIP, а Stable Diffusion 3 добавляет языковую модель T5-XXL к двум энкодерам CLIP для лучшего понимания запросов.
- Сеть удаления шума: Предсказывает, какой шум нужно удалить на каждом шаге. В версиях 1.x, 2.x и SDXL используется U-Net, чьи слои перекрёстного внимания позволяют признакам изображения учитывать текстовые эмбеддинги; в версиях 3 и 3.5 используется MMDiT, который одновременно обрабатывает токены изображения и текста.
Генерация начинается со случайного латентного представления размером 64×64×4. Планировщик запускает сеть удаления шума, как правило, на 20–50 шагов и каждый раз удаляет часть предсказанного шума; руководство без классификатора усиливает влияние запроса. Затем декодер VAE создаёт изображение:
Поскольку начальное латентное представление случайно, один и тот же запрос с другим seed даёт другое изображение, а одинаковые seed и настройки воспроизводят результат.
Версии моделей#
- Stable Diffusion 1.x (2022): Генерация изображений размером 512×512 с помощью U-Net на 860 млн параметров; версия 1.5 стала распространённой основой для пользовательских дообученных моделей, а статья о ControlNet опиралась на неё. Для весов используется лицензия CreativeML OpenRAIL-M.
- Stable Diffusion 2.x (конец 2022 года): Переход на текстовый энкодер OpenCLIP и выпуск модели для изображений размером 768×768.
- SDXL (июль 2023 года): Встроенная генерация изображений размером 1024×1024 с помощью U-Net примерно на 2,6 миллиарда параметров и двух текстовых энкодеров. Вышедшая в ноябре того же года SDXL Turbo использует дистилляцию диффузии с состязательным обучением, чтобы генерировать изображение за один шаг.
- Stable Diffusion 3 и 3.5 (2024): U-Net заменена на трансформер с выпрямленным потоком, в котором для токенов изображения и текста используются отдельные веса. В Stable Diffusion 3.5 Large 8,1 миллиарда параметров, а в 3.5 Medium — 2,5 миллиарда. Лицензия сообщества Stability AI разрешает бесплатное коммерческое использование организациям с годовой выручкой менее 1 миллиона долларов.
Редактирование изображений с помощью Stable Diffusion#
- Преобразование изображения в изображение: Кодирует существующее изображение, добавляет к нему шум до промежуточного шага, заданного значением силы преобразования, а затем удаляет шум по новому запросу. В результате сохраняются исходная композиция и цвета, но меняются стиль или содержание.
- Дообучение: DreamBooth и LoRA адаптируют модель к новому объекту или стилю на нескольких десятках изображений, а ControlNet добавляет карты границ, глубины или позы в качестве структурных условий.
- Закрашивание областей на изображении: Повторно генерирует только область, заданную маской, с учётом запроса и окружения. В контрольных точках Stable Diffusion для закрашивания к U-Net добавлены пять входных каналов: четыре для закодированного изображения с маской и один для самой маски.
В масках для закрашивания белым отмечены области изображения, которые нужно изменить, а чёрным — те, которые нужно оставить. Модели сегментации экземпляров Ultralytics YOLO26 автоматически создают такие маски, например чтобы заменить или удалить на уличной фотографии все транспортные средства одного класса:
import cv2
from ultralytics import YOLO
# Сегментируй автобус (класс 5 COCO) с помощью модели сегментации экземпляров YOLO26
model = YOLO("yolo26n-seg.pt")
results = model("https://ultralytics.com/images/bus.jpg", classes=[5], retina_masks=True)
result = results[0]
# Белым отмечены пиксели, которые Stable Diffusion должна перерисовать, чёрным — пиксели, которые нужно оставить
mask = (result.masks.data.sum(dim=0) > 0).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_inpaint_mask.png", mask)Сохранённый bus_inpaint_mask.png имеет то же разрешение, что и исходная фотография, поскольку retina_masks=True возвращает маски в исходном размере изображения. Если передать фотографию, эту маску и запрос вроде «красный двухэтажный автобус», конвейер закрашивания перегенерирует автобус и сохранит окружающую его улицу.
Примеры применения в реальных условиях#
- Синтетические данные для моделей компьютерного зрения: Команды генерируют изображения редких дефектов, необычных погодных условий или редких ракурсов, чтобы восполнить пробелы в обучающих наборах данных, а также используют закрашивание, чтобы добавлять новые объекты на реальные фоны.
- Концепт-арт и дизайн: Игровые студии, архитекторы и промышленные дизайнеры за считаные минуты создают и исследуют множество стилей и композиций на раннем этапе разработки концепций.
- Изображения для маркетинга и электронной торговли: Преобразование изображения в изображение и ControlNet сохраняют форму продукта неизменной, а запрос меняет окружение, освещение и фон.
Stable Diffusion и родственные модели#
- Модели латентной диффузии: Stable Diffusion — наиболее известная реализация архитектуры латентной диффузии, поэтому каждая модель Stable Diffusion является моделью латентной диффузии.
- GAN: Генерируют изображение за один прямой проход, но обучаются менее устойчиво и создают меньше разнообразных результатов. Stable Diffusion требуется много шагов удаления шума, если модель не дистиллирована, как SDXL Turbo.
- Закрытые генераторы: Такие сервисы, как модели для генерации изображений от OpenAI и Midjourney, работают только на серверах своих поставщиков. Веса Stable Diffusion можно скачать, запускать без подключения к сети, изучать и дообучать.
- FLUX.1: Основанная в 2024 году исследователями, работавшими над оригинальной статьёй о латентной диффузии, включая Робина Ромбака, Андреаса Блаттмана и Патрика Эссера, компания Black Forest Labs выпустила семейство FLUX.1 с 12 миллиардами параметров. В нём используется тот же подход с трансформером и выпрямленным потоком, что и в Stable Diffusion 3.










