В самом первом приближении, Stable Diffusion - это модель преобразования текста в изображение. Вы даете ей текстовый запрос, и она возвращает изображение, соответствующее этому запросу.
Давайте напомню вам, что такое диффузия, самым трогательным способом, какой знаю - совет для чешских учителей начальных классов гласит: "Принесите в класс духи, попросите всех учеников от первых парт и до последних записать точное, вплоть до секунды, время, когда они почувствуют запах" и попросите сравнить показатели и сделать выводы, о том, как запах распространялся по комнате.
Благодарности В создании этого текста мне помогают perplexity, claude, consencus и custom GPT Engrussian. Однако, хочу предостеречь, - все они драматически путаются в теме, так как с трудом разделяют информацию о двух процессах - обучении модели и процессе генерации.
SD происходит из Мюнхена, из лаборатории CompVis при университете Людвига-Максимилиана, ее создавали в сотрудничестве с командой хорошо знакомого многим Runway. (Runway уже тогда подбирались к созданию мультимедийного AI-комбайна и даже имели свою первую пользовательскую платформу, на которой можно было натренировать GAN генерировать покемона). =
Сложно поверить, но релиз SD произошел всего два года назад - в августе 2022 года. За эти два года компания Stability AI прошла, кажется довольно изматывающий путь - про такое любят снимать кино, и писать байопики участников - невероятный технологический прорыв, позволивший производить генерацию изображений буквально на зубной щетке (GPU 4Гб), сотня миллионов инвестиций, попытки нащупать бизнес-модель, зачастую неуклюжие. Развитие линейки интересов в сторону аудио, 3D, генеративного видео. Новые релизы моделей, некоторые из которых были не просто ужасны, — чудовищны. Несколько крупных ссор с сообществом и смена руководства.
Но это великие люди, которые отдали нам, не_инженерам, професс диффузии. Именно на их модели, мы научились лучше понимать ML вообще, концепцию шума, весов, блокировки фрагметов слоев с помощью ControlNet, для нее написали инструкции по тренировкам на собственных фотогарфиях и художественных стилях , к ней первой подключили механизмы переноса стиля с одного изображения на другое.
В курсах “AI для создателей видео”, которые создавал для нашей школы Всеволод Таран (aka @тоже_моушн), скорее всего помнят наши игры в GAN и колаб с чудесным названием - LSD, для создания реагирующего на звук моушн-видео, которым Сева открывал свой курс. Именно на них лучше всего видно, как это - генерировать без возможности текстовой инструкции.
GAN (Генеративно-состязательные сети) были настоящим прорывом в свое время. Представьте себе двух художников: один рисует подделки, а другой пытается их распознать. Со временем оба становятся настолько хороши, что отличить подделку от оригинала становится практически невозможно. Вот вам и GAN в двух словах.
[ВИДЕОАРХИВ. Первое занятие курса “ “AI для создателей видео”, Декабрь, 2022 ]
Но Stable Diffusion пошла дальше. В процессе обучения SD есть момент, до которого ее предшественники не додумались. До представления ей пар "img-txt" (датасет LAION), сначала модель учили понимать общую структуру и содержание изображений без текстовых или языковых условий. Идея была в том, чтобы сначала помочь модели создать устойчивое представление об организации визуальных данных и научиться выполнять диффузию без текстовых условий.
Одним из ведущих разработчиков Stable Diffusion был Робин Ромбах. И сейчас, в наступившем будущем, всем, кто занимается генеративным AI, как никогда важно это вспомнить по одной очень простой причине - его новый проект FLUX - диффузионная модель на порядок красивее Stable Diffusion, сделана по тем же принципам. И мы можем, работая c нею, применять знания и инструменты, полученные от работы с великой и ужасной SD.
Но Ромбах был не один. Вот еще несколько ключевых фигур:
Stable Diffusion стала великой потому, что была первой непроприетарной моделью с потрясающими возможностями для инженерии разных стадий диффузионного процесса. Это открыло дорогу тысячам энтузиастов и разработчиков, которые могли теперь изучать, модифицировать и улучшать модель.
А ужасной... ну, давайте будем честными - никакими ухищрениями и никакими версиями стэйбл нельзя было заставить делать "красиво". По крайней мере, не так красиво, как хотелось бы.
Давайте сделаем первый подход к осознанию архитектуры модели. Первый, потому что много чего может случиться между экспериментами и теорией. Часто человеку, не занятому напрямую машинным обучением, кажется, что ему достаточно владеть каким-нибудь приложением и не обязательно разбираться в том, что такое модель. (по аналогии с тем, что не нужно знать, как летает самолет, чтобы на нем лететь) - это почти что правда!
Но хотя бы примерное понимание архитектуры точно пригодится: