Stable Diffusion

Stable Diffusion — это модель глубокого обучения для синтеза изображений по текстовому описанию, созданная на основе методов диффузионного моделирования и выпущенная в 2022 году. Эта технология генеративного искусственного интеллекта является основным продуктом Stability AI и признана частью современного «бума искусственного интеллекта».

Система используется, в первую очередь, для генерации подробных изображений по текстовым запросам, а также поддерживает задачи инпейнтинга, аутпейнтинга и преобразования изображений с помощью дополнительных текстовых инструкций[2]. Разработка велась при участии исследовательской группы CompVis из Мюнхенского университета и компании Runway, а вычислительные ресурсы предоставляла Stability AI; наборы данных были собраны в том числе благотворительными организациями[3][4].

Stable Diffusion относится к классу латентных диффузионных моделей, являющихся разновидностью генеративных нейронных сетей. Код и веса моделей были опубликованы в открытом доступе[5], а оптимизированные реализации способны работать на большинстве потребительских устройств с видеокартами от 2,4 ГБ VRAM[6]. Открытость платформы резко отличает её от предыдущих закрытых моделей для генерации изображений, таких как DALL-E и Midjourney, функционирующих исключительно через облачные сервисы[7].

Что важно знать
Stable Diffusion
Тип текст-картинка (text-to-image)
Авторы Runway, CompVis, и Stability AI
Разработчик Stability AI
Написана на Python
Операционные системы Linux, macOS и Microsoft Windows
Первый выпуск 22 августа 2022
Последняя версия SD 3.5 (модель)[1] (22 октября 2024)
Репозиторий github.com/Stability-AI/…
Лицензия Stability AI Community License
Сайт stability.ai/stable-image

Разработка

Stable Diffusion возник из проекта Latent Diffusion[8], созданного исследователями Мюнхенского университета и Гейдельбергского университета. Четверо из пяти основных авторов (Робин Ромбах, Андреас Блаттманн, Патрик Эссер и Доминик Лоренц) впоследствии перешли в Stability AI и работали над последующими версиями Stable Diffusion.

Лицензия на модель была опубликована группой CompVis в LMU. Разработку возглавляли Патрик Эссер (Runway) и Робин Ромбах (CompVis) — именно они создали архитектуру латентного диффузионного моделирования, используемую в Stable Diffusion. Компании EleutherAI и LAION (Германия, некоммерческая), создавшая наборы данных для обучения, также внесли вклад в проект.

Технология

Архитектура

Диффузионные модели, предложенные в 2015 году, обучаются на задачи восстановления изображений из последовательностей гауссова шума, действуя как последовательность денойзинг-автоэнкодеров. Название «диффузионные» восходит к термодинамическому процессу диффузии[9].[10]

Модели серий Stable Diffusion до SD 3 использовали вариант diffusion models — латентную диффузионную модель (LDM), предложенную группой CompVis (Computer Vision & Learning) в LMU в 2021 году[11].[5]

Структура Stable Diffusion включает три части: VAE, U-Net и дополнительный текстовый энкодер[12]. Энкодер VAE сжимает изображение в латентное пространство, отделяя смысловое содержимое от деталей пикселей. Во время прямой диффузии в латентное представление поэтапно добавляется гауссов шум[12]. Модуль U-Net (с основой на ResNet) очищает изображение от шума для получения латентного вектора. После этого декодер VAE воссоздаёт изображение из латентного представления[12].

Денойзинг может проводиться с учётом текста, изображения или другой модальности, которые подаются на вход через механизм кросс-внимания[12] Для текстовых запросов применяется предобученный текстовый энкодер CLIP ViT-L/14.[5]. Исследователи отмечают большую вычислительную эффективность LDM по сравнению с «пиксельными» диффузионными моделями.

Ядро U-Net насчитывает 860 миллионов параметров, а текстовый энкодер — 123 миллиона. По состоянию на 2022 год Stable Diffusion считается «лёгкой» моделью и может запускаться даже на потребительских GPU[13], и даже на CPU — при использовании варианта OpenVINO[14].

SD XL

SD XL использует ту же архитектуру LDM, но с увеличенным ядром UNet, увеличенным вниманием, двумя текстовыми энкодерами и поддержкой произвольного соотношения сторон (а не только квадратных изображений).

SD XL Refiner — отдельная модель для детализации существующих изображений по текстовым инструкциям (img2img), обученная на тех же принципах.

SD 3.0

Версия 3.0 использует совершенно другую архитектуру: вместо UNet применён Rectified Flow Transformer, реализующий метод rectified flow[15][16] на основе трансформера.

В трансформере SD 3.0 три потока: исходное текстовое кодирование, преобразованное текстовое кодирование и кодирование изображения (в латентном пространстве). Структура называется мультимодальным диффузионным трансформером (MMDiT), поскольку происходит совместная обработка текста и изображения.

