Поиск по сайту:

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


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

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

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

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

  • Его можно запустить локально на вашем ПК.
  • Это проект с открытым исходным кодом.

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

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

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

Этот форк также содержит различные оптимизации, которые должны позволить ему работать на ПК с меньшим объемом оперативной памяти, встроенное масштабирование и возможности лиц с использованием 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.4 
  • Любые дополнительные модели ESRGAN, которые могут вам понадобиться. Вы можете использовать столько, сколько хотите.

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

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

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

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

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

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

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

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

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

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

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

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

Вам также необходимо загрузить контрольные точки 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 и настройка пользовательского веб-интерфейса. Это будет выглядеть так:

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

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

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

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

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

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

  • Подсказка: описание того, что вы хотите создать.
  • Кнопка Painter’s Pallete.  Применяет к подсказке случайный художественный стиль.
  • Шаги выборки . Сколько раз изображение будет уточняться, прежде чем вы получите результат. Как правило, чем больше, тем лучше, но отдача уменьшается.
  • Метод выборки . Базовая математика, определяющая порядок обработки выборки. Вы можете использовать любой из них, но 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. Вероятно, вам понадобится несколько, чтобы получить идеальный результат.

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

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

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

Конечно, вы также можете сделать прямо противоположное с 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, но мы не можем подтвердить, будет ли она работать на самом деле. .

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