Часть 1
В этой статье мы рассмотрим установку и начало работы с проектом "Stability Matrix" - интерфейсом для генерации изображений нейросетью.
По моему мнению, проект "Stability Matrix" является на сегодня лучшим проектом, предназначенным для создания сред генераций изображений нейросетью. Проект работает на платформах Windows, Linux, и MAC.
Особенно он хорош для тех, кто только начинает заниматься генерацией изображений, и ничего не понимает ни в Python, ни в git, ни в начальном программировании, а просто хочет начать "генерить картинки". Из всех пакетов, известных мне на сегодня, именно "Stability Matrix" отдаляет пользователя от "программной части", становясь "прослойкой" между человеком и системой.
Что нужно из софта
- ничего - пакет все, что ему нужно, имеет "внутри себя".
Что такое "Stability Matrix"
"Stability Matrix" — программа, инсталлирующая на компьютер до 15 (это "на сегодня") разных интерфейсов для генерации изображений с помощью нейросети "Stable Diffusion", в любом их сочетании, и с организацией всех общих компонентов системы в одну систему.
Дело в том, что все нейросети, устанавливаемые с помощью "Stability Matrix", используют для своей работы интерпретатор языка Python, большое количество различных специфических "файлов-моделей" (которые очень большие по размеру), и такие компоненты требуются каждой из 15 устанавливаемых систем, причем каждая из систем рассчитывает найти все эти компоненты именно там, где ОНА считает нужным, и как в ней заложено. Но предоставлять по экземпляру каждого компонента каждому приложению — это слишком затратно, т.к. речь идет о "десятках гигабайт" (!) на каждое приложение.
Вот "Stability Matrix" зная, что и какому приложению нужно, хранит все эти "тяжелые" компоненты у себя в единственном экземпляре, а самим приложениям оформляет прозрачный доступ ко всему, что ему нужно.
Откуда взять
У проекта есть сайт и репозиторий на GitHub:
Дистрибутив "Stability Matrix" берем с сайта, отсюда: https://lykos.ai
Скачаем ZIP-архив, распакуем его, и полученный файл поместим в новую папку по адресу:
c:\Ai
Почему "Ai"?
Мнемоника от: "Artificial Intelligence" (Искусственный интеллект)
К тому же, я просто не люблю давать "длинные имена" файлам, папкам и т.п., т.к. много приходится "набирать ручками", и наличие "оЧепяток" неизбежно, когда "многА буквЕй".
Переименуйте его просто в "sm.exe" (потом опишу, для чего это нужно, и почему это безопасно).
Запускаем инсталляцию командой:
c:\Ai\sm.exe
Запустится инсталлятор.
В строке "DataDirectory" поставьте "c:\Ai", это папка, откуда мы запустили сам файл "c:\Ai\sm.exe". Дополнительно отметьте значок "Portable Mode"!!!
После этого путь изменится на "c:\Ai\Data" и зажжётся зеленым кнопка "Continue". Все верно! Жмем "Continue".
После этого в окне "Аналитика" подтвердите согласие на отправку аналитики автору программы.
Автор просто собирает информацию по статистике: на каких системах каких версий ставится его программа, какие версии, и успешно или неуспешно прошла установка. Программа для вас абсолютно бесплатная, а автору хоть информация пригодится для развития проекта.
Дальше откроется окно выбора "интерфейса" для установки, кнопки "Рекомендовано" и т.п.. Отвечаем "Skip first-time setup" (Пропустить сейчас...)
Мы установим "интерфейс" позже, после установки основной системы, потому что все равно будем учиться их устанавливать, обновлять, удалять и т.п.
Под словом "ИНТЕРФЕЙС" здесь понимается сам "движок", к примеру "ComfyUI", "AUTOMATIC1111", "Forge" и т.п. - это все "интерфейсы" в понимании "Stable Diffusion". А у меня просто личная привычка называть их словом "движок", так что я могу их назвать и так, и так.
Все, осталось пустое окно.
Закроем окно — выйдем из программы.
Посмотрим на созданную структуру папок (пока их мало!)
У нас всего четыре папки внутри:
- Assets - в папке установлен интерпретатор Python (один на всех!)
- Images - папка, которую будут сохраняться сгенерированные фотографии (можно перенастроить)
- Models - папка для "файлов-моделей" (на сленге просто "модель"), с большим количеством папок внутри, которые служат для каталогизации установленных моделей.
- Tags - для хранения тэгов (я вообще ей не пользуюсь)
Пока папки моделей все пустые, но со временем вы будете в них устанавливать все новые и новые "модели", так что со временем выучите структуру этих папок.
Вам просто важно помнить, что "Модели хранятся в папке "Models"" и глубже.
Основная папка моделей, которой вы будете пользоваться - "StableDiffusion" (обратите внимание, что пишется без пробела!).
Запускаем программу еще раз.
Отказываемся от установки интерфейсов.
Идем в настройки языка и ставим "Русский".
После выбора "Русский" - перезапустить.
Поле перезапуска наслаждаемся русским интерфейсом.
Нажатием на "три полоски" открываем полное меню (оно же скрывает его)
Идем в "Пакеты" - "+ Добавить пакет"
Откроется список всех "интерфейсов" ("движков", "пакетов"), которые сейчас "Stability Matrix" может установить.
Включаем "Show All Packages", и пролистаем список имеющихся "пакетов".
Как видите, она сам путается, у него одно и то же называется, то "пакет", то "интерфейс"...
Листаем до "ComfyUI". В его разделе имеется список систем, на которые его можно установить (обведено зеленым).
Я работаю (лично я!) на NVIDIA, и другими системами не занимаюсь, поскольку работа c нейросетью — это работа на видео-процессорах, а тут полный лидер именно NVIDIA.
Открываем раздел "ComfyUI"
Откроем "Продвинутые настройки" и убедимся, что для NVIDIA стоит именно "PyTorch = Cuda". Все остальное оставим "по умолчанию".
Тут и так все стояло "по умолчанию" = "Cuda", т.к. программа запрашивает состав оборудования и обычно правильно ставит настройки сама.
Но ваша система может отличаться от "NVIDIA", поэтому тут я не советчик, ибо считаю, что заниматься генерацией изображений в нейросети на чем-то, кроме NVIDIA - это "издевательство над собственными нервами".
Нажимаем "Установить"
В открывшемся окне снимаем галочку "Закрыть по завершении" и щелкаем по "More Details"
И наблюдаем за логом установки:
"SM" (Stability Matrix) сам прекрасно знает что скачать, откуда скачать, как скачать, куда поставить, как настроить именно этот "движок", и т.п.
Именно это его свойство и отдаляет пользователя от общения с питоном, pip, git, пакетами питона и т.п.
По завершению установки SM сообщит, что "Install Complete", а, поскольку у нас снята галочка "Закрыть по завершению", мы можем прокрутить окно лога, и проконтролировать, все ли там проходило без ошибок.
Окно логов в SM - это фактически "терминал", в это окно выводится все то, что обычно выводится в окно терминала.
Как видим, все успешно.
Теперь у нас установлен "движок" ("пакет") ComfyUI по пути (см.лог):
c:\Ai\Data\Packages\ComfyUI
Нажимаем "Скрыть"
Установка "моделей"
Что такое модель?
- Модель — это файл в котором хранятся параметры нейросети и алгоритм построения изображения. Именно модель является самым важным элементом в генерации картинок. Поэтому если у нас нет модели, то и сгенерировать мы ничего не сможем.
Для того чтобы установить "модель", мы должны ее сначала выбрать, скачать, и установить в папку (имя папки зарезервировано!):
c:\Ai\Data\Models\StableDiffusion
Обычно это делается вручную, кто где что скачает, тот тем и пользуется, но мы работаем на SM, а он сам прекрасно знает что нужно, откуда взять, и куда положить.
Поэтому мы открываем меню "Поиск моделей" - "CivitAI", ждем пока SM загрузит информацию с этого сайта и выведет список имеющихся там "моделей".
Зайдите на сайт https://civitai.com, зарегистрируйтесь там, получите ключ API (если уж очень надо). Но основные модели можно скачать без регистрации.
Выбираем модель "DreamShaper 8" (обведена красным кружком), щелкаем, открываем.
В открывшемся окне видим: окно со списком версий модели (нам нужна "8"), можем полистать картинки, которые показывают примерно в каких стилях модель может "рисовать", в какую папку ее загрузить (SM и так все сам знает!), можем открыть "Описание модели" - скопировать и кинуть в переводчик (полезно почитать параметры).
Выбираем то, что отмечено стрелками, и "Импорт"
После чего начнется процесс загрузки 2 гигабайт, а мы можем пойти попить чайку.
Когда SM что-то скачивает, слева внизу появляется "стрелочка", если ее нажать, появляется окно с отчетом о процессе скачивания.
Примечание: поскольку файлы моделей занимают очень много места (это я тут "маленькую" модель для примера начал качать), то процесс закачки моделей имеет смысл организовать "по ночам". Составить список моделей, которые нужны, запустить их закачку, только начав закачку поставить на паузу, а с паузы снять тогда, когда компьютер будет свободным.
Каким путем попала модель в папку моделей — все равно. Можно на флешке принести и просто скопировать в папку:
c:\Ai\Data\Models\StableDiffusion
... это не важно. При следующем запуске SM все равно ее обнаружит и включит в систему, но есть один нюанс:
Если вы "принесли" модель со стороны, то SM ничего о ней не знает. Поэтому у него есть кнопка - "Найти связанные данные".
После нажатия этой кнопки "SM" будет читать из всех моделей информацию о них, искать на известных ему сервисах эти модели по их версиям, и скачает их описание, параметры, и иконку превью для отображения каждой модели.
Примечание: если вы закрыли "SM"во время скачивания модели — ничего страшного. При следующем запуске откройте "стрелочку" скачивания, и запустите вставший на паузу процесс скачивание фалов, закачка продолжится с оборванного места.
Продолжаю после скачивания модели...
Ну вот, наша модель закачалась, посмотрим на нее в интерфейсе:
Как видим "SM" ее положил правильно - в папку "StableDiffusion", но у нее нет ни описания, ни картинки, ни параметров, ни ссылки на то, откуда она взята.
Нажмем "Найти связанные данные"
Несколько секунд, и SM "сходил" на CivitAI и подкачал оттуда данные. Фотография модели изменилась, но она проставлена та, какая указана в настройках этой модели на CivitAI (такое бывает).
Щелкнем по модели, и зайдем в нее:
У нас отобразится вся информация о модели без захода на CivitAI. И так надо поступать с каждой моделью, которую вы будете закачивать.
А в папке моделей у нас появились три файла:
- safetensors - сама модель
- json - файл с описанием параметров модели
- jpeg - превью модели для показа в интерфейсе SM
И так, после помещения сюда любой модели запросите обновление данных о моделях, и SM сам все найдет про нее в интернете.
Впоследствии, когда у вас будет много моделей, проще будет следить за их обновлениемм.
Теперь у нас есть одна модель, а это значит, что мы можем начать генерировать первые свои "картинки".
Теперь зайдем в меню "Пакеты".
Мы увидим там установленный нами ранее пакет "ComfyUI".
Поводите мышкой над всеми кнопочками, подождите пока всплывет подсказка к каждой кнопке, откройте меню "Три точки". Так узнаете много нового и интересного, о чем раньше не догадывались.
Все то, что раньше делалось "ручками", тут вынесено в меню и на кнопки. Здесь вы найдете все команды, которые можно применить "к объекту".
Нажимаем на кнопку "Запустить".
Появился лог терминала, но автоматически не запустился браузер с ComfyUI, открыть который мы можем кнопкой "Открыть веб-интерфейс".
Жмем кнопку "Открыть веб-интерфейс"
Но мы сейчас это исправим, надо просто в ключи запуска ComfyUI добавить ключ:
--auto-launch
В окне лога SM кнопка "Стоп"
Терминал выводит лог остановки
После остановки жмем на "Пакеты"
Жмем "шестеренку"
В открывшемся окне листаем до опции "Auto-Launch", ставим "птицу" + "Сохранить".
Зеленым обведено место, куда можно вручную вписать ключи запуска, которые отсутствуют в открывшемся шаблоне.
Примечание: я рекомендую снять галочку с "Auto-Launch", и в полосе "Extra Launch Arguments" проставить следующее:
--windows-standalone-build --front-end-version Comfy-Org/ComfyUI_frontend@latest
Это стандартные ключи запуска, специфичные для ComfyUI, и рекомендованные его авторами.
От себя: "Зная код движка, я тоже рекомендую всегда ставить оба этих ключа". Первый из этих ключей, кроме других своих функций, так же автоматически запускает браузер".
Ключи вставляются как одна строка через пробел друг от друга (тут при отображении происходит перенос строки!)
Снова запуск.
Браузер должен открыться автоматически.
Теперь браузер всегда будет автоматически открываться при запуске этого "движка".
Но, зная систему, я еще дополню: "Это еще не все!"
Это "движок" ComfyUI, и в него еще не установлена одна его очень важная часть - его "Менеджер", исправим это.
Остановим движок (обойдемся без картинки).
Переходим в "Пакеты" - кнопка "Extensions" (там "расширения" движка).
В полосу поиска вводим "Manager" (так быстрее!), и "Установить"
Подтсверждаем действие "Продолжить"
Откроется окно с логом установки
После любых установок надо перезагрузить систему.
Нажимаем "Скрыть". Переключаемся на вкладку "Installed Extensions" (Установленные расширения), и видим, что "Менеджер" появился в списке установленных расширений.
Примечание: на "__pycache__" внимания не обращаем, это просто папка "кэша", на них вообще не обращаем внимания, где бы они нам не попадались. Появление ее в этом списке - какая-то ошибка (скорее всего).
Теперь мы можем просто закрыть программу - выйти из нее.
И снова запустим (чтобы перезагрузка питона произошла).
Примечание: я всегда вот так запускаю. мне так привычнее. Окно откроется автоматически.
Запуск. В логе запуска появилась строка запуска менеджера
Открылось окно. Менеджер установлен (красная стрелка).
Попробуемм открыть "Manager"
Закроем менеджер.
ComfyUI установлен, модель загружена, теперь пробуем "генерить".
Первая генерация
Проверяем, чтобы в полосе ввода модели стояло имя нашей, недавно загруженной модели.
Поскольку она у нас пока одня, она там и будет. Но вообще-то, тут можно выбрать мышкой любую модель, которая будет находиться в папке "Models\StableDiffusion", список моделей загружается автоматически при старте ComfyUI.
Меняем каждую "512" на "1024" вот тут (обведено красным), это смена "выходного разрешения картинки" в пикселах.
Открываем "переводчик" и переводим на английский следующий текст:
(соблюдать именно такой порядок строк)
ультра реалистичное фото
ультра резкое фото
милый пушистый рыжий котенок сидит на подоконнике и смотрит в окно
сзади него стоит цветочный горшок с геранью
на окне синие занавески
студийный мягкий свет
Копируем в буфер английский перевод этих строк
В окне, обведенном красным, УДАЛЯЕМ ВЕСЬ ТЕКСТ который там был. и вставляем текс про "котенка" на английском языке.
После этого нажимаем кнопку "Queue Prompt" (зеленая стрелка).
Примечание: только потом заметил, что разрешение сбилось и вернулось к "512", да и леший с ним, так запустим...
Начнется процесс генерации, схема "оживет", и скоро в окне "Save Image" появится ваша первая, сгенерированная нейросетью, картинка.
Окно с итоговой картинкой можно таскать на верхнюю полосу, изменять его размеры мышкой за левый нижний угол, перемещать рабочий стол таская мышкой цепляя за его поверхность, массштабировать рабочий стол колесиком мыши.
Все сгенерированное сохраняется в папке "Images"
С каждым новым нажатием кнопки "Queue Prompt" будет сгенерирована новая картинка.
И все картинки будут складываться в папку "Images"
Собственно, для начала все.
Мы, ничего не зная и не умея, не разбираясь ни в нейросетях, ни в питоне, ни в программировании, с помощью "Stability Matrix" установили один из 15 имеющихся в наличии "движков" для генерации изображений с помощью нейросети, и получили первую свою картинку.
Пока все...
Жмите кнопку, описываете на английском все, что вы хотите получить на выходе, всставляйте это в указанное окно, и генерируйте.
Совет: поставьте разрешение 512х512, быстрее будет, важно "погонять" движок, "покрутить предали", а о качеств ебудет заботиться потом, а то "перегруз" наступит.
P.S.
Почему именно "котики"?
Потому, что это "самый массовый персонаж при генерации"! )))
========================
P.P.S. - заранее некоторым "спецам" на "фыркание" типа:
- Ну вот, опять какая-то мешанина из не пойми чего, а я люблю "чистую установку", ее можно более точно настроить.
Мой ответ:
- в данном случае вы не умнее автора "Stability Matrix", поскольку каждый из "движков" строится на собственном VENV, как следствие - все питоны изолированы друг от друга, и даже "наследование" пакетов питона от "родителя" к VENV не включено.
- сам "SM" играет тут роль только "организатора общей среды", натраивая каждый "движок" его собственными методами и способами, если в нем такая возможность есть.
- основное преимущество "SM" тут в том, КАК он организует общий репозиторий моделей, позволяя в своих настройках указать способ, как именно "подсовывать" каждому движку файлы моделей: его собственными когфигами, или подкладыванием "символических ссылок" (о которых движок даже не логадается!).
Пример самостоятельного запуска ComfyUI, установленного в этом примере, совершается так:
- создаем батник "c:\Ai\start_comfyui.bat"
- в нем две строки (щелкните по ссылке ниже, там код на gitHub):
Вот нормальный лог старта этих команд:
Вот откуда этот батник запускается, смотрите, там же "стандартно" создаются его логи:
Вот продолжение лога - генерация:
Вот картинка выполнения ComfyUI команды генерации в обход самого "SM":
Так что практика доказывает, что в данной конфигурации метод запуска ComfyUI может быть любым!
Хочешь - через "SM" запускай.
Хочешь - самостоятельной командой.
При этом все модели и папки, настроенные "SM" для ComfyUI, остаются доступными, и он никак к "SM" не привязан!
Продолжение тут (
)
На главную:
Удачи!
NStor
https://t.me/stable_cascade_rus
https://t.me/srigert