Репозиторий Сайт

Stable Diffusion

Это нейросеть глубокого обучения для преобразования текста в изображение, выпущенная в 2022 году. Она основана на методах диффузии, которые позволяют генерировать изображения постепенно, шаг за шагом, начиная с случайного шума.
Stable Diffusion используется для создания подробных изображений на основе текстовых описаний. Например, можно использовать ее для создания изображений животных, людей, объектов или сцен. Также ее можно использовать для других задач, таких как закрашивание, закрашивание и создание переводов между изображениями под управлением текстовой подсказки.
Stable Diffusion разработали исследователи из группы CompVis в Мюнхенском университете Людвига-Максимилиана и Runway при вычислительном пожертвовании Stability AI и обучающих данных от некоммерческих организаций.
Stable Diffusion — это модель скрытой диффузии, которая представляет собой разновидность глубокой генеративной искусственной нейронной сети. Ее код и вес модели были открыты, что позволяет использовать ее на большинстве потребительских устройств, оснащенных скромным графическим процессором с объемом видеопамяти не менее 8 ГБ.

Разработка

Нейросеть Stable Diffusion была разработана в 2022 году командой исследователей из группы CompVis Мюнхенского университета Людвига-Максимилиана и компании Runway. Проект был финансирован и формировался начинающей компанией Stability AI, которая также предоставила вычислительные ресурсы для обучения модели.

Разработку Stable Diffusion возглавили Патрик Эссер из Runway и Робин Ромбах из CompVis. Они являются одними из авторов архитектуры модели скрытой диффузии, используемой Stable Diffusion.

Кроме того, в разработке модели участвовали EleutherAI и LAION, немецкая некоммерческая организация, которая собрала набор данных для обучения Stable Diffusion.

В октябре 2022 года Stability AI привлекла $101 000 000 в рамках раунда финансирования, проведенного Lightspeed Venture Partners и Coatue Management. Эти средства будут использоваться для дальнейшего развития Stable Diffusion и расширения ее возможностей.

Технологии

Stable Diffusion – это модель искусственного интеллекта, способная генерировать изображения из текста. Она была представлена в 2022 году и использует метод диффузии для создания фотореалистичных картинок.

Архитектура 

Stable Diffusion использует архитектуру скрытой диффузии (LDM), разработанную группой CompVis в Мюнхенском университете Людвига-Максимилиана. LDM состоит из трех частей:

  • Вариационный автокодировщик (VAE), который сжимает изображение из пространства пикселей в скрытое пространство меньшего размера, улавливая более фундаментальное семантическое значение изображения.
  • Блок U-Net, который удаляет шум из скрытого представления во время прямой диффузии.
  • Дополнительный кодировщик текста, который преобразует текстовые подсказки в пространство для встраивания.

Шаг шумоподавления может быть гибко обусловлен строкой текста, изображением или другой модальностью. Закодированные данные кондиционирования подвергаются шумоподавлению U-Nets с помощью механизма перекрестного внимания.

Преимущества архитектуры LDM

LDM имеет ряд преимуществ по сравнению с другими моделями диффузии:

  • Повышенная вычислительная эффективность для обучения и генерации.
  • Относительно небольшая модель, что позволяет ей работать на потребительских графических процессорах.

Параметры модели

Стабильная диффузия имеет 860 000 000 параметров в U-Net и 123 000 000 в кодировщике текста. Это относительно мало по сравнению с другими моделями диффузии, что делает ее более доступной для разработки и использования.

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

Модель Stable Diffusion обучалась на наборе данных LAION-5B, который содержит 5 миллиардов пар изображений и подписей, извлеченных из Интернета. Данные были классифицированы по языку, разрешению, вероятности наличия водяного знака и «эстетической» оценке.

Модель была обучена на трех подмножествах LAION-5B:

  • LAION2B-en — 12 миллионов изображений с английскими описаниями
  • LAION-high-resolution — 12 миллионов изображений с разрешением более 512×512 пикселей
  • LAION-Aesthetics v2 5+ — 600 миллионов изображений, которые были признаны эстетически привлекательными людьми

Сторонний анализ данных обучения показал, что из 12 миллионов изображений в подмножестве laion2B-en примерно 47% поступили из 100 различных доменов. Основным источником изображений был Pinterest, за которым следовали WordPress, Blogspot, Flickr, DeviantArt и Wikimedia Commons.

