Как запустить стабильную диффузию локально с графическим интерфейсом в Windows

Опубликовано: 2022-09-18

Заглавное изображение. Странный стервятник, милый серый кот и кибернетическая медуза.

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

Оглавление

Что такое стабильная диффузия?
Что вам нужно для запуска этой версии Stable Diffusion?
Как установить Stable Diffusion с графическим интерфейсом
Сначала установите Python
Установите Git и загрузите репозиторий GitHub
Скачать все контрольные точки
Как генерировать изображения с помощью стабильной диффузии с графическим интерфейсом
Как маскировать изображения, которые вы создаете, для Inpaint
Как исправить ошибку «CUDA Out Of Memory»

Что такое стабильная диффузия?

Stable Diffusion — это модель ИИ, которая может генерировать изображения из текстовых подсказок или изменять существующие изображения с помощью текстовой подсказки, как в MidJourney или DALL-E 2. Впервые она была выпущена в августе 2022 года компанией Stability.ai. Он понимает тысячи разных слов и может быть использован для создания практически любого образа, который может вообразить ваше воображение практически в любом стиле.

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

  • Его можно запустить локально на вашем ПК
  • Это проект с открытым исходным кодом
Стабильная диффузия позволяет создавать локальные изображения искусственного интеллекта на вашем ПК
СВЯЗАННЫЕ ПО ТЕМЕ: Stable Diffusion позволяет создавать локальные изображения с помощью искусственного интеллекта на вашем ПК

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

Что вам нужно для запуска этой версии Stable Diffusion?

Эта версия Stable Diffusion является ответвлением основного репозитория (репозитория), созданного и поддерживаемого Stability.ai. Он имеет графический пользовательский интерфейс (GUI), что делает его более простым в использовании, чем обычный Stable Diffusion, который имеет только интерфейс командной строки, и установщик, который автоматически выполняет большую часть настройки.

СВЯЗАННЫЕ С: Как запустить стабильную диффузию на вашем ПК для создания изображений AI

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

Этот форк также содержит различные оптимизации, которые должны позволить ему работать на ПК с меньшим объемом оперативной памяти, встроенное масштабирование и возможности лиц с использованием GFPGAN, ESRGAN, RealESRGAN и CodeFormer, а также маскирование. Маскирование — это огромное дело — оно позволяет вам выборочно применять генерацию изображения AI к определенным частям изображения, не искажая другие части, процесс, обычно называемый inpainting.

  • Не менее 10 гигабайт свободного места на жестком диске
  • Графический процессор NVIDIA с 6 ГБ ОЗУ (хотя вы можете заставить работать 4 ГБ)
  • ПК под управлением Windows 11, Windows 10, Windows 8.1 или Windows 8.
  • Репозиторий WebUI GitHub от AUTOMATIC1111
  • Python 3.10.6 (более новые версии и большинство старых версий тоже должны подойти)
  • Официальные контрольные точки Stable Diffusion (следите за контрольными точками версии 1.5 в конце сентября!)
  • Контрольные точки GFPGAN v1.3 (v1.4 тоже может работать)
  • Любые дополнительные модели ESRGAN, которые могут вам понадобиться. Вы можете использовать столько, сколько хотите.

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

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

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

Первое, что вам нужно сделать, это установить версию Python 3.10.6, рекомендованную автором репозитория. Перейдите по этой ссылке, прокрутите страницу вниз и нажмите «Установщик Windows (64-разрядная версия)».

Нажмите на исполняемый файл, который вы скачали, и следуйте подсказкам. Если у вас уже установлен Python (а вы наверняка его установили), просто нажмите «Обновить». В противном случае следуйте рекомендуемым подсказкам.

Примечание. Убедитесь, что вы добавили Python 3.10.6 в PATH, если у вас есть такая возможность.

Установите Git и загрузите репозиторий GitHub

Вам необходимо загрузить и установить Git в Windows, прежде чем можно будет запустить установщик Stable Diffusion. Просто загрузите 64-битный исполняемый файл Git, запустите его и используйте рекомендуемые настройки, если вы не имеете в виду что-то конкретное.

СВЯЗАННЫЕ С: Как установить Git в Windows

Далее вам нужно загрузить файлы из репозитория GitHub. Нажмите зеленую кнопку «Код», затем нажмите «Загрузить ZIP» в нижней части меню.

