Как установить графическую нейросеть Stable Diffusion на Windows компьютер

О нас » Шпаргалка Сисадмина » НЕЙРОСЕТИ » Установка на Windows нейросети Stable Diffusion, настройка и запросы


  В соседней статье, я кратко коснулся просто понимания - что такое нейросети и что они умеют на текущий момент. Сейчас попробуем установить к себе на компьютер нейросеть Stable Diffusion - самый простой и быстрый способ "попасть в Ойти" (попасть в АйТи). Но прежде чем мы это сделаем, еще стоит вспомнить нейросети "text2video" - которые создают небольшой видеоролик. На текущий момент они находятся в состоянии рождения - либо это сервисы, которые дорабатывают стиль вашего видео, либо они генерят такое, чем пугают детей (ищем "Эмма Уотсон кушает суп").

 

Эмма Томпсон кушает суп


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

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

  Да и еще, пару слов о себе: мы - команда АйТи специалистов (ну, может это и громко сказано, но в Реестр нас включили), занимаемся всем тем, что приближено к АйтТи. Данный сайт - это наш второй сайт, не основной, где проекты заканчиваются 2013-м годом. На нем мы позволяем себе сохранять более фривольный стиль общения, т.к. корни сайта и нашей деятельности уходят далеко в 2001-й год, к моменту становления практически всего в этих ваших Инторнетах.

  На www.evek.ru мы продолжили дальше, сделав его основным, а этот ресурс оставили чисто под АйТи поддержку (обслуживание компьютеров, и т.д.) и некий информационный ресурс. Выполняем как небольшие проекты, так и крупные - масштаба города и страны. До всего этого выезжали и в другие страны, но сейчас - вот так вот =) Поэтому, если статья понравилась - делитесь ею в соцсетях, мир должен узнать про наступающее на горло будущее и уметь пользоваться современными ресурсами и инструментами.

 

stable diffusion эмма томпсон

 

  И еще раз вкратце про графические нейросети, если кто-то пропустил предыдущую Статью: Графическая нейросеть text2image (из текста в картинку) позволяет любому мамкиному дизайнеру прикоснуться к прекрасному. Другими словами - это очень удобный инструмент (пока еще местами сыроват, но динамика его развития просто поражает) для создания графики и фотографий. Результат, правда, получается совсем рандомный, но оно умеет делать фотографии на уровне именитых фотографов и дизайн на уровне хорошего специалиста. А, чтобы результат соответствовал ожиданиям - лучше всего немного знать английский язык и понимать - как в дизайне, так и в фотографии. И владеть описательными навыками (уметь писать PROMPT-запросы). Но об этом об этом ниже, и переходим, наконец, к сути:



Что такое Stable Diffusion?

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

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

 

портрет известного политика

 

  Чтобы ознакомиться с возможностями нейросети Stable Diffusion, можно воспользоваться этим сайтом https://beta.dreamstudio.ai/  . Вам доступно 200 бесплатных попыток после регистрации, регистрироваться можно повторно. 

  Свежая прям нейросеть от Яндекса (почти успели ребята влететь в хайп: Шедеврус. Ее плюс - работает как приложение к телефону.

 

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

 

Нейросеть  FusionBrain

  Еще один вариант от Сбера  - обученный на художниках, пока с неограниченным количеством попыток - https://fusionbrain.ai/diffusion

  Пример нейросети от SberAI, работающая на разных моделях и в первую очередь - на модели Kandinsky2.1. Показывает довольно качественный результат, слегка уступает Миду (Midjourney) на момент написания статьи. 

 

  Запросы пишутся примерно так же как и для всех других нейросетей, чем полнее запрос - тем лучше результат. Хорошо получаются запросы по художественным произведениям стиль {художник}. Вот пример запроса для Fusion Brain. "портрет демона-волка, красные сияющие глаза, смотрит на зрителя, стоит на фоне грозы, пугающий, страшный, ужасный, оборотень, высокое качество, фотография, много деталей, гиперреализм".

пример запроса для fusionbrain

 

Другие примеры можно создать самому, либо в различных сервисах по генерации запросов нейросетям. Их уже много, на текущий момент русскоязычных сервисов не найдено, но есть например Этот.

 

Системные требования Stable Diffusion

Для того, чтобы установить к себе графическую нейросеть Stable Diffusion нужен как минимум относительно мощный компьютер. Операционная система не важна, но в данном случае речь пойдет об ОС Windows. Желательно 10-й версии, но можно и 11-й, хотя я не встречал пока тех, кто об 11-й лестно отзывается. Далее - нужно установить Python. (да-да, здесь должна быть шутка про игры с Питоном, но ее не будет). Это та программа, которая позволит запускать на компьютере проекты, написанные на этом языке.

 

playing with python

 

  Далее скачиваем Git - это набор утилит, которые фиксируют изменения в файлах, позволяет совместно работать нескольким людям с проектом,  в нашем случае - нужен чтобы загрузить файлы Stable Diffusion напрямую из репозитория Github. Собственно, сам Stable Diffusion. Можно использовать официальную версию с сайта, а можно использовать крайне удачную сборку от проекта Automatic. Что мы и будем делать.


  Собственно - все, переходим к системным требованиям: Для стабильной работы понадобиться компьютер с оперативной памятью (о, неожиданность!). При этом, ее объем важен. Я использовал компьютер с 16Гб и она использовалась во время генерации по-максимуму.

  Жесткий диск, желательно SSD. Опять же, я проверял на HDD, но это такое себе развлечение в наше время. Объем данных будет не менее 30Гб в итоге. И самое важно - видеокарта. Минимальные рекомендуемые значения - 4Гб. Лучше 6Гб. Оптимально - от 16Гб. Криптовалютных майнеров подубавилось, поэтому они подешевели. Если же вам не очень повезло, и у вас 2-4Гб, то можно оптимизировать настройки (ниже я напишу), но генерация будет продвигаться крайне медленно, особенно на высоком уровне настроек.Есть разные версии Stable Diffusion, и по-умолчанию, она консольная (пишем руками команду, получаем результат). Но мир не без добрых людей, поэтому мы будем использовать версию нейросети с Web интерфейсом (WebUI).

От мощности компьютера сильно зависит скорость генерации и, возможно, качество создаваемой картинки (видеокарта).

Плохие новости для владельцев видеокарт AMD Radeon: ОЙ... поддержка нейросетей работает хорошо только на видеокартах от Nvidia. В этом случае можно пользоваться готовыми решениями, установить Stable Diffusion от Aitomatic111 в Google colab. 

Еще есть вариант для эксперементов - Stable Diffusion Portable. Но с ним я еще не игрался. Инструкции более простые, необходимо скачать модель (тоже Deliberate например), запуск через файл webui-user-first-run.cmd, далее все должно скачаться и установиться само.

 

Скачиваем и устанавливаем Python

  Разработчики STD при установке указали, что оптимальной версией для запуска Stable Diffusion является 3.10.6. Это не самая последняя версия, но работа на других версиях не гарантируется. Сразу скажу, что у меня была установлена младшая версия, и все запустилось. Но в процессе запуска STD постоянно ругается на несоответствие версий. Если у вас установлена другая версия - лучше ее удалить и установить рекомендуемую. Но, если вы - как и я - любитель веселья и развлечений - нет преград для патриотов. Пробуйте.


https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe

  Обращаю внимание, что устанавливаем версию 64-бит. Если Вы "счастливый" обладатель версии 32-бит - то увы и ах. Ну в теории работать то оно все будет, но..

  После того, как скачали - запускайте установщик. Можно все ставить по-умолчанию (Далее-Далее), можно выставить дополнительные параметры. Но крайне важно поставить галочку напротив "Add Python to PATH" на первом экране. Без этого ваша Windows не пропишет Python в системе, и вы не сможете с ним работать полноценно.

 

Скачиваем и устанавливаем Git

  Здесь все еще проще: переходим по ссылке, скачиваем и устанавливаем, нажав везде "Далее" https://git-scm.com/download/win

 

Скачиваем Stable Diffusion на Windows

  Прежде чем это сделать, в корне любого диска (желательно, чтобы это был SSD с объемом свободной памяти не менее 50Гб) создаем папку, куда мы поместим графическую нейросеть Stble Diffusion. Назовем ее, допустим "stable-diffusion". Можно как угодно, в принципе. Но лучше, если оно будет в корне диска. Ну и для альтернативно одаренных - использовать кириллицу в названии системных папок не рекомендуется, что бы вам не говорили. Пишем только латинскими буквами. 

  Далее, открываем Проводник, находим эту папку и жмем правой кнопкой мыши на ней, чтобы открылась дополнительное окошко, находим там строчку “Git Bash Here” (если у вас Windows 11, то сперва выбираем пункт “Показать дополнительные параметры”) и выбираем ее.

 

Git bash here

 

Откроется консоль, в которую копируем и вставляем следующую строчку: git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

  Далее - ждем. Сложно сказать сколько, на мощном компьютере это будет минут 5, на тормозном как у меня и со слабым каналом Интернет это заняло минут 30. Иногда будет казаться, что все зависло и ничего не происходит - не поддавайтесь искушению все закрыть как я, наберитесь терпения.Когда установка окончится, появится строчка: "running on local URL: http://127.0.0.1:7860/" Это, собственно - адрес веб-интерфейса.Все установилось, окно НЕ закрываем, все уже работает. Вторичный запуск произойдет значительно быстрее.

 

Установка Stable Diffusion

 

Теперь в вашей созданной папке stable-diffusion появилась папка с данными - "stable-diffusion-webui".
Закрываем консоль (на крестик нажимаем) и приступаем к дальнейшей настройке.

 

Проблемы при установке STD

  В принципе, если все было выполнено верно, проблем быть не должно. Пока из известных проблем есть прерывание с ошибкой в процессе установки. В большинстве случаев это вызвано некорректной версией Python. Если это так, то нужно установить корректную версию Python, удалив предыдущую и удалив из установленной программы папку "vnev".

 

Неправильная версия Python


Вторая по распространенности ошибка - не запускается Веб интерфейс. В этом случае нужно проверить правильность пути -  http://127.0.0.1:7860/ ( именно http://, а не https:// )

  На этом, почти все, но как быть, если у вас более слабая видеокарта?

 

Настроим параметры видеокарты

  В случае, если у вас слабая (менее 6Гб) видеокарта, Satble Diffusion может выдать ошибку "Out of memory". В этом случае стоит настроить параметры видеокарты. В ином случае эти настройки можно не трогать.
Необходимо зайти в папку /stable-diffusion/stable-diffusion-webui и открыть на редактирование файл webui-user (Изменить). проще говоря - открыть его с помощью обычного Блокнота. Там будет два таких файла, необходимо открывать Тип: Пакетный файл Windows. Находим там строчку: set COMMANDLINE_ARGS= 

 

редактирование stable diffusion

 

 

stable diffusion слабая видеокарта


  Если у вас видеокарта 2Гб и менее - дописываем в конфиг в этой строке следующий параметр: set COMMANDLINE_ARGS= --lowvram. Если видеокарта 4Гб и менее - дописываем  --medvram. Особенно часто проблемы встречаются у владельцев Nvidia 16xx. 

  Если у вас Nvidia 16xx старшей модели, можно прописать в эту строчку только --precision full --no-half. Если проблемы продолжаются, добавить туда --precision full --no-half --medvram

  Если Nvidia 16xx младшей модели, то можно добавить параметр --opt-split-attention.Если и это не помогло, дописываем  --lowvram --always-batch-cond-uncond --opt-split-attention. Не забудьте сохранить файл после редактирования. Важно – каждый параметр замедляет генерации. Если у вас карта 6-8Гб, то можно также играться с этими настройками для создания изображений большого разрешения.

Подробнее список настроек можно посмотреть здесь

 

Загружаем готовую графическую модель

  По-умолчанию, используется базовая графическая модель, с которой тоже можно работать, но придется заняться ее обучением (и это тема для отдельной статьи). Проще скачать уже готовую натренированную модель (хм.. натренированная модель звучит очень эротично) и использовать ее. 

 

  Модель отвечает за то, в каком стиле будет выглядеть ваше изображение. Модели имеют расширение ".ckpt" или ".safetensors". Забиваем в поиске браузера "модели для stable diffusion", и выбираем понравившийся ресурс. Например западный сайт https://civitai.com/ большой выбор моделей, на текущий момент в топе находится Deliberate, ее и будем использовать, т.к. выглядит красиво. https://civitai.com/models/4823/deliberate.

 

где скачать модели StableDiffusion

 

  Скачиваем файл по кнопке download и перемещаем его в папку /stable-diffusion/stable-diffusion-webui/models/Stable-diffusion
Можно скачать несколько разных моделей для разных нужд и использовать их потом через выбор в интерфейсе.

Запуск Stable Diffusion

  Все с установкой и настройкой.
Заходим в папку и запускаем файл /stable-diffusion/stable-diffusion-webui/webui-user  , просто нажав на него два раза левой кнопкой мыши, как обычный файл.

  Если все прошло успешно (ошибиться сложно, если честно), то открывается консоль и STD запускается.
Далее, в любимый браузер копируем и вставляем путь http://127.0.0.1:7860/  (http:// !!! не перепутайте ), и открывается окно с настройками программы.

Можно баловаться.

 

Интерфейс Stable Diffusion

 

интерфейс stable diffusion

 

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

  Stable Diffusion checkpoint - модель, которую мы используем  и которую загрузили. Напоминаю, можно загрузить несколько разных моделей под задачу и переключаться между ними.

  Далее идет вкладки:

 

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

  Далее, поле Prompt -  в котором мы пишем основной запрос. Это главное поле, с которым мы будем работать. О генерации и составлении запросов - ниже.

Затем, поле Negative Prompt - здесь мы указываем то, чтего НЕ должно быть на кртинке, например: в основном поле Prompt пишем: Paris street. Получаем картинку улиц Парижа.

 

улицы Парижа

 

Добавляем в поле Negative Prompt параметры-исключения, которые мы не хотим видеть - люди, машины (people, cars). Получаем картинку без людей и машин.

 

примеры запроса stable diffusionПарижские улицы

 

 

Sampling method выбирает методы генерации изображения. Их там over много, я с ними подробно не разбирался. RTFM, так сказать. Годными можно считать несколько - Euler, Euler a, DDIM и DPM++2M Karras.

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

Restore faces - улучшает качество портретов при генерации лиц. Требует загрузки дополнительного модуля (установленная галочка дополнительно подгружает нужные модули. Мне показалось, что без этого параметра результат получается не сильно хуже, чем с ним. И качество запроса играет гораздо большую роль, чем выставление дополнительных параметров.

Tiling - модуль, необходимый для создания паттернов. Генерирует повторяющиеся изображения. Вот, например картинка по тому же запросу "Paris street"

 

stable diffusion параметр tiling

 

 

Hires. fix - позволяет работать с генерациями формата high resolution, генерирует картинки более высокой четкости и фотографического качества. Потребляет сильно больше ресурсов, генерация занимает большее время, и включение данного параметра добавляет несколько дополнительных настроек.

изображение высокой четкости

 

  Далее - Width и Height - задает размер получаемого изображения. Если при всех настройках по-умолчанию это 512*512, то в максимальных настройках (при отключенных модулях hires и прочих) - 2048*2048. Этот параметр кардинально влияет на скорость, в максимальном варианте увеличивая ее примерно в 100 раз. Так, при моих параметрах железа (i7, 16RAM, 8Gb Nvidia) - в стандарте генерация занимает около минуты. А при максимальных настройках - более 2-х часов.

Параметр Batch count и Batch size - увеличивают количество картинок в генерации. Например, выставление параметра Batch count на 4 создает сразу 4 картинки.  

CFG Scale (the classifier-free guidance scale) это параметр точности выдачи. Чем больше значение, тем более картинка будет похожа на исходный запрос. Но и получившийся вариант будет более абстрактным. Вот, например, наши " улицы Парижа ", с CFG Scale выставленным в максимальное значение - 30:

CFG Scale example

 

  И, наконец, параметр Seed. Изначально он выставлен в -1 и генерирует изображения с уникальным ядром (seed). И у каждой картинки он уникальный свой. Сгенерировав картинку, можно скопировать уникальный seed и использовать его для генерации следующей картинки в похожем стиле. 

 

  На этом - все. Можно пробовать.

 

 

Генерация картинок вкратце


  Для того, чтобы сгенерировать картинку по-умолчанию, нужно заполнить текстовое поле "prompt" (по-умолчанию понимает только английский язык), и нажать кнопку "Generate". В зависимости от мощности компьютера, стандартная картинка по запросу создастся в среднем в  течении 40 секунд. Как правило, это будет что-то совершенно простое. Для получение более впечатляющих картинок, придется играться с настройками и учиться писать более подробные запросы (prompt).

 

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

  Чем проще запрос - тем хуже картинка. Чем длиннее запрос - тем качественнее изображение. Попробуйте вбить в Prompt разные запросы и увидите разный результат.

  Например: "cyborg dog" (кибер-собака) выдаст такую картинку:

 

stablediffusion cyborg dog



а  "cyborg dog with a visible detailed torso muscles cable wires biopunk cybernetic cyberpunk white marble bust nikon m50 100mm sharp focus hyperrealism highly detailed intricate details carved by donatello"
выдаст такую картинку:

 

собака-киборг



Почувствуйте разницу.

 

  Если у вас проблемы с английским, то можно забить в поиске и найти множество готовых запросов от других авторов, и экспериментировать с ними. Можно составить запрос на русском и перевести его через онлайн переводчик. Можно также воспользоваться сервисами по написанию запросов. Ссылок не будет, их множество и они постоянно меняются, запрос для поиска "stable diffusion prompt generator" или "генератор запросов для stable diffusion". 


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

 

робот читает книгу

 


  Некоторые пользователи считают, что графическая нейросеть Midjourney - это Apple Mac, а нейросеть Stable Diffusion - это Linux. Это так, потому что в случае с Midjourney вы платите деньги и получаете сногсшибательный результат. В случае же со Stable Diffusion - вы должны прочитать кучу мануалов, перелопатить тонну настроек, найти хорошие готовые модули, либо самостоятельно месяцами обучать нейросеть под свою задачу. Но в этом и цель - так как Midjourney ограничена как минимум западными правовыми рамками, а STD это инструмент тонкой настройки, где вы сам себе хозяин. 

 

  Следующая статья - как вывести графическую нейросеть Stable Diffusion в локальную сеть и Интернет.

 Следующая статья (готовится) - по интерфейсу Stable Diffusion. Как его настраивать, использовать. Также планируем мануалы по запросам (prompt), где расскажем как получить желаемый результат. И в планах - статьи по настройке своего внешнего сервера нейросети, а также - статьи по текстовым GPT сетям. Stay tuned.
 

Картинка отзыва
Отзыв о нашей работе от компании “Мерлион”
Картинка отзыва
Отзыв о нашей работе от компании “Промышленные вакуумные системы ”
Картинка отзыва
Отзыв о нашей работе от медицинского центра “ДеВита”
Картинка отзыва
Отзыв о нашей работе от коммерческого банка “Гагаринский”
Картинка отзыва
Отзыв о нашей работе от компании “РУСАЛ”
Картинка отзыва
Отзыв о нашей работе от компании “СИТИЛИНК”
Картинка отзыва
Отзыв о нашей работе от Министерства образования
Картинка отзыва
Отзыв о нашей работе от корпорации Ариэль
30-03-2023
Нейросети в 2023 года. Инструкции, примеры
24-09-2019
Теория и практика при создании беспроводных сетей Wi-Fi
19-04-2019
Безопасность компьютерной сети - разбираем подробно
26-01-2019
Статья о будущем обслуживания компьютеров. и настройке сервера в торговом центре. Москва. 2018
28-12-2014
27.12.2014. График работы в праздники.
23-01-2014
CES2014. Снова про выставку.
08-01-2014
Картинки с выставки CES 2014
17-12-2013
Монтаж компьютерной сети СКС. СИТИЛИНК. Волжский. 2013г.
17-12-2013
Все, что Вы хотели узнать о системах хранения данных, но боялись спросить.
12-09-2013
Organo Gold. Аутсорсинг и обслуживание компьютеров. Екатеринбург 2013г.
Наши клиенты
РЖД
Ситилинк
Девита
Мерлион
Русал
Пеликан Авто
Райт
Ариэль
Как добраться
ул.Автозаводская,23к14,Москва
+7 (495) 988-46-34
Блоги
Социальная сеть
Наши  Контакты Электронный век Москва 119021 ул. Автозаводская д.23, к.12