Stable Diffusion
Stable Diffusion — модель преобразования текста в изображение, которая появилась в августе 2022 года. Позволяет как создавать изображения на основе текстового запроса, так и осуществлять прочие манипуляции над изображениями, например перерисовывать их части, изменять согласно описанию.
Исходный код и веса моделей были опубликованы открыто, что позволяет её установить и запустить на компьютере любому желающему. Так же она выгодно отличается тем, что у неё не такой монструозный размер, как у других подобных нейронок и её можно запустить всего на 6гб видеопамяти, а с некоторыми приколами ажно на 2 гигах. Это далеко не первая открытая нейросеть, но первая, которая выдаёт вполне сносные результаты, когда как остальные подобные модели было возможно использовать только через специальный интерфейс, запросы к ним требовали оплаты, дык ешшо и подвергалися цензуре.
История[править]
Базовые версии Stable Diffusion (1.0-1.5) были обучены на ~900 миллионах отфильтрованных пикч из открытого датасета картинок с аннотациями LAION-5B, а затем переобучены на фильтрованном датасете эстетичных картинок LAION-Aesthetics-V2-5, чтобы генерировало более-менее кросиво и могло распознавать сложные и подробные запросы. Сначала учили на разрешении 256x256, и только потом на 512x512.
Впоследствии также появились и новые переобученные модели и миксы моделей, например обученные на аниме-изображениях. Что примечательно, пользовательские файнтюны на голову обошли оригинальную (sdv1.5) модель в качестве и крсивости рисуемых картинок, и если у оригинальной молельки наблюдался заметный жмых (от vae), то пользовательские модельки способны генерить ажно правильную анатомию с пятью пальцами без каких-либо проблем.
Эта нейросеть благородна: она была обучена на западной базе данных изображений, поэтому выдаёт изображения, именно основанные на западной же культуре, а всё остальные культуры вежливо посылает в тухес, что очень доставляет. Для наилучшей работы требуется задача запросов на английском языке.
Позволяет задавать как то, что хочется увидеть на изображении, так и то, чего видеть как раз не хочется.
Получила известность доученная модель теми же stabilityAI для NovelAI, которую слили осенью 2022. В ней разрабы применили ряд улучшений, которые впоследствии войдут в SDXL, такие, как улучшенная анатомия и детализация, генерация необрезанных картинок, которые точно подогнаны под выходное разрешение и всякие другие. Комьюнити сразу подхватило модельку, так как качество генерируемых тяночек было на голову выше дефолтной sd1.4, она до сих пор входит во множество миксов моделек. Сейчас, правда, кастомные файнтюны уже намного переросли эту novelai модельку.
Обученная модель оказалась опубликована благородными пиратами в открытом доступе и может быть легко установлена на собственный компьютер, без оплаты.
Внутре[править]
StableDiffusion 1 и 2 версии состоят из 4 нейросетей: текстового кодировщика CLIP (соединятора картинок и текст в одно пространство), кодировщика пространства пикселей в скрытое пространство (VAE), собственно самой модели диффузии и декодера из скрытого пространства обратно в пиксели. Что самое интересное, здесь принципиально ничего нового разработчики не придумали: это просто красивая адаптация методов Imagen и Latent Diffusion.
Для начала надо подробно описать пару вещей.
VAE (Variational Autoencoder) — это нейросеть, которая умеет сжимать картинки и другие данные в небольшое количество чисел (латентное пространство), а затем распаковывать их обратно. Если быть ещё точнее, то вае конвертирует между RGB(8 на 8(64 пикселя) на 3(цвета, красный, зелёный и синий) в 1 на 1 на 4. То есть 64 цветных пикселя жмыхаются до 4 дробных числа. Она делает это благодаря теории, которая говорит, что не все пиксели в картинке содержат реальную информацию. Таким образом, VAE учится отображать картинки в низкоразмерное и высокоплотное пространство, чтобы работать быстрее и экономно на ресурсах.
U-Net — это еще одна нейросеть, которая используется для денойзинга (очистки) изображений от шума. Она учится удалять шум из латентного пространства, которое было создано VAE.
При операции текст-в-картинку текст (предварительно преобразованный в токены или куски текстового понимания на рабоче-крестьянском) подаётся в текстовый кодировщик CLIP, который смотрит на текст, пережёвывает его и выплёвывает на выход эмбеддинги, которые являются эдакими представлениями определённых понятий. Затем генератор случайного шума генерирует собственно шум в специальном скрытом «закодированном» пространстве. Затем, собственно происходит сама диффузия или по-простому денойзинг. Диффузия это ооочень медленный метод, и денойз обычной 512x512 картинки бы проходил около получаса, если не больше, поэтому в Stable Diffusion используют метод latent diffusion, когда модель тренируют выполнять диффузию как раз в этом «сжатом» скрытом пространстве для ускорения работы. На модель диффузии архитектуры Unet подают эмбеддинг текста и закодированный шум и модель диффузии удаляет определённую часть (обычно совсем чуть-чуть, иначе результат будет не оче) шума, руководствуясь текстовыми эмбеддингами, которые дал CLIP и отхаркивает на выход обработанные «латенты»(или заколированные цветные пиксели в латентное пространство) в скрытом пространстве. Затем эти выходные «латенты» подают снова в диффузию и так N раз. Затем совсем заденойзенные «латенты» подают на декодер, который разворачивает их в обычные пиксели с небольшими потерями, немного жмыхая изображение и мы получаем картинку. При картинка-в-картинку происходит всё то же самое но вместо шума подаётся изображение, которое идёт в кодировщик (VAE), который хитро жмёт его в скрытое пространство, а диффузия потом «разшумливает» эту картинку в нужную сторону.
Алсо, зная, что clip-эмбеддинги не представляют собой слова, а скорее понятия, можно запилить эмбеддинг, например, себя любимого и использовать потом в генерациях.
Что примечательно, никто не может обьяснить, почему clip может так соединять картинки и текст, как и почему если обучить диффузию на дохуище картинок она может денойзить шум в совершенно новые, так что, получается, такие нейросети являются ничем иным, как самой настоящей магией IRL.
Ссылкота[править]
- официальная демка
- демо на replicate
- ещё бесплатная демка
- Популярный навороченный webUI для нейросети
- Богатая библиотека кастомных моделей