Stable Diffusion — одна из самых продвинутых нейросетей для генерации изображений.

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

У этого есть и обратная сторона: не все устройства подходят под системные требования, а для использования полной версии Stable Diffusion нужны навыки программирования. Но энтузиасты уже разработали на базе сети сайты, приложения, боты и программы. Разобрались, чем интересна Stable Diffusion и как попробовать нейросеть, даже если не умеешь программировать.

🎨 Что можно делать в Stable Diffusion

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

Стандартные модели нейросетей вроде DALL-E 2 и Midjourney работают с отдельными пикселями, из-за этого создание картинки занимает много времени и вычислительных ресурсов. Stable Diffusion экономит время и мощности компьютера, потому что работает не с пикселями, а с их сжатыми версиями изображений.

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

Описание работы Stable Diffusion. Источник: paepper.com
Описание работы Stable Diffusion. Источник: paepper.com

Заимствовать стили реальных художников. Stable Diffusion знает стили всех художников — от времен ренессанса до современных авторов концепт-артов в видеоиграх. Можно генерировать картинку одновременно в стиле Ван Гога и NFT-артиста Beeple.

Правда, из этого возникает проблема: нейросеть обучали на множестве артов, не спросив разрешения у авторов. Это касается как известных художников, так и любительских работ с сайтов Pinterest и DeviantArt, которые обнаружили при анализе набора данных. Даже появился сайт Have I Been Trained, в котором можно узнать, использовались ли ваши работы для обучения Stable Diffusion или Midjourney.

Например, пользователи Stable Diffusion чаще всего генерировали картинки в стиле польского художника Грега Рутковски, создателя фэнтези-артов для видеоигр. Его имя использовалось в запросах более 93 тысяч раз. Если попытаться поискать работы Рутковски, чаще появляются сгенерированные картинки в его стиле, а не оригиналы.

Работа Грега Рутковски. Источник: technologyreview.com
Работа Грега Рутковски. Источник: technologyreview.com
Картинка, сгенерированная Stable Diffusion в стиле Грега Рутковски. Источник: technologyreview.com
Картинка, сгенерированная Stable Diffusion в стиле Грега Рутковски. Источник: technologyreview.com

Создавать ассеты для игр. Пользователи сети смогли интегрировать нейросеть в игровой движок Unreal Engine. Это позволяет генерировать внутриигровые предметы по описанию и сразу же помещать их в игровое пространство.

Следующий уровень такой интеграции — это генерация локации в виртуальной реальности в реальном времени с помощью Stable Diffusion и других нейросетей одновременно.

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

Например, в сети завирусился ролик об эволюции всего живого на Земле от бельгийского блогера Ксандера Стенбрюгге. Он разработал сюжет видео и задал Stable Diffusion 36 запросов. Нейросеть сгенерировала несколько изображений по каждому из них, а затем автор совместил их в трехминутный ролик.

Заменять объекты и дорисовывать фон. У Stable Diffusion есть функции Inpainting и Outpainting, которыми не могут похвастаться другие нейросети. С помощью Inpainting можно заменить любой объект на изображении на сгенерированный нейросетью — например, поменять кота на собаку.

Функция Outpainting позволяет бесконечно дорисовывать готовое изображение и генерировать фон вокруг готовой картинки. Например, пользователь Reddit дорисовал платье героине картины «Девушка с жемчужной сережкой».

Использование функции Outpainting Источник: reddit.com
Использование функции Outpainting Источник: reddit.com

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

Есть более сложный сценарий — отрисовывать отдельные детали изображения с помощью нейросети, а потом соединять их с помощью инструментов «Фотошопа». Для удобства Stable Diffusion уже интегрировали в программу.

Создание картинки с помощью плагина Stable Diffusion в «Фотошопе». Источник: reddit.com
Создание картинки с помощью плагина Stable Diffusion в «Фотошопе». Источник: reddit.com

👨‍🎨 Как самому попробовать Stable Diffusion

Разработчики Stable Diffusion придерживаются принципов открытости: исходный код нейросети опубликован на «Гитхабе». При этом не обязательно уметь программировать, чтобы его запустить. Огромное сообщество энтузиастов придумало более простые способы.

Есть три основных способа пользоваться Stable Diffusion, вот они.

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

Через программу с графическим интерфейсом. Гораздо меньше ограничений, результаты выходят намного качественнее. Все еще не нужно писать код самому. Минусы: нужно обладать компьютером, который подходит под системные требования.

Через консоль с введением кода. Плюсы: полностью бесплатный доступ ко всем возможностям Stable Diffusion, максимальное качество и разнообразие. Минусы: не подойдет новичкам без навыков программирования, сохраняются требования к мощности ПК.

Подробно расскажу про первые два способа, а для тех, кто владеет навыками программирования, упомяну и третий.

📱 Как генерировать в Stable Diffusion через сайт или приложение

Dream Studio. Официальная облегченная версия Stable Diffusion. Бесплатно можно сгенерировать до 200 изображений. С платной подпиской за 10 £⁣ (702 Р) — до 1000. Для генерации требуется зарегистрироваться на сайте или войти через «Гугл» или «Дискорд».

После регистрации появляется окно, в котором генерируется изображение. Внизу нужно ввести запрос. Слева можно выбрать размер картинки и насколько сильно она должна соответствовать запросу. Максимальное количество шагов генерации — 150. Это означает, что столько шагов сделает нейросеть, пока будет генерировать изображение. За раз можно сгенерировать до девяти изображений. Доступна генерация не только по текстовому запросу, но и по изображению.

Интерфейс Dream Studio. Источник: beta.dreamstudio.ai
Интерфейс Dream Studio. Источник: beta.dreamstudio.ai

Visualise Studio. Три картинки можно сделать без регистрации. После этого требуется авторизация через «Гугл». Сайт позволяет генерировать изображения формата 512 × 512 бесплатно, но есть ограничения.

Чтобы увеличить количество шагов генерации и изменить размер изображения, нужно платить токенами. Бесплатно дают десять токенов. После этого их нужно покупать: 50 токенов стоят 0,99 $⁣ (62 Р). Площадка также заточена под то, чтобы делиться результатами с другими пользователями.

Интерфейс Visualise Studio. Источник: visualise.ai
Интерфейс Visualise Studio. Источник: visualise.ai

Mage.Space. Самый простой в использовании — переходите на сайт и сразу вводите запрос без регистрации. Бесплатный и безлимитный. Ограничение в 25 или 50 шагов генерации. После регистрации сгенерированные картинки сохраняются в галерею. Есть продвинутый режим с дополнительными настройками.

Avyn. Одновременно и генератор, и галерея пользовательских картинок. Бесплатный и безлимитный. Нет цензурных фильтров. Требуется регистрация. Нельзя выставить никакие настройки, даже размер картинки. После генерации можно изменять части изображения через новый текстовый запрос. Сгенерированная картинка автоматически публикуется на сайте. Есть поиск по созданным в Stable Diffusion картинкам.

PlaygroundAi. Практически соцсеть — можно подписываться на других пользователей и смотреть их сгенерированные картинки в своей ленте. Бесплатный и безлимитный. Нет цензуры. Требуется авторизация через «Гугл». Максимальное число шагов генерации — 150. Можно выбрать размер изображения, добавить фильтр и сгенерировать четыре картинки сразу. Доступна генерация не только по текстовому запросу, но и по изображению.

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

Stable Diffusion Generator. Бесплатный телеграм-бот с неограниченным числом генераций, который поддерживает русский язык. Максимальное число шагов генерации — 100. Доступно несколько стилизаций и сэмплеров. Есть генерация по изображению — достаточно отправить картинку в чат.

Draw Things. Бесплатное приложение для iOS. Оно использует ресурсы телефона для генерации, поэтому время создания зависит от мощности вашего устройства. После установки скачивает дополнительные файлы, включая саму модель Stable Diffusion.

По умолчанию генерирует картинки размером 384 × 384. Если увеличить размер, приложение предупреждает, что, возможно, ресурсов телефона не хватит. В приложении есть базовый редактор — можно вручную дорисовывать картинку.

Картинка на iPhone 13 генерировалась примерно пять минут
Картинка на iPhone 13 генерировалась примерно пять минут

👩‍💻 Как скачать программу со Stable Diffusion на ПК

Чтобы программа заработала, вам потребуется компьютер на Windows или Linux с видеокартой с объемом памяти 4 или 8 Гб. Это минимальные требования — чем мощнее ресурсы, тем быстрее будут генерироваться изображения. Если у вас MacOS, потребуется версия системы не старше 12.3, а у устройства должен быть процессор М1 или М2.

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

CMDR2’s 1-Click Installer. Самый простой способ установить Stable Diffusion на Windows и Linux. Достаточно скачать папку с «Гитхаба» и переместить ее на диск, чтобы путь к ней был таким: C:\stable-diffusion-ui. Затем два раза кликнуть на Start Stable Diffusion UI.cmd. Занимает 25 Гб на жестком диске.

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

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

Интерфейс CM2RD. Источник: github.com
Интерфейс CM2RD. Источник: github.com

Diffusion Bee. Самый простой способ загрузить программу на MacOS. Достаточно скачать установочный файл и запустить программу. Практически не занимает места на жестком диске — всего 274 Мб.

У программы чистый и понятный интерфейс — можно сразу ввести запрос и получить результат. Есть пять разделов: для текстовых запросов, запросов по картинкам, генерации внутри картинки, генерации фона вокруг картинки, с историей запросов. Diffusion Bee может увеличить качество изображения. Есть фильтры на NSFW и остальной контент, запрещенный лицензией Stable Diffusion.

Интерфейс Diffusion Bee. Источник: github.com
Интерфейс Diffusion Bee. Источник: github.com

NMKD GUI. Еще один популярный вариант для Windows. При скачивании с официального сайта разработчики предложат заплатить любую сумму, но для отказа достаточно выбрать опцию No, thanks, just take me to the downloads. Затем нужно извлечь архив и запустить установочный файл. В установщике активируйте все галочки. Программа занимает 11 Гб на жестком диске.

NMKD поддерживает запрос через картинку-референс, обрабатывает несколько запросов одновременно, улучшает качество изображений, восстанавливает некорректно сгенерированные лица. Есть возможность создавать бесшовные изображения — полезно для текстур в видеоиграх. В программе множество настроек — подробный гайд есть на «Гитхабе» проекта.

Интерфейс NMKD. Источник: nmkd.itch.io
Интерфейс NMKD. Источник: nmkd.itch.io

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

Чтобы запустить код, нужны знания языка программирования Python, инструмент Git и программа с библиотеками для Python Miniconda3. Подробно процесс установки Stable Diffusion на русском языке описали пользователи «Пикабу».

Есть чуть более простой способ, чем пользоваться Stable Diffusion через консоль: установить форк «не из коробки». Тут все еще понадобится навык программирования. Форки сложнее в установке, чем приложения, которые устанавливаются в один клик. Они требуют больше времени для привыкания, но предоставляют больше возможностей. Такие форки примечательны частыми обновлениями, огромным количеством настроек и браузерным интерфейсом. Выбрали несколько популярных.

Automatic1111 Webgui — форк для Windows и MacOS. Для генерации картинки доступно более 30 настроек. Улучшает качество лиц, создает текстуры, смешивает изображения, запускает последовательность действий с разными настройками, поддерживает негативные запросы. Можно загрузить сгенерированную картинку, чтобы Stable Diffusion выдал запрос, по которому ее создавали. Гайд по установке доступен на английском языке на «Гитхабе».

Invoke AI — форк для Windows, MacOS и Linux. Поддерживает негативные запросы, Имеет упрощенный API для генерации текстовых запросов. Гайд по установке доступен на английском языке на «Гитхабе».

Onnyx Diffusers UI — форк для Windows с видеокартами AMD. Гайд по установке доступен на английском языке на «Гитхабе».

Плагины. Пользователи «Гитхаба» разработали плагины для «Дискорда», «Фотошопа», Blender, Gimp и Krita, которые добавляют возможности Stable Diffusion к соответствующим программам.

🙊 Как составить запрос в Stable Diffusion

Если вы уже пробовали Midjourney, можно применить те же умения составлять промпты к Stable Diffusion — мы подробно описывали, как это сделать. Только здесь нет команд с двумя тире вроде «--beta» и «--s», а также нельзя отделять части запроса двоеточиями «::» — тут используется запятая.

Что означают настройки в генераторах Stable Diffusion

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

Classifier Free Guidance — этот параметр означает, насколько вольно нейросеть может интерпретировать запрос. По умолчанию ставится 7 — это означает, что ИИ половину додумает сам. При параметре меньше 6 нейросеть возьмет дело в свои руки. При параметре 16 ИИ полностью учтет ваш запрос без своих добавлений.

Если вы уверены в своем запросе, ставьте высокое значение. А если не уверены, то лучше дать Stable Diffusion свободу.

Seed — стартовая точка, из которой нейросеть затем формирует изображение. По умолчанию стоит «случайный» параметр — это помогает достигать разных результатов при одном и том же запросе. А если вы используете конкретное номерное значение сида, то потом даже при смене запроса композиция картинки останется схожей. Всего сидов около 16 миллиардов.

Resolution — размер изображения. Чем больше, тем дольше будет длиться генерация. Stable Diffusion обучен на картинках 512 × 512, поэтому генерирует изображения такого разрешения лучше всего.

Sampler — процессы, влияющие на результат генерации. С одними картинки можно генерировать за 8 шагов, другие требуют 50—80 шагов. Принцип работы сэмплеров на сгенерированных картинках можно посмотреть здесь.

Если вам не хочется вникать в настройки, пользователь Reddit рекомендует универсальную комбинацию: CFG — 8, Steps — 50, Sampler — k_lms, Random seed.

Несколько советов для составления запроса.

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

Такой кот получится в Dream Studio. Источник: beta.dreamstudio.ai
Такой кот получится в Dream Studio. Источник: beta.dreamstudio.ai

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

Распределите «вес». «Вес» каждого элемента запроса можно указать вручную после двоеточия. Общий вес должен равняться 100. Например, по запросу «пес:50, кот:50» сгенерируется наполовину пес, наполовину кот.

Котопес не получился, но действительно наполовину кот, наполовину пес. Источник: beta.dreamstudio.ai
Котопес не получился, но действительно наполовину кот, наполовину пес. Источник: beta.dreamstudio.ai
Запрос «полупес, полукот» сработал лучше. Источник: beta.dreamstudio.ai
Запрос «полупес, полукот» сработал лучше. Источник: beta.dreamstudio.ai

Будьте многословны. Чем подробнее вы опишете свой запрос, тем лучше будет результат. Арты, неотличимые от созданных людьми, часто имеют около пяти-семи строк текста в запросе. Например, если хотите высокой детализации, добавляйте «highly intricate, ultra-detailed, 4k» и имена художников, рисующих в похожих стилях. Можно прописывать в запросе все сразу. Запрос должен укладываться в 75 слов.

Используйте синонимы. Не бойтесь повторяться в запросах — так нейросеть попытается понять, к чему вы больше всего стремитесь. Например, если вы хотите передать мрачное настроение, то одновременно используйте слова «темно», «мрачно», «плохо освещено», «страшно», «хоррор».

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

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

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

Что в итоге

  1. Stable Diffusion — мощная нейросеть, возможности которой сравнимы с Midjourney и DALL-E 2. В отличие от конкурентов, это бесплатный проект с открытым исходным кодом, поэтому возможностями алгоритма может пользоваться любой и даже разворачивать его на своем ПК.
  2. Для полноценной версии Stable Diffusion нужны навыки программирования. Но уже есть сервисы на базе нейросети: они гораздо проще в освоении, но и не такие мощные.
  3. Можно генерировать картинки на сайте и в приложениях, но мы советуем программы для Windows и MacOS — они на порядок мощнее, но есть системные требования к устройствам.
  4. Составление текстового запроса в Stable Diffusion работает по тому же принципу, что и в других нейросетях: указываете объект, затем стилистику и дополнительные параметры. Не можете придумать сами — пользуйтесь специализированными сервисами.

Мы постим кружочки, красивые карточки и новости о технологиях и поп-культуре в нашем телеграм-канале. Подписывайтесь, там классно: @t_technocult.