Данные для обучения

Stable Diffusion обучался на парных множествах «изображение-аннотация» из базы LAION-5B, агрегированной из публичных данных Common Crawl, в количестве 5 млрд пар. Данные сортировались по языку, разрешению, вероятности наличия водяного знака и эстетической оценке[17]. По третьей стороне установлено, что почти половина изображений в подвыборке из 12 миллионов пришла лишь с сотни доменов: лидируют Pinterest (8,5 %), затем WordPress, Blogspot, Flickr, DeviantArt, Wikimedia Commons[18].

Процедуры обучения

Изначальное обучение модели проводилось на подвыборках laion2B-en и laion-high-resolution, а окончательные этапы — на LAION-Aesthetics v2 5+, включившей 600 млн изображений, оценённых в среднем не ниже 5 из 10 по эстетике[19].[20] Низкое разрешение и водяные знаки с вероятностью выше 80 % фильтровались автоматически[17]. Для улучшения управления генерацией часть инструкций генерировалась без текстовой подстроки (classifier-free guidance)[21].

Обучение основной модели заняло 150 000 GPU-часов на 256 Nvidia A100 в облаке AWS (примерно 600 000 долларов США)[22].

Ограничения

Модель подвержена деградации качества и ошибкам при определённых условиях. Первая версия обучалась на изображениях 512×512 пикселей, и качество резко снижалось вне этого разрешения[23]; версия 2.0 получила нативную поддержку 768×768[24]. Особенно сложной для модели оказалась генерация человеческих конечностей и лиц из-за недостаточно разнообразных данных в LAION[25]. Также Stable Diffusion не в состоянии создавать читаемые амбиграммы и некоторые другие текстовые формы. Версия SDXL 1.0 (июль 2023) впервые ввела разрешение 1024×1024 и повысила качество генерации лиц и текста[26].

Для настройки модели под задачи, отличающиеся от обучающих данных (например, «аниме-генерация», waifu diffusion)[27], требуются новые метки и дообучение. Реализации Stable Diffusion успешно дообучались на медицинских изображениях[28] и даже для создания музыки[29]. Однако дообучение ресурсоёмко: waifu diffusion требует минимум 30 ГБ VRAM, что превышает возможности обычных геймерских видеокарт[30].

Также отмечается алгоритмическая предвзятость: из-за того, что обучающие тексты и подписи были преимущественно на английском, модель часто воспроизводит западную или «типично белую» визуальность[31].

Файнтюнинг пользователями

Для решения ограничений пользователь может дообучить (fine-tune) модель под собственные запросы («персонализация»). Доступны три метода:

  • «Эмбеддинг» («textual inversion») — обучаемый токен на основании набора пользовательских изображений, повтор которого в запросе генерирует визуально схожие результаты[32].[33]
  • Гиперсеть (hypernetwork) — небольшая нейросеть, подключаемая к различным слоям модели, позволяющая менять художественный стиль или тип результата[34].
  • DreamBooth — метод глубинного обучения, разработанный командой Google Research/Boston University, для генерации персонализированных изображений по набору пользовательских примеров[35].

Возможности

Stable Diffusion позволяет создавать новые изображения по текстовым описаниям (text2img)[5] а также изменять существующие изображения (guided image synthesis[36],) путём внесения изменений по новому текстовому промпту[5] Возможны также частичные изменения (инпейтинг, аутпейтинг), если интерфейс поддерживает эти опции.[37].

Для работы рекомендуется минимум 10 ГБ видеопамяти, но при необходимости возможно с пониженной точностью (float16), за счёт качества[23].

Генерация по текстовому запросу

Скрипт text2img («txt2img») принимает текстовое описание и дополнительные параметры (тип сэмплера, размер, сид). Результат зависит от промпта и сида; одинаковые значения дают одинаковое изображение, разные — новые варианты[5] Каждое изображение помечается невидимым watermark, который, однако, теряет актуальность при изменении размера.[38].

В различных интерфейсах реализованы механизмы изменения веса частей промпта. Существуют так называемые negative prompt, позволяющие явно исключить нежелательные объекты (например, «лишние руки»)[37][39].

Модификация изображений

В режим img2img подаётся текстовый промпт, путь к изображению и «сила» (от 0.0 до 1.0), определяющая степень преобразования; максимальные значения дают больший отход от исходника[5] Основной алгоритм — SDEdit: к картинке добавляется шум, затем удаляется как в text2img.

img2img пригоден для анонимизации и увеличения разнообразия данных (data augmentation), а также для апскейлинга, то есть увеличения разрешения.</ref>. В изображениях с мелким шрифтом и лицами современные методы пока уступают JPEG/WebP[40].

Многие интерфейсы реализуют доп. функции: инпейтинг (маскирование), аутпейтинг (расширение), depth2img (учёт карты глубины)[24] и др.

