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

Оглавление

1. Что такое Stable Diffusion?

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

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

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

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

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

4. Как генерировать изображения с помощью Stable Diffusion с графическим интерфейсом

5. Как выделить область для Inpaint

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


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

Что такое Stable Diffusion?

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

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

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

Смотрите также:

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

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

Смотрите также: Как запустить Stable Diffusion на своём ПК для создания изображений AI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`

Смотрите также: Что такое IP-адрес 127.0.0.1 и как его использовать?

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

Хорошо, вы установили вариант 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:

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

  • Prompt (Запрос): описание того, что вы хотите создать.
  • Кнопка Painter’s Pallete: применяет случайный художественный стиль к вашей подсказке.
  • Sampling Steps: количество раз, когда изображение будет уточнено, прежде чем вы получите вывод. Как правило, чем больше, тем лучше, но есть убывающая отдача.
  • Sampling Method: основная математика, определяющая, как обрабатывается семпл. Вы можете использовать любой из них, но euler_a и PLMS кажутся наиболее популярными вариантами. Подробнее о PLMS можно прочитать в этой статье.
  • Restore Faces (Восстановить лица): использует GFPGAN, чтобы попытаться исправить странные или искажённые лица.
  • Batch Count: количество изображений, которые необходимо сгенерировать.
  • Batch Size: количество «потоков». Оставьте это значение равным 1, если у вас нет огромного количества видеопамяти.
  • CFG Scale: Насколько тщательно Stable Diffusion будет следовать вашим подсказкам. Большие числа означают, что он следит за ним очень внимательно, тогда как меньшие числа дают больше творческой свободы.
  • Width: ширина изображения, которое вы хотите создать.
  • Height: ширина изображения, которое вы хотите создать.
  • Seed: число, которое обеспечивает начальный ввод для генератора случайных чисел. Оставьте значение -1, чтобы случайным образом сгенерировать новое число.

Давайте создадим пять изображений на основе подсказки: «a highland cow in a magical forest, 35mm film photography, sharp» («горная корова в волшебном лесу, фотография на 35-мм плёнку, резкость») и посмотрим, что мы получим, используя PLMS sampler, 50 sampling steps и CFG scale равный 5.

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

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

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

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

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

Как выделить область для Inpaint

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

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

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

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

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

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

Примечание: вы заметите, что левый край шляпы удалил часть его рога. Это произошло из-за того, что настройка Mask Blur («Размытие по маске») была слишком высокой. Если вы видите подобные вещи на своих изображениях, попробуйте уменьшить значение «Mask Blur».

Запрос: Chef’s hat Settings: Inpaint Masked, Latent Diffusion, CFG 9.5, denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

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

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

Запрос: Bowel hat Settings: Inpaint Masked, Latent Diffusion, CFG 9.5, denoise strength 0.75, Sampling Steps = 50, Sampling Method = Euler_A

Перевод: котелок. Настройки: 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.

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

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

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

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

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


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo