Исходная публикация с описаниеим метода [Mar 2023] — DreamBooth: Fine Tuning Text‑to‑Image Diffusion Models for Subject‑Driven Generation  Stable Diffusion — новаторская модель генерации изображений на основе искусственного интеллекта. Она использует метод диффузии для постепенного улучшения качества сгенерированных изображений. В основеStable Diffusion лежит архитектура autoencoder. Сначала модель «кодирует» текстовое описание в вектор признаков. Затем декодер поэтапно создает изображение, уточняя его с каждым шагом. Этот процесс напоминает диффузию — плавное распространение частиц. Нейронные сети «получают информацию» об окружающем мире при обучении. Создатели модели генерируют огромный датасет картинок с их описанием, и загоняют их в модель. Однако если вы хотите генерировать какой то конкретный обьект — например лично вас, вашего питомца, родной дом, картины любимого автора в особом стиле итп.Вы можете загнать ваши новые изображения в модель, придумав для них описание, содержащие названия вашего объекта (или лучше какой‑то специальный токен, условно [V]), и скоректировав веса градиентным спуском, так что бы модель понимала, что скрывается за этим токеном. Однако такое дообучение дифузионных моделей имеет свои недостатки Language drift — модель предварительно обученная на большом корпусе текста и позже точно настроенная для конкретной задачи, постепенно теряет синтаксические и семантические знания языка. Уменьшения разнообразия выходных данных. Модели преобразования текста в изображение естественным образом обеспечивают большое разнообразие выходных данных. При точной настройке мы хотели бы иметь возможность создавать объект в новых ракурсах, позах. Однако из за переобучения вариативность выходных поз объекта сокращается. Авторы статьи решают эту задачу дополнительным лоссом — class‑specific prior preservation loss. Вначале обучаемая модель пытаться сгенерировать нашу собаку, и обучается по лоссу с фотографиями из выборки для дообучения. Затем она же генерирует произвольную собаку, и лосс считается с фотографиями, сгенерированными исходной моделью. Таким образом, мы наказываем модель, за то что она забывает абстрактные признаки собак, концентрируясь на обучающей выборке. Более лаконично на схеме: Или более строго прибавку к лосу можно записать в виде: Как видно из картинок ниже, добавление class‑specific prior preservation loss очень позитивно сказалось на возможности модели генерировать исходный объект в разнообразных вариациях Просто сравните с тем что было выше! Так же модель научилась видоизменять обьект в зависимости от промпта, генерируя полностью новые объекты на основе существующего: При этом сама модель не потеряла возможности генерировать обычные объекты (произвольных собак, отличных от той, на которой происходило до обучение) А так же такой подход очень хорошо сработал для задач style‑transfer конкретного объекта. Авторы смогли сгенерировать картинки в разных стилях, но с исходной собакой. При обучении модели нет смысла обучать все её веса, достаточно обучения небольших адаптеров. Подробнее о том как это работает написано в моей другой статье на хабре. Я до обучил stable‑diffusion‑v1–5 на двух собственных датасетах — фотографии кошки (cloody‑cat) и декоративного гриба. Обучение проходило на видеокарте A100 (занимая примерно 1/8 видеопамяти) в течении 2х минут. Интерактивная демонстрация работы моей модели на Hugging Face — freQuensy23/diffusion‑cloody — там можно потыкать свои запросы бесплатно (за такое им огромный респект)! В таблице ниже показано как со временем обучения меняется результат генерации по промпту «A [V] cat», а более красочно вы можете посмотреть это в анимации в начале этой статьи или тут. Так же я проверил данную систему на генерации этого кота в очень разных условиях и стилях. Дальше будет просто фотогалерея Прошу прощения за такой спам картинками в конце, чуть менее формально про эту технологию и идеи по ее монетизации описаны в моей телеге. P. S. Если есть ошибка в правописании — сообщите мне через стандартную систему хабра — я исправлю. Мне бывает сложно писать на русском.