Stable Diffusion занимает особое место в мире нейросетей. Ее авторы намеренно развивают свой проект открыто, чтобы его могло поддерживать сообщество энтузиастов. В итоге появились сотни модификаций нейросети, которые генерируют картинки в разных стилях.
Что такое Stable Diffusion
Stable Diffusion — это нейросеть от группы студии Stability.ai с открытым исходным кодом, которая позволяет генерировать изображения на основе текстового запроса, а также дорисовывать наброски и редактировать исходные картинки.
В основе Stable Diffusion лежит диффузионная модель, которая обучается поэтапно удалять лишнее из изображения-образца, и после нескольких итераций выдает результат. Диффузионные модели уже применяются для синтеза речи и трехмерной графики.
Stable Diffusion 3
Stable Diffusion выпустили в августе 2022 года, а в ноябре вышла улучшенная версия 2.0, которая предлагает картинки с разрешением 2048x2048 пикселей и больше. Она также адаптирована для создания цифрового арта. В апреле 2024 года появилась третья версия нейросети — Stable Diffusion 3. Согласно информации на сайте, SD3:
- генерирует фотореалистичные изображения «с исключительной детализацией, цветом и освещением»;
- понимает длинные и сложные запросы, композицию, действия персонажей и стили;
- пишет качественный текст, старается не допускать много ошибок в правописании и интервалах между ними;
- подходит для работы на стандартных потребительских графических процессорах без снижения производительности благодаря небольшому объему видеопамяти.
Как работает Stable Diffusion
Stable Diffusion включает в себя несколько моделей:
- кодировщик текста — это специальная языковая модель-трансформер — получает на входе текст и переводит его в набор чисел, которые описывают каждое слово;
- генератор изображений, который включает нейросеть UNet и алгоритм планирования. Он создает информацию об изображении;
- декодер. Он рисует картину на основе полученной информации.
Stable Diffusion может:
- генерировать картинки по текстовому описанию. При этом модель работает не с отдельными пикселями картинок, а с их сжатыми версиями, что экономит память на устройстве;
- рисовать в стилях разных художников, начиная с эпохи Возрождения и заканчивая современными творцами «в цифре». Сообщество разработчиков уже развивает отдельные вариации нейросети, отличающиеся по стилю, например, Van-Gogh-diffusion, которая «рисует» в стиле Ван Гога. Также появляются варианты модели, которые генерируют картинки в определенном стиле, например, мультфильмов Disney;
- заменять объекты на изображениях и дорисовывать фон. С помощью функции Inpainting нейросеть подменяет любой объект на тот, который сгенерирует сама. А функция Outpainting позволяет дорисовывать готовое изображение и генерировать фон вокруг него;
- дорисовывать скетчи. Stable Diffusion способна дополнить набросок деталями и фоном. Например, она пригодится, когда хочется превратить свои детские рисунки в произведения;
- создавать визуальные проекты. С помощью нейросети можно создавать покадровую анимацию и совмещать картинки в видеоролики;
- генерировать объекты и локации для видеоигр. Интеграция нейросети в игровой движок Unreal Engine с открытым кодом позволяет создавать внутриигровые предметы по описанию и помещать их в игровое пространство.
Отдельно разработчики развивают вариант Stable Diffusion под названием Riffusion для генерации музыки. Мелодии можно создавать как на основе предложенного шаблона, так и с помощью текстового описания.
Как пользоваться Stable Diffusion 3 в онлайне
Нейросетью можно воспользоваться онлайн. Для этого нужно:
- зайти на сайт;
- ввести запрос на английском языке;
- при желании выставить дополнительные настройки в разделе Advanced Settings;
- нажать Run;
- скачать изображение.
Генерация на сайте — бесплатная.
Как установить Stable Diffusion
Для загрузки Stable Diffusion нужен компьютер на операционной системе Windows или Linux с видеокартой, минимальный объем памяти которой составляет 4 или 8 Гб. Существуют два популярных установщика для этих ОС:
- CMDR2’s 1-Click Installer. Проект доступен на GitHub, его нужно скачать на диск C. В папке проекта требуется дважды кликнуть на Start Stable Diffusion UI.cmd. Установщик занимает 25 Гб на жестком диске. В CMDR2 можно выбрать количество сгенерированных изображений по запросу, количество шагов, размер и формат изображения, модификации изображения, а также модель Stable Diffusion. Нейросеть генерирует отдельные части изображения, исключает объекты и выполняет детализацию;
- NMKD GUI для Windows. Установщик нужно скачать с официального сайта разработчиков, затем требуется извлечь архив и запустить установочный файл, активировав все галочки. Программа занимает 11 Гб на жестком диске. NMKD поддерживает запрос через картинку-референс, обрабатывает несколько запросов одновременно, улучшает качество изображений, создает бесшовные изображения.
Разработчики также выпустили приложение Diffusion Bee на базе Stable Diffusion, которое работает на компьютере без подключения к интернету. Пока оно доступно только на Mac с чипами Apple Silicon. Для такого приложения нужен компьютер с видеокартой емкостью от 4 ГБ памяти.
Как написать запрос для Stable Diffusion
Чтобы картинка оправдала ожидания, нужно следовать нескольким правилам при составлении текстового запроса к Stable Diffusion:
- соблюдать порядок слов — наибольший вес получают самые первые;
- использовать основные категории, которые должны быть в запросе: предмет, характер изображения (цифровое фото, масляная живопись и т. д.), стиль (сюрреализм, конструктивизм), художник, веб-сайт, разрешение, дополнительные детали, цвет, стиль освещения;
- подробно описывать идею, чтобы она отличалась от других генераций. Однако запрос должен укладываться в 75 слов;
- использовать синонимы, чтобы нейросеть точнее воспроизвела атмосферу.
«Вес» каждого слова в описании можно выставить вручную после двоеточия. При этом общий вес должен равняться 100.
Также в Stable Diffusion можно использовать настройки (обычно выводятся сбоку от окна генерации):
- Steps — сколько шагов понадобится нейросети для генерации. По умолчанию это значение равно 50;
- Classifier Free Guidance — насколько свободна нейросеть в интерпретации запроса. Значение по умолчанию равно 7 — половину нейросеть придумает сама;
- Seed — старт для самостоятельной работы нейросети. По умолчанию стоит «случайный» параметр, чтобы она выводила разные результаты при одном запросе;
- Resolution — размер изображения. Чем он больше, тем дольше будет длиться генерация. Stable Diffusion обучена на картинках 512×512 и генерирует такие изображения лучше всего.
Продвинутые пользователи рекомендуют по умолчанию выставлять универсальную комбинацию: CFG — 8, Steps — 50, Sampler — k_lms, Random seed.
Для тех, кто хочет углубиться в особенности построения запросов и пользоваться специальными командами, доступны подробные гайды.
Также можно пользоваться бесплатными промптерами, которые помогают составить запрос, например, Public Prompts, PromptoMania, Stable Diffusion Modifier Studies, Lexica Art и другими.
Результаты работы в Stable Diffusion
Нейросеть отлично справляется с генерацией портретов, пейзажей и цифрового арта. Вот несколько удачных примеров ее работы: