Установка и использование Stable Diffusion для генерации изображений

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

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

Установка Stable Diffusion

Нейросеть Stable Diffusion отличается от таких аналогов как DALL-E 2 или Midjourney открытым исходным кодом: то есть, при наличии соответствующего оборудования, вы можете совершенно бесплатно установить необходимое ПО на свой компьютер и использовать для создания изображений по текстовому запросу (в обсуждениях часто используют кальку с английского «промпт»).

Нейросеть Stable Diffusion для генерации изображений

Официальное ПО Stable Diffusion не имеет удобного графического интерфейса, за исключением доступного на официальном сайте https://beta.dreamstudio.ai/, с которого и рекомендую начать эксперименты и посмотреть, нужно ли вам это: после регистрации у вас будет 200 бесплатных генераций с параметрами по умолчанию (регистрироваться можно и больше раз с разными адресами электронной почты).

При установке официального софта на компьютере все действия придётся выполнять в командной строке. Кроме того, вы мало что сможете сгенерировать с видеокартой, имеющей 6 Гб памяти или менее.

Однако, благодаря открытому исходному коду, почти сразу после релиза Stable Diffusion появились альтернативные варианты ПО («форки»), оптимизирующие запуск на более слабом оборудовании (4 Гб VRAM, есть даже варианты, работающие на CPU, но очень медленно), предоставляющие удобный доступ к настройкам и упрощающие использование нейросети.

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

Установка Stable Diffusion WebUI от Automatic

Сначала о том, что нам потребуется: достаточно мощный компьютер или ноутбук, видеокарта NVIDIA GeForce, не менее 4 Гб видеопамяти. Все устанавливаемые компоненты займут около 10 Гб на жестком диске или SSD. Если всё это в наличии, можно приступать:

  1. Установите Python 3.10.6 (разработчик указывает именно эту версию) с официального сайта https://www.python.org/downloads/windows/. При установке отметьте пункт «Добавить Python в переменную PATH».
  2. Установите Git с официального сайта https://git-scm.com/download/win. Если вам не ясны параметры при установке, их можно оставить в рекомендуемых по умолчанию значениях.
  3. Зайдите на страницу Automatic1111 на GitHub https://github.com/AUTOMATIC1111/stable-diffusion-webui, нажмите по стрелке справа от кнопки «Code» вверху справа и загрузите ZIP-архив со Stable Diffusion WebUI. Распакуйте в удобное расположение, но так, чтобы путь не содержал пробелов или кириллических символов (это может вызвать проблемы).
  4. Скачайте обученную модель Stable Diffusion последней версии с официального источника https://huggingface.co/CompVis/stable-diffusion-v-1-4-original (потребуется регистрация) или из этого хранилища.
  5. Переименуйте скачанный файл в model.ckpt и переместите его в папку, куда были распакованы файлы на 3-м шаге (в ту же папку, где находится файл webui.bat).
  6. Запустите файл webui-user.bat (не от имени администратора, простой запуск двойным кликом) и дождитесь, когда скрипт автоматически скачает и установит недостающие компоненты. Учитывайте: строка прогресса не отображается, поэтому при загрузке объемных компонентов (Torch и CUDA) может показаться, что процесс завис.
  7. По завершении установки вы увидите сообщение
    Running on local URL: http://127.0.0.1:7860/
    перейдите по указанному адресу (не закрывайте окно консоли, это прервет работу Stable Diffusion WebUI) в любом браузере и начните использование.
  8. Если ваша видеокарта имеет 6 Гб видеопамяти или меньше, при попытке сгенерировать изображение даже в выставленном по умолчанию расширении 512×512 вы можете получить сообщение о недостатке VRAM (видеопамяти). В этом случае, закройте окно консоли (или прервите выполнение, нажав Ctrl+C в окне консоли), откройте файл webui-user.bat с помощью текстового редактора и измените строку с параметрами запуска на
    set COMMANDLINE_ARGS=--medvram
    Затем снова запустите веб-интерфейс файлом webui-user.bat
  9. Дополнительные возможности настройки Stable Diffusion WebUI и параметры запуска можно найти на официальной странице разработчика.