Расследование Bayerischer Rundfunk показало, что наборы данных LAION, размещенные на Hugging Face, содержат большое количество частных и конфиденциальных данных. В частности, в них были обнаружены изображения людей без их согласия, а также изображения, защищенные авторским правом.

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

Модель Stable Diffusion обучалась в несколько этапов. Изначально она обучалась на двух подмножествах LAION-5B:

  • LAION2B-en — 12 миллионов изображений с английскими описаниями.
  • LAION-high-resolution —12 миллионов изображений с разрешением более 512×512 пикселей.

После этого модель была дополнительно обучена на подмножестве LAION-Aesthetics v2 5+, которое состояло из 600 миллионов изображений, которые были признаны эстетически привлекательными людьми. Это подмножество также исключало изображения с низким разрешением и изображения, которые были помечены как содержащие водяной знак.

В заключительных раундах обучения модель была дополнительно настроена для уменьшения зависимости от обработки текста. Это было сделано для улучшения качества генерации изображений без использования классификаторов.

Обучение модели Stable Diffusion было проведено с использованием 256 графических процессоров Nvidia A100 в Amazon Web Services. Оно заняло в общей сложности 150 000 графо-часов и обошлось в $600 000.

Ограничения

Stable Diffusion — это мощная модель преобразования текста в изображение, но она имеет ряд ограничений.

Деградация и неточности

Первоначальные выпуски модели были обучены на наборе данных, состоящем из изображений с разрешением 512×512. Это означает, что качество создаваемых изображений заметно ухудшается, когда пользовательские спецификации отклоняются от «ожидаемого» разрешения 512×512.

Версия 2.0 модели Stable Diffusion позже получила возможность генерировать изображения с разрешением 768×768. Однако даже при этом разрешении модель может создавать изображения с шумом и артефактами.

Другая проблема заключается в создании человеческих конечностей из-за низкого качества данных о конечностях в базе данных LAION. Модель недостаточно обучена, чтобы понимать человеческие конечности и лица из-за отсутствия репрезентативных особенностей в базе данных.

Версия 1.0 Stable Diffusion XL (SDXL), выпущенная в июле 2023 года, представила собственное разрешение 1024×1024 и улучшенную генерацию конечностей и текста. Однако эта версия модели все еще находится в разработке и ее возможности еще не полностью изучены.

Доступность для отдельных разработчиков

Чтобы настроить модель для новых вариантов использования, таких как генерация аниме-персонажей, требуются новые данные и дальнейшее обучение.

Точные адаптации Stable Diffusion, созданные посредством дополнительной переподготовки, использовались для множества различных случаев использования, от медицинских изображений до алгоритмически генерируемой музыки. Однако этот процесс тонкой настройки чувствителен к качеству новых данных. Изображения с низким разрешением или разрешения, отличные от исходных данных, могут не только не справиться с новой задачей, но и ухудшить общую производительность модели.

Даже если модель дополнительно обучена на изображениях высокого качества, людям сложно запускать модели в бытовой электронике. Например, процесс обучения вайфу-диффузии требует минимум 30 ГБ видеопамяти, что превышает обычный ресурс, предусмотренный в таких потребительских графических процессорах, как серия Nvidia GeForce 30, у которой всего около 12 ГБ.

Алгоритмическая предвзятость

Создатели Stable Diffusion признают возможность алгоритмической предвзятости, поскольку модель в первую очередь обучалась на изображениях с английскими описаниями. В результате сгенерированные изображения усиливают социальные предубеждения и отражают западную точку зрения.

Модель дает более точные результаты для подсказок, написанных на английском языке, по сравнению с подсказками, написанными на других языках. Западная или белая культура часто является представлением по умолчанию.

Тонкая настройка для конечного пользователя

Стабильная диффузия — это мощная модель преобразования текста в изображение, но она имеет ряд ограничений. Чтобы устранить эти ограничения, конечные пользователи могут выбрать дополнительное обучение для точной настройки результатов генерации в соответствии с более конкретными сценариями использования. Этот процесс также называется персонализацией.