Откройте ZIP-файл в Проводнике или в предпочитаемой вами программе архивации файлов, а затем извлеките содержимое в любое место. Просто имейте в виду, что вам нужно будет перейти в эту папку, чтобы запустить Stable Diffusion. В этом примере они извлечены в каталог C:\, но это не обязательно.

Перетащите папку «stable-diffusion-webui-master» куда хотите.

Примечание. Убедитесь, что вы случайно не перетащили «stable-diffusion-webui-master» в другую папку, а не в пустое место — если вы это сделаете, он попадет в эту папку, а не в родительскую папку, которую вы планировали.

Скачать все контрольные точки

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

Примечание. Загрузка контрольных точек занимает несколько гигабайт. Не ждите, что это будет сделано мгновенно.

Скопируйте и вставьте «sd-v1-4.ckpt» в папку «stable-diffusion-webui-master» из предыдущего раздела, затем щелкните правой кнопкой мыши «sd-v1-4.ckpt» и нажмите «Переименовать». Введите «model.ckpt» в текстовое поле и нажмите Enter. Будьте очень уверены, что это «model.ckpt» — иначе это не сработает.

Примечание. Функция переименования — это значок в Windows 11.

Вам также необходимо загрузить контрольные точки GFPGAN. Автор репозитория, который мы используем, призвал к контрольным точкам GFPGAN v1.3, но вы можете использовать v1.4, если хотите попробовать. Прокрутите страницу вниз и нажмите «Модель версии 1.3».

Поместите этот файл «GFPGANv1.3.pth» в папку «stable-diffusion-webui-master», как вы сделали с файлом «sd-v1-4.ckpt», но не переименовывайте его. Папка «stable-diffusion-webui-master» теперь должна содержать следующие файлы:

Вот как должна выглядеть папка после того, как вы переименовали модель Stable Diffusion и добавили модель GFPGAN.

Вы также можете загрузить столько контрольных точек ESRGAN, сколько захотите. Обычно они поставляются в виде ZIP-файлов. После загрузки откройте ZIP-файл, а затем извлеките файл «.pth» в папку «ESRGAN». Вот пример:

Место для моделей ESRGAN.

Модели ESRGAN, как правило, предоставляют более конкретную функциональность, поэтому выберите пару, которая вам нравится.

Теперь вам просто нужно дважды щелкнуть файл «webui-user.bat», который находится в основной папке «stable-diffusion-webui-master». Появится консольное окно, в котором начнется загрузка всех других важных файлов, создание среды Python и настройка пользовательского веб-интерфейса. Это будет выглядеть так:

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

Клиент WebUI загружает и устанавливает все ресурсы.

Когда это будет сделано, консоль отобразит:

 Запуск по локальному URL-адресу: http://127.0.0.1:7860
Чтобы создать публичную ссылку, установите `share=True` в `launch()`

СВЯЗАННЫЕ С: Что такое IP-адрес 127.0.0.1 и как вы его используете?

Как генерировать изображения с помощью стабильной диффузии с графическим интерфейсом

Хорошо, вы установили вариант Stable Diffusion с веб-интерфейсом, и ваша консоль сообщила вам, что он «работает по локальному URL-адресу: http://127.0.0.1:7860».

Примечание: что именно это означает, что происходит? 127.0.0.1 — это адрес локального хоста — IP-адрес, который выдает себе ваш компьютер. Эта версия Stable Diffusion создает сервер на вашем локальном ПК, доступный через его собственный IP-адрес, но только если вы подключаетесь через правильный порт: 7860.

Откройте браузер, введите «127.0.0.1:7860» или «localhost:7860» в адресную строку и нажмите Enter. Вы увидите это на вкладке txt2img:

Первая страница клиента WebUI в Google Chrome.

Если вы уже использовали Stable Diffusion, эти настройки будут вам знакомы, но вот краткий обзор того, что означают наиболее важные опции:

  • Подсказка: описание того, что вы хотите создать.
  • Кнопка прокрутки: применяет случайный художественный стиль к вашей подсказке.
  • Шаги выборки: количество раз, когда изображение будет уточнено, прежде чем вы получите вывод. Как правило, чем больше, тем лучше, но есть убывающая отдача.
  • Метод выборки: основная математика, определяющая, как обрабатывается выборка. Вы можете использовать любой из них, но euler_a и PLMS кажутся наиболее популярными вариантами. Подробнее о PLMS можно прочитать в этой статье.
  • Восстановить лица: использует GFPGAN, чтобы попытаться исправить странные или искаженные лица.
  • Счетчик пакетов: количество изображений, которые необходимо сгенерировать.
  • Размер партии: количество «партий». Оставьте это значение равным 1, если у вас нет огромного количества видеопамяти.
  • Шкала CFG: Насколько тщательно Stable Diffusion будет следовать вашим подсказкам. Большие числа означают, что он следит за ним очень внимательно, тогда как меньшие числа дают больше творческой свободы.
  • Ширина: ширина изображения, которое вы хотите создать.
  • Высота: ширина изображения, которое вы хотите создать.
  • Начальное число : число, которое обеспечивает начальный ввод для генератора случайных чисел. Оставьте значение -1, чтобы случайным образом сгенерировать новое семя.

Давайте создадим пять изображений на основе подсказки: «горная корова в волшебном лесу, фотография на 35-мм пленку, резкость» и посмотрим, что мы получим, используя сэмплер PLMS, 50 шагов выборки и шкалу CFG, равную 5.

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

Окно вывода будет выглядеть так:

Вывод для подсказки о горных коровах. Пять горных коров, две черные и белые.

Примечание. Ваши изображения будут отличаться.

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

Очаровательная горная корова в лесу.

Выберите его и нажмите «Отправить в Inpaint».

Как маскировать изображения, которые вы создаете, для Inpaint

Inpainting - фантастическая функция. Обычно Stable Diffusion используется для создания целых изображений из подсказки, но inpainting позволяет вам выборочно генерировать (или регенерировать) части изображения. Здесь есть два критических варианта: inpaint замаскирован, inpaint не замаскирован.

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

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

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

Давайте возьмем, к примеру, нашу горную корову и наденем на нее поварской колпак. Замаскируйте область примерно в форме шляпы шеф-повара и убедитесь, что для параметра «Размер партии» установлено значение больше 1. Вероятно, вам понадобится несколько, чтобы получить идеальный результат.

Кроме того, вы должны выбрать «Скрытый шум», а не «Заполнение», «Оригинал» или «Ничего скрытого». Он имеет тенденцию давать наилучшие результаты, когда вы хотите создать совершенно новый объект в сцене.

Примечание: вы заметите, что левый край шляпы удалил часть его рога. Это произошло из-за того, что настройка «Размытие по маске» была слишком высокой. Если вы видите подобные вещи на своих изображениях, попробуйте уменьшить значение «Размытие по маске».
Горная корова в поварском колпаке.
Подсказка: шляпа шеф-повара. Настройки: Inpaint Masked, Latent Diffusion, CFG 9.5, уровень шумоподавления 0,75, шаги выборки = 50, метод выборки = Euler_A.

Ладно, может быть, поварской колпак — не лучший выбор для горной коровы. Ваша горная корова больше похожа на флюиды начала 20-го века, так что давайте подарим ей котелок.

Горная корова в котелке.
Подсказка: Настройки шляпы Bwel: Inpaint Masked, Latent Diffusion, CFG 9.5, уровень шумоподавления 0,75, Шаги выборки = 50, Метод выборки = Euler_A

Как позитивно щеголеватый.

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

Как исправить ошибку «CUDA Out Of Memory»

Чем больше изображение вы делаете, тем больше требуется видеопамяти. Первое, что вы должны попробовать, это создать изображения меньшего размера. Stable Diffusion дает хорошие, хотя и очень разные, изображения в разрешении 256×256.

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

Откройте «webui-user.bat» в Блокноте или любом другом текстовом редакторе. Просто щелкните правой кнопкой мыши «webui-user.bat», нажмите «Изменить» и выберите «Блокнот». Определите строку, которая читается set COMMANDLINE_ARGS= . Именно туда вы собираетесь поместить команды для оптимизации работы Stable Diffusion.

СВЯЗАННЫЕ С: Как написать пакетный скрипт в Windows

Если вы просто хотите делать огромные изображения или у вас не хватает оперативной памяти на графическом процессоре серии GTX 10XX, сначала попробуйте --opt-split-attention . Это будет выглядеть так:

Затем нажмите Файл > Сохранить. Кроме того, вы можете нажать Ctrl+S на клавиатуре.

Если вы по-прежнему получаете ошибки памяти, попробуйте добавить --medvram в список аргументов командной строки (COMMANDLINE_ARGS).

Вы можете добавить --always-batch-cond-uncond , чтобы попытаться исправить дополнительные проблемы с памятью, если предыдущие команды не помогли. Существует также альтернатива --medvram , которая может еще больше сократить использование VRAM, --lowvram , но мы не можем подтвердить, будет ли она работать на самом деле.

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