ControlNet

ControlNet — архитектура, позволяющая управлять диффузионной моделью через дополнительные условия[41]. Механизм двойных копий весов (locked/trainable) обеспечивает защиту «базовой» модели при дообучении на малых датасетах. Вся настройка именно «докручивает» сеть без обучения с нуля.

Пользовательские интерфейсы

Stability AI предоставляет облачный сервис генерации изображений DreamStudio[42]. Открытая версия DreamStudio — StableStudio[43]. Кроме авторских решений, существуют и сторонние open source-проекты: AUTOMATIC1111 Stable Diffusion Web UI, Fooocus, интерфейс с минимальными настройками пользователем[44], и ComfyUI, реализующий нодовую схему интерфейса[45].

Выпуски

История версий
Версия Дата Ключевые особенности Примечания
1.1, 1.2, 1.3, 1.4 август 2022 Все выпущены CompVis. Версии 1.2 → 1.3 и 1.4; версии 1.0 не существует. [46]
1.5 октябрь 2022 Базируется на весах 1.2, выпущена RunwayML. [47]
2.0 ноябрь 2022 Обучена с нуля на отфильтрованном датасете. [48]
2.1 декабрь 2022 На весах 2.0. [49]
XL 1.0 июль 2023 3,5 млрд параметров, ядро примерно в 3,5 раза больше предыдущих версий. [50]
XL Turbo ноябрь 2023 Упрощённая (distilled) версия XL 1.0 для работы за меньшее число диффузионных шагов. [51]
3.0 февраль 2024 (превью) Новая архитектура, от 800 млн до 8 млрд параметров; семейство моделей. [52]
3.5 октябрь 2024 Новое семейство: Large (8 млрд), Large Turbo и Medium (2,5 млрд параметров). [1]

Stable Diffusion 3.5 Large доступна для корпоративного использования на Amazon Bedrock (AWS)[53].

Использование и споры

Разработчики Stable Diffusion не претендуют на авторские права на сгенерированные изображения: их могут использовать все желающие при условии отсутствия противоправного или вредящего третьим лицам контента[54].

Фильтрация обучающего датасета была полностью автоматической, что привело к появлению вредоносных или чувствительных изображений[18].

Многие художники и представители сферы искусства опасаются потери конкурентоспособности из-за растущего распространения синтетических изображений.

Stable Diffusion более либеральна к генерируемому контенту (включая NSFW/жестокий) по сравнению с конкурирующими ИИ-продуктами[55]. Генеральный директор Stability AI Эмад Мостак подчёркивает, что ответственность за этическое использование лежит на пользователях и открытый доступ служит социальной пользе. Любые программные ограничения Stability AI на генерируемый контент легко обходятся благодаря открытости исходных кодов[56].

Отдельные споры вызывает генерация фотореалистичных сексуализированных изображений несовершеннолетних, распространявшихся на платформах вроде Pixiv[57].

В июне 2024 года была зафиксирована атака на расширение ComfyUI, одного из интерфейсов Stable Diffusion, с месседжем о «борьбе с арт-воровством»[58].

Судебные иски

Andersen, McKernan, and Ortiz против Stability AI, Midjourney и DeviantArt

В январе 2023 года трое художников (Сара Андерсен, Келли МакКернан и Карла Ортис) подали иск против Stability AI, Midjourney и DeviantArt — о нарушении авторских прав из-за обучения моделей на изображениях, полученных без ведома правообладателей[59]. В июле 2023 года окружной суд США отклонил основную часть требований, но разрешил истцам подать скорректированный иск[60].

Getty Images против Stability AI

В январе 2023 года Getty Images инициировала суд в Англии по поводу масштабного нарушения авторских прав: модели Stable Diffusion обучались на миллионах изображений Getty без согласия, что позволило использовать их для генерации новых изображений[61][62].

Основные вопросы по делу: обучение модели происходило внутри или за пределами Великобритании (важно для юрисдикции), может ли ПО считаться «объектом» («article») по закону о копирайте, и применимо ли понятие «вторичного нарушения» к выкладыванию моделей на GitHub, HuggingFace и DreamStudio[63]. Решение ожидается летом 2025 года и может повлиять на законодательство о лицензировании ИИ-контента в Великобритании.

Лицензия

В отличие от моделей типа DALL-E, Stable Diffusion распространяет исходный код и обученные веса в открытом доступе[64]. До версии 3 использовалась лицензия Creative ML OpenRAIL-M, с запретом на использование для противоправных целей (преступления, травля, медконсультации, дискриминация и др.)[65], но права на полученные изображения полностью передаются пользователю[66].

С версии 3.5 применяется люцензия Stability AI Community License; для коммерческих пользователей с оборотом более $1 млн требуется отдельная Stability AI Enterprise License[67]. Права на результаты генерации полностью принадлежат пользователю[1].

Примечания