Существует три метода, с помощью которых доступная пользователю точная настройка может быть применена к контрольной точке модели стабильной диффузии:

  • Embedding — это метод, при котором модель обучается на коллекции изображений, предоставленных пользователем. Это позволяет модели генерировать визуально похожие изображения всякий раз, когда имя встраивания используется в подсказке создания. Встраивания основаны на концепции «текстовой инверсии», где векторные представления для конкретных токенов, используемых кодировщиком текста модели, связаны с новыми псевдословами. Внедрения можно использовать для уменьшения искажений в исходной модели или для имитации визуальных стилей.
  • Hypernetwork — это небольшая предварительно обученная нейронная сеть, которая применяется к различным точкам внутри более крупной нейронной сети. Гиперсеты направляют результаты в определенном направлении, позволяя моделям на основе стабильной диффузии имитировать художественный стиль конкретных художников, даже если художник не распознается исходной моделью. Гиперсеты обрабатывают изображение, находя ключевые важные области, такие как волосы и глаза, а затем помещают эти области во вторичное скрытое пространство.
  • DreamBooth — это модель генерации глубокого обучения, разработанная исследователями из Google Research и Бостонского университета. Она позволяет точно настроить модель для генерации точных персонализированных результатов, изображающих конкретный предмет, после обучения с помощью набора изображений, изображающих этот предмет.

Дополнительные комментарии

  • Embedding являются наиболее простым и доступным методом тонкой настройки для конечных пользователей. Они могут быть использованы для создания изображений с определенными визуальными характеристиками, такими как стиль или цветовая гамма.
  • Hypernetwork более сложны, но они позволяют добиться более тонкого контроля над результатами генерации. Они могут быть использованы для имитации конкретных художественных стилей или создания изображений с определенными объектами или персонажами.
  • DreamBooth является самым мощным методом тонкой настройки, но он также является самым сложным и требует значительных вычислительных ресурсов. Он может быть использован для создания изображений, которые точно соответствуют конкретным требованиям пользователя.

Возможности

Stable Diffusion — это модель преобразования текста в изображение, которая может использоваться для создания новых, перерисованных или измененных изображений.

Создание новых изображений

Stable Diffusion может генерировать новые изображения с нуля, используя текстовую подсказку, описывающую желаемые элементы изображения. Например, пользователь может использовать текстовую подсказку «красивая кошка» для создания изображения кошки, или «кошка с зелеными глазами и белым мехом» для создания более конкретного изображения.

Перерисовка и изменение существующих изображений

Stable Diffusion также может использоваться для перерисовки и изменения существующих изображений. Например, пользователь может использовать текстовую подсказку «добавить собаку на пляж» для добавления собаки на пляжное изображение. Или пользователь может использовать текстовую подсказку «закрасить небо в синий цвет» для изменения цвета неба на изображении.

Для использования Stable Diffusion для перерисовки и изменения существующих изображений необходимо использовать соответствующий пользовательский интерфейс, поддерживающий эти функции. В настоящее время существует множество различных реализаций Stable Diffusion с открытым исходным кодом, которые поддерживают эти функции.

Генерация текста в изображение

Stable Diffusion может генерировать изображения на основе текстового описания. Например, пользователь может использовать текстовую подсказку «красивая кошка» для создания изображения кошки, или «кошка с зелеными глазами и белым мехом» для создания более конкретного изображения.

При использовании Stable Diffusion для генерации текста в изображение можно настроить следующие параметры:

  • Тип выборки: определяет, как модель выбирает пиксели для уточнения.
  • Размеры выходного изображения: определяют размер выходного изображения.
  • Начальные значения: определяют начальное изображение, которое используется в качестве отправной точки для генерации.

Дополнительные возможности

Внешние реализации Stable Diffusion предоставляют дополнительные функции для text2img, которые позволяют пользователям более точно контролировать результаты генерации изображений.

  • Маркеры выделения: позволяют пользователям добавлять или уменьшать важность ключевых слов в текстовой подсказке. Это может быть полезно для того, чтобы сделать изображение более или менее конкретным, или чтобы подчеркнуть определенные аспекты изображения.
  • Отрицательные подсказки: позволяют пользователям указывать подсказки, которых модель должна избегать во время создания изображения. Это может быть полезно для того, чтобы предотвратить появление нежелательных элементов в изображении, таких как искалеченные человеческие руки.

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

Stable Diffusion также включает в себя сценарий выборки «img2img», который позволяет пользователям изменять существующие изображения с помощью текстовой подсказки.

Для этого сценария требуется три параметра:

  • Текстовая подсказка: описывает элементы, которые должны быть добавлены или изменены на изображении.
  • Путь к существующему изображению: изображение, которое будет модифицировано.
  • Значение силы: определяет, сколько шума будет добавлено к выходному изображению. Более высокое значение силы приводит к более разнообразным изображениям, но может привести к созданию изображений, которые не соответствуют предоставленной текстовой подсказке.

Stable Diffusion может использовать img2img для различных целей, включая:

  • Анонимизацию: добавление шума к изображению может сделать его менее узнаваемым.
  • Увеличение данных: добавление шума к изображению может создать новые варианты изображения, которые могут быть использованы для обучения моделей машинного обучения.
  • Масштабирование: увеличение разрешения изображения с помощью img2img может добавить больше деталей.
  • Сжатие: Stable Diffusion экспериментировал с использованием img2img для сжатия изображений, но этот метод имеет ограничения по сохранению мелкого текста и лиц.

Множество внешних реализаций Stable Diffusion предлагают дополнительные варианты использования для модификации изображений.

  • Inpainting: позволяет пользователям выборочно изменять части существующего изображения, используя маску слоя. Маска слоя определяет, какие части изображения должны быть изменены.
  • Перерисовка: позволяет пользователям расширять изображения за пределы их исходных размеров, заполняя ранее пустое пространство новым содержимым.
  • Deep2img: позволяет пользователям контролировать глубину выходного изображения. Эта модель определяет глубину исходного изображения и генерирует новое изображение, которое сохраняет глубину исходного изображения.

ControlNet

Контрольная сеть (ControlNet) — это архитектура нейронной сети, которая позволяет управлять моделями диффузии путем включения дополнительных условий.

ControlNet работает, дублируя веса блоков нейронной сети в две копии: «заблокированную» и «обучаемую». «Заблокированная» копия сохраняет исходную модель, а «обучаемая» копия изучает желаемое условие.

Этот подход позволяет обучать модели диффузии на небольших наборах данных пар изображений, не нарушая целостности исходной модели.

«Нулевая свертка» — это свертка 1×1, в которой вес и смещение инициализируются равными нулю. Перед обучением все нулевые свертки дают нулевой результат, что предотвращает любые искажения, вызванные ControlNet.

ControlNet не обучает ни один слой с нуля. Вместо этого он использует процесс тонкой настройки, который сохраняет исходную модель в безопасности.

Этот метод позволяет проводить обучение на небольших или даже персональных устройствах.

Более подробное объяснение

ControlNet работает следующим образом:

  1. Сначала исходная модель диффузии разделяется на два блока: «заблокированный» и «обучаемый».
  2. «Заблокированный» блок сохраняет исходные веса и параметры модели.
  3. «Обучаемый» блок получает новые веса и параметры, которые будут использоваться для управления моделью.

Чтобы управлять моделью, «обучаемый» блок использует нулевые свертки для включения дополнительных условий. Нулевая свертка — это свертка 1×1, в которой вес и смещение инициализируются равными нулю. Перед обучением все нулевые свертки дают нулевой результат, что предотвращает любые искажения, вызванные ControlNet.

ControlNet обучается с помощью процесса тонкой настройки. Тонкая настройка — это процесс обучения модели с использованием небольшого набора данных. В этом случае небольшой набор данных состоит из пар изображений, где каждое изображение соответствует определенному условию.

ControlNet может использоваться для различных целей, включая:

  • Анонимизацию изображений: ControlNet может использоваться для добавления шума к изображениям, чтобы сделать их менее узнаваемыми.
  • Увеличение данных: ControlNet может использоваться для создания новых вариантов изображений, которые могут быть использованы для обучения моделей машинного обучения.
  • Масштабирование изображений: ControlNet может использоваться для увеличения разрешения изображений.

ControlNet — это мощный инструмент, который может использоваться для управления моделями диффузии. Он позволяет обучать модели диффузии на небольших наборах данных, не нарушая целостности исходной модели.

0
https://sd-hub.ru/o-nejroseti-stable-diffusion/

Автор публикации

не в сети 2 недели

SD-Hub

10K
Собираем и делимся полезной информацией о Stable Diffusion
Комментарии: 0Публикации: 275Регистрация: 11-12-2022
Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *