К содержанию
Новости

Как устроен Stable Diffusion: разбор компонентов системы генерации изображений

Материал The Illustrated Stable Diffusion объясняет, как работает система генерации изображений Stable Diffusion. Технология позволяет создавать визуальные изображения по текстовым описаниям и рассматривается как заметный этап развития инструментов генерации изображений. В статье приводится вводное объяснение принципов работы системы и основных режимов её использования, включая генерацию изображений только по тексту (text2img), а также изменение изображений при входных данных вида текст + изображение.

Stable Diffusion описывается как система из нескольких компонентов и моделей, а не единая модель. Первый элемент, компонент понимания текста, который переводит текст в числовое представление. В качестве текстового энкодера используется Transformer language model, текстовый энкодер модели CLIP. Он принимает текст и формирует список чисел, представляющих слова или токены: 77 token embeddings vectors, каждый размерностью 768.

Далее данные передаются в генератор изображения, состоящий из двух стадий. Первая, Image information creator, который многократно обрабатывает данные в пространстве latent space. В интерфейсах Stable Diffusion количество шагов задаётся параметром steps, часто со значениями по умолчанию 50 или 100. Этот компонент реализован с помощью UNet neural network и scheduling algorithm и постепенно обрабатывает информацию, начиная с массива шума.

Вторая стадия, Image Decoder, который один раз в конце процесса преобразует полученную информацию в итоговое изображение. В статье выделяются три основных компонента системы: ClipText для кодирования текста; UNet + Scheduler для диффузионной обработки информации в latent space; Autoencoder Decoder для получения финального изображения. На вход декодеру поступает массив размерности (4,64,64), а на выходе формируется изображение размерности (3, 512, 512), (red/green/blue, width, height).

Ключевые факты

  • Версия материала V2 обновлена в Nov 2022: добавлены изображения и уточнено описание процесса forward diffusion.

  • Stable Diffusion может генерировать изображения из текстовых описаний (text2img), а также изменять изображения на основе комбинации текста и изображения.

  • Текстовый энкодер ClipText преобразует входной текст в 77 векторных представлений токенов размерностью 768.

  • Декодер автоэнкодера преобразует обработанный массив размерности (4,64,64) в итоговое изображение размерности (3, 512, 512).