Установка официальной версии Stable Diffusion

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

  1. Скачайте и установите Git https://git-scm.com/download/win используйте рекомендуемые параметры (оставьте возможность использования Git в командной строке и сторонних программах).
  2. Установите Miniconda3 с официального сайта https://docs.conda.io/en/latest/miniconda.html, при установке выберите опцию «Установить для всех пользователей).
  3. Скачайте архив Stable Diffusion с официального источника https://github.com/CompVis/stable-diffusion (нажать по кнопке «Code», затем выбрать пункт «Download ZIP»).
  4. Скачайте модель Stable Diffusion последней версии с https://huggingface.co/CompVis/stable-diffusion-v-1-4-original (потребуется регистрация) или: из этого хранилища (без регистрации), переименуйте файл в model.ckpt
  5. Запустите консоль Miniconda3 (Anaconda Prompt), для этого можно использовать поиск в панели задач Windows 11 и Windows
  6. В открывшейся консоли используйте команды для создания папки (в нашем варианте — на диске C) для файлов Stable Diffusion
    cd C:/
    mkdir stable-diffusion
    cd stable-diffusion
    Не закрывайте окно консоли.
  7. Откройте скачанный на 3-м шаге архив и скопируйте папку stable-diffusion-main (саму папку, а не файлы в ней) в C:\stable-diffusion\
  8. По порядку используйте следующие команды в консоли Miniconda3
    cd C:\stable-diffusion\stable-diffusion-main
    conda env create -f environment.yaml
    conda activate ldm
    mkdir models\ldm\stable-diffusion-v1
    Процесс займет продолжительное время, так как из сети будут скачиваться дополнительные компоненты.
  9. Переместите файл model.ckpt в папку C:\stable-diffusion\stable-diffusion-main\models\ldm\stable-diffusion-v1
  10. Готово. Теперь мы можем запустить Stable Diffusion, введя команду
    conda activate ldm
    В дальнейшем запуск будет всегда производиться именно с помощью этой команды.
  11. Генерация изображений выполняется здесь же в консоли с помощью передачи параметров. Например, вы можете ввести python
    scripts/txt2img.py --prompt "concept robot, colorful, cinematic" --plms --n_iter 5 --n_samples 1
    Команда создаст набор из 5 изображений с разрешением 512×512 по запросу «concept robot, colorful, cinematic», которые будут помещены в папку
    C:\stable-diffusion\stable-diffusion-main\outputs\txt2img-samples\samples
    Первое изображение Stable Diffusion

Чтобы увидеть информацию по доступным параметрам командной строки используйте команду

python scripts/txt2img.py --help

Использование Stable Diffusion WebUI

После запуска webui-user.bat и перехода в браузере на адрес 127.0.0.1:7860 перед вами будет веб-интерфейс, доступный локально на вашем компьютере (для работы Интернет не требуется), первая вкладка которого — txt2img, где и происходит всё самое интересное. Экспериментировать можно начать сразу же: просто введите текст на английском в поле сверху и нажмите кнопку «Generate», чтобы получить готовую картинку с параметрами по умолчанию (на скриншоте они уже изменены).

Главная страница Stable Diffusion WebUI

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

  • Sampling Method — алгоритм создания изображения. Влияет на результат, скорость, требуемую видеопамять.
  • Sampling Steps — количество шагов, в течение которых нейросеть «приводит» результат к желаемому. Влияет на время генерации. Больше — не всегда лучше: нужный результат может получиться за 30-50 шагов, а дальнейшая работа может не добавить деталей, а исказить результат (но бывает и иначе). Если то, что получилось, вам понравилось, можно использовать тот же Seed для генерации изображения по этому же запросу, но с другим количеством шагов и оценить результат.
  • Batch count — количество наборов создаваемых изображений.
  • Batch size — количество изображений в наборе (влияет на требуемую память).
  • CGF Scale — «свобода» обработчика изображения, влияет на то, насколько точно результат будет соответствовать описанию. При более низких значениях получаем большее разнообразие.
  • Height и Width — ширина и высота изображения, очень сильно влияет на требования к памяти.
  • Seed — «зерно». По умолчанию равно -1, при этом значении оно будет задано случайно при каждом очередном нажатии кнопки «Generate». Если с определенным Seed вы получили интересный результат, можете скопировать его в это поле, чтобы продолжить эксперименты над понравившимся изображением, изменяя параметры.

По умолчанию изображения сохраняются во вложенных папках в папке outputs в расположении, куда вы установили Stable Diffusion WebUI, но при желании автоматическое сохранение можно отключить на вкладке «Settings», здесь же можно настроить и другие параметры.

Настройки Stable Diffusion WebUI

Вкладка img2img позволяет модифицировать имеющееся изображение в соответствии с текстовым описанием.

Stable Diffusion WebUI img2img

На вкладке Extras собраны дополнительные инструменты. Основное — увеличение разрешения изображения с использованием нейросети.

Extras в Stable Diffusion WebUI

Значения параметров в большинстве своем вам придётся подбирать самостоятельно, отслеживая результат. Но даже при одних и тех же значениях он может сильно отличаться и прежде всего зависит от заданного запроса, прописанных в нем требований к изображению и стилей. Это может быть простой рисунок в стиле плаката:

Простой стилизованный рисунок в Stable Diffusion

А может быть и почти фотография:

Фотореалистичное изображение в Stable Diffusion

Легко создать таких роботов:

Простое изображение в Stable Diffusion

И посложнее — таких:

Усложненное изображение в Stable Diffusion

Не забывайте проявлять фантазию, нарисовать можно многое, главное уметь это описать:

Изображение, созданное в Stable Diffusion

Вспоминайте названия кинематографических эффектов, свойств материалов и описания форм:

Материалы и формы в Stable Diffusion

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

Комментарии (51) к Установка и использование Stable Diffusion для генерации изображений

  • Alex

    Антивир 360 алармирует, что webui-user это программа вымогатель.

    Ответить

    • Dmitry

      Странно… там так то нечему вроде это сделать — открытый код python, права администратора не нужны, официальные дистрибутивы ставятся в процессе, репутация хорошая.

      Ответить

      • Alex

        Да, сложноватый способ для программы вымогателя. Скорее всего ложное срабатывание. Так, для информации. В варианте установки с Stable Diffusion WebUI такое получил.

        Ответить

    • nataXa

      360TS или Norton360? Впрочем паранойей больны оба продукта. Ставьте в исключения и не переживайте.

      Ответить

    • Артём

      подскажите. может я чтото не так делаю…. у меня черные картинки за место готовых изображений. что я делаю не так?(((

      Ответить

      • Mark

        Нужно открыть webui-user.bat через блокнот, и в 6-ой строке set COMMANDLINE_ARGS= должно быть написано set COMMANDLINE_ARGS=—lowvram —precision full —no-half

        Попробуйте, мне помогло.

        Ответить

  • Антон

    На пункте 6. Запустите файл webui-user.bat — я запускаю, но выдаёт ошибку. Питон скачивал версии «python-3.10.6-amd64». Ставил галочку на добавлении в PATH. После инсталляции делал перезагрузку. Вот сообщение об ошибке….

    Couldn’t launch python

    exit code: 9009

    stderr:
    Python
    Launch unsuccessful. Exiting.

    Ответить

    • Dmitry

      А нет ли в путях пробелов и кириллицы? В частности, в пути к папке с файлами, куда положили сборку от automatic?

      Ответить

    • Viktor

      Установи питон для всех пользователей

      Ответить

    • Вентос

      Скачай последний Питон с Microsoft Store. Заработает.

      Ответить

  • Maksim

    Вроде всё установилось, но на любые запросы он генерирует просто черные квадраты, без намёка на картинку. Что это может быть?

    Ответить

    • Dmitry

      С таким не сталкивался сам и не читал, чтобы у кого-то такая проблема была. Знаю, что на низких разрешениях он может билиберду делать (цветные пятна), но чтобы просто черный квадрат — не знаю.
      Попробуйте в телеграме в группе «Генерируем в Midjourney, Stable Diffusion» спросить, может там есть ответ.

      Ответить

    • Alex

      У меня зеленые квадраты ) думаю из-за 6ГБ видиопамяти

      Ответить

      • Dmitry

        У меня тоже 6 и вроде работает исправно всё

        Ответить

    • ответчик

      У меня на оф стейбле без интерфейсов были зелёные квадраты, а чёрные у кого-то другого были читал. Скачал Gui интерфейс, там всё ок на gtx 1650 ti 4GB, правда в том интерфейсе от силы есть только text2img и какой то костыль, который с натяжкой можно считать img2img

      Ответить

  • AlexRW

    Спасибо за инструкцию, всё работает. Но это достаточно ресурсоемкий процесс, у меня RTX 2070 полностью 8 гигов видеопамяти забивает, и я бы не сказал, что быстро при этом генерирует изображения.
    На выходе получаются иногда красивые картинки, но в основном легкие галлюцинации :)

    Ответить

  • Андрей

    Не могу разобраться, нет вообще ползунков Height и Width — видеопамяти 12 гб

    Ответить

  • Влад

    Подскажите. Все установил вроде правильно, запускаю батник webui-user.bat, пишет «нажмите любую клавишу», нажимаю и окно закрывается. Так должно быть?

    Ответить

    • Dmitry

      Ну вообще-то нет, там именно то сообщение о котором я говорил должно быть, что мол Running on….
      А вот в чем причина в вашем случае — даже не знаю.

      Ответить

      • Юля

        У меня тоже пишет «нажмите любую клавишу», и вот такой текст выше

        exit code: 1
        stderr:
        C:\Users\AppData\Local\Programs\Python\Python310\python.exe: No module named pip
        Launch unsuccessful. Exiting.

        Подскажите пожалуста как это можно исправить

        Ответить

        • Dmitry

          Здравствуйте.
          Попробуйте установить PIP в Python (поищите в интернете, на эту тему статей миллион, здесь в комментарии нет смысла описывать)

          Ответить

          • Алиса

            Такая же ошибка,
            При этом, pip установился нормально:
            Successfully installed pip-23.0.1 setuptools-67.6.0 wheel-0.40.0
            Что же делать, как заставить всё это заработать?

            Ответить

          • Dmitry

            А посмотрите гайд на самой странице Automaticc на GitHub, вдруг там что-то поменялось в плане установки в каком-то моменте? (сам сейчас глянуть не имею возможности).

            Ответить

  • Ayun

    Устанавливаем именно 3.10.6 версию Питона
    Ставим галочку, где написано «Path»
    Удаляем папку venv, если вы пытались ранее запустить на неправильно

    Ответить

  • Max

    В общем у меня такая проблема
    stderr: ERROR: Could not find a version that satisfies the requirement torch==1.12.1+cu113 (from versions: none)
    ERROR: No matching distribution found for torch==1.12.1+cu113 Я попробую установить 1.12.1+cu113 отдельно и отпишусь помогло или нет

    Ответить

    • Max

      установка на помогает, пытался поставить torch-1.12.1+cu113-cp310-cp310-win_amd64.whl

      Ответить

  • MAXIM

    У меня картинку генерирует по пол часа, как бы ускорить?

    Ответить

  • Rumen

    Кто-нибудь шарит как исправить ошибку? Раньше всё работало до переустановки шинды.
    RuntimeError: Couldn’t checkout commit for Taming Transformers.
    Command: «git» -C repositories\taming-transformers checkout
    Error code: 128
    stdout:
    stderr: fatal: reference is not a tree:

    Ответить

  • Владимир

    Установка Stable Diffusion WebUI от Automatic
    6. Запустите файл webui-user.bat (простой запуск двойным кликом) и дождитесь, когда скрипт автоматически скачает и установит недостающие компоненты.
    Дружище! Помоги, пожалуйста. Внизу два файла с таким именем. Запускаю с расширением .bat Открывается черное окно с текстом: «Python. Launch unsuccessful. Exiting.» и просит для продолжения нажать на любую клавишу. Жму пробел и все закрывается. Где ошибка? В какой папке должен быть запускающий файл Питона? И в какой папке должен быть Git-2.39.1-64-bit Может я их не туда забросил? Подскажи, пожалуйста.

    Ответить

    • Dmitry

      Здравствуйте!
      Пайтон и гит должны при установке (если галочки не меняли) сами прописать себя в системную переменную среды Path, то есть их конкретное расположение как бы и не важно. Если они этого не сделали, то сами добавьте папки с exe-шниками соответствующими в PATH, вот так: https://remontka.pro/environment-variables-windows/

      Ответить

  • Владимир

    Благодарю за помощь! С PATH разобрался. Другая фенька вылезла.
    Задаю задание в виде простенького предложения и прога начала работать.
    После нескольких минут (внизу слева видно, что прога работает) выдает ошибку: «Не загрузился файл модели».
    Файл находится на своем месте \\models\Stable-diffusion\sd-v1-4.ckpt
    Согласно указаниям интернета я его переименовал в model.ckpt
    Почему файл модели не читается? Он старенький, но родной.
    Посоветуйте, что сделать, или продайте гранатомет. Уже зверею…..

    Ответить

    • Dmitry

      Здравствуйте.
      Там в новой версии WebUI (видел только на скриншотах, у самого старая ещё стоит без этой опции) где-то можно сам файл модели выбирать прямо в веб-интерфейсе, посмотрите — может, достаточно просто там указать.

      Ответить

  • Николай

    WARNING: Retrying after connection broken by ReadTimeoutError(TTPSConnectionPool(host=’download.pytorch.org’, port=443): Read timed out. (read timeout=15)): /whl/cu117/torch/
    ERROR: Could not find a version that satisfies the requirement torch==1.13.1+cu117 (from versions: none)
    ERROR: No matching distribution found for torch==1.13.1+cu117
    Че делать?

    Ответить

    • Dmitry

      Судя по сообщению, какие-то проблемы с доступом для скачивания pytorch (версия указанная должна лежать на месте). Что-то блокирует, возможно (был запрос брандмауэра в начале, разрешили?)

      Ответить

  • Николай

    Нет не было, может вручную как то скачать?

    Ответить

    • Dmitry

      ну по идее вот эта команда

      pip install torch --extra-index-url https://download.pytorch.org/whl/cu113

      Но, как я понимаю, у вас оно и не срабатывает…
      А вообще раздел «Manual» на этой странице:

      https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs

      там полный набор команд для установки вручную

      Ответить

      • Николай

        попробую, спасибо

        Ответить

  • Вячеслав

    Можете сказать какие минимальные системные требования для ноутбука? И сколько времени занимает генерация на разных машинах?

    Ответить

    • Dmitry

      Здравствуйте.
      Я их и сам четких-то не знаю. В общем случае для модифицированных версий с параметрами для машин с малым объемом VRAM, насколько я помню основное — не менее 4 Гб памяти видеокарты NVIDIA. Какие там требования по CPU/RAM уже и не скажу, сам бы гуглил, смотрел, что пишут.

      Ответить

  • Александр

    Установил нейросетку обоими способами.
    Видюха с памятью 4 Гб.
    Получил одинаковый результат при запуске и той и той версии:
    Ошибка типа:
    «OutOfMemoryError: CUDA out of memory. Tried to allocate 256.00 MiB (GPU 0; 4.00 GiB total capacity; 1.89 GiB already allocated; 120.64 MiB free; 2.33 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF»

    Спросил у нейросети GhatGPT как решить такую проблему.
    Она посоветовала действовать следующим образом, привожу полную переписку с нейросеткой:

    Я ничего не понимаю в программировании.

    Может кто-нибудь сказать здравые ли идеи подсказала нейросетка для решения этой задачи?
    Может ли кто-нибудь помочь с решением?

    Ответить

    • Dmitry

      Здравствуйте.
      ChatGPT (диалог я почитал) вам в общем для PyTorch отвечала, не совсем здесь применимо.
      А вы дописывали параметры в webui-user.bat?
      set COMMANDLINE_ARGS=—medvram
      А для вашей видеокарты лучше даже такой вариант:

      set COMMANDLINE_ARGS=--medvram --opt-split-attention

      Ответить

      • Александр

        Конечно дописывал.
        Советуете попробовать измененную версию выше?

        Ответить

        • Dmitry

          Да, попробуйте.
          А потом в веб-интерфейсе начните с малых разрешений и используйте сэмплер Euler

          Ответить

      • Александр

        Заработало, спасибо огромное!

        Ответить

        • Dmitry

          Удачных экспериментов!

          Ответить

      • Александр

        Но работает только до разрешения 500 х 500, потом все равно выскакивает ошибка о нехватке памяти

        Ответить

        • Dmitry

          Тут уж ничего не поделаешь с тем объемом видеопамяти что есть. Делаем 512×512 (но количество шагов можем делать больше, иногда позволяет вытянуть качество на некоторых сэмплерах), потом Send to Extras, а там уже экспериментируем с Upscale (увеличением).
          Кстати, не удивляйтесь, когда отдельные сэмплеры вам будут сообщать, что мало памяти.

          Ответить

  • Homyak

    txt2img.py —prompt «concept robot, colorful, cinematic» —plms —n_iter 5 —n_samples 1
    Traceback (most recent call last):
    File «C:\stable-diffusion\stable-diffusion-main\scripts\txt2img.py», line 2, in
    import cv2
    ModuleNotFoundError: No module named ‘cv2’

    Ответить

  • Михаил

    В командную строку написал pip install opencv-python, но всё равно выдаёт ошибку
    python scripts/txt2img.py —help
    Traceback (most recent call last):
    File «\txt2img.py», line 2, in
    import cv2
    ModuleNotFoundError: No module named ‘cv2’

    Ответить

Оставить комментарий

Интересное
Список инструкций Windows 11 Windows 10 Подписаться