Выпущен Stable Diffusion Web UI Neuro Linux v3 и почему я не поддерживаю AMD

С переходом на видеокарту от NVIDIA появилась и возможность создать новую версию автономной сборки для генерации изображений с помощью нейронных сетей.
12 марта 2025, среда 08:50
Hard-Workshop для раздела Блоги

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

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

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

Может к текущему моменту уже и появились действительно автономные сборки для генерации изображений помимо моих SD WebUI Neuro, но как правило, они сделаны исключительно для Windows, а мне нужно для Linux. Да и на поверку может оказаться, что не такое уж и портативное оно там как заявляют, уже сталкивался с такими случаями, когда кричали про портативность, а на деле ничего не работало без доступа к репозиториям в интернете, так что тут ещё большой вопрос стоит в плане портативности...

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

Конечно, у меня есть действительно портативные сборки SD WebUI Neuro, хотя уже и устаревшие, особенно для Windows, тем не менее, они есть, и Linux версия вполне работала как с GTX 1070 на 8 ГБ, так и с текущей RTX 3060 на 6 ГБ.

Но проблема в том, что существующая версия SD WebUI Neuro Linux не только устарела, но и банально неудобна в использовании, ведь создавалась во времена зарождения дистрибутива Chimbalix.

Потому было решено создать третью версию, уже и дистрибутив Chimbalix неплохо продвинулся вперёд, и установочный пакет Installer-SH появился, как раз в его формате и будет сделан новый Stable Diffusion Web UI Neuro, почему бы и нет.

Прямо сейчас в принципе уже всё сделано и упаковано, но давайте пройдёмся по файлам и рассмотрим интересные моменты из процесса создания сборки, сразу отмечу отсутствие LDSR модели в базовом наборе, просто она слишком много весит и редко используется, так же нет основной модели для генерации изображений, ибо весит ещё больше, не вижу смысла добавлять это всё в свой репозиторий повторно, и так на каждом сайте можно найти LDSR и safetensors модели, да и локальные копии моделей тоже наверняка будут у пользователей уже знакомых с нейронными сетями, потому только самое экзотичное было вынесено в отдельный архив и будет загружено рядом с установочным пакетом.

Разумеется, характерная болячка оригинального SD Web UI при использовании LDSR была исправлена в моей сборке, удивительно, что её до сих пор не исправили в последней доступной версии Web UI 1.10.1...

А вот и причина моей нелюбви к зависимости от репозиториев в интернете, ведь в любой момент они могут исчезнуть, или что ещё хуже, подменены/взломаны и заражены вредоносным кодом, вот наглядный пример:

Попытался увеличить изображение с помощью модели DAT, оно скачало модель по зашитой ссылке на репозиторий, но получило что-то подозрительное, это прекрасно, что есть минимальные проверки, но что пользователь пойдёт делать получив ошибку и предложение отключить эти назойливые проверки не позволяющие использовать "модель"? Правильно, пользователь скорее всего решит просто отключить проверки и запустит что у него там загрузилось, сделать дело то нужно, а загрузиться могло что угодно, ведь ссылки потеряли актуальность.

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

https://www.opennet.ru/opennews/art.shtml?num=62856

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

И вот, новая версия автономной сборки SD WebUI Neuro Linux v3 в формате Installer-SH готова, причём было решено изолировать домашний каталог, то есть запуск происходит через прослойку, что в свою очередь задаёт домашний каталог пользователя на время исполнения в папке "userdata", это позволяет избежать засорения оригинального домашнего каталога всяким мусором, а так же позволяет скопировать установленный каталог вместе со всеми моделями и настройками при необходимости.

Ярлыки в меню "Пуск" так не копируются на другой ПК, но сама сборка вполне будет работать при переносе на другую систему с Chimbalix или в другое место, главное чтобы полноценный, официальный драйвер видеокарты NVIDIA CUDA был установлен.

Прямо сейчас у меня установлена и тестируется новая версия SD WebUI Neuro Linux v3 на ноутбуке с RTX 3060 (6 ГБ) и 64 ГБ ОЗУ, как можно заметить, я уже сгенерировал несколько изображений.

Вот оно, в меню приложений даже есть, всё как положено.

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

Ну а дальше просто удаляю приложение из системы, ничего сложного, всё удалил, это к слову одно из преимуществ Installer-SH перед прочими способами установки ПО в линуксах, он позволяет удалять установленные приложения без помощи всевозможных пакетных менеджеров, а значит в принципе не может случиться какое-нибудь проблемное застревание пакетов / зависимостей или кэша в разнообразных формах...

Теперь установим снова с помощью Installer-SH, в строке "платформа" указан ряд базовых системных зависимостей, в дистрибутиве Chimbalix 24.7 всё есть, но моей сборкой могут попытаться воспользоваться и в других линуксах, а другие линуксы не настолько полноценные как Chimbalix, так что список базовых компонентов необходимых для работы не будет лишним.

Далее проверка целостности, у меня это занимает пару секунд, но при установке с обычного HDD может занять несколько минут, ведь установочный архив весит почти 2 гигабайта, ещё один запрос на подтверждение установки с выводом информации куда что пойдёт, и всё, осталось немного подождать.

В моём случае распаковка на NVMe SSD заняла половину минуты примерно, с медленными накопителями это может занять значительно больше времени, слишком много маленьких файлов в составе сборки, таков уж Stable Diffusion Web UI, ничего с этим не поделать в разумных пределах.

Осталось вернуть на место профиль настроек веб браузера, ведь по умолчанию работа происходит в специально выделенном "домашнем каталоге", он оторван от главного каталога пользователя, а значит и браузер запущенный через SD WebUI будет так же работать в пределах отдельного каталога, я не хочу его заново настраивать, так что копирую из резервной копии "userdata".

Можно конечно уже запустить SD WebUI, но без моделей он ничего не сделает, так что копирую и 69 гигабайт моделей из резервной копии в только что установленную сборку, всё, можно запускать и использовать.

Воспользуюсь ярлыком на рабочем столе, запускаю Low VRAM вариант, ведь у моей RTX 3060 всего 6 гигабайт памяти, а этого недостаточно для использования SDXL моделей в нормальном режиме работы.

Что бы сгенерировать... А давайте сгенерируем грибы! Причём выставим разрешение 1920x1080 и 4 изображения одновременно, чтобы было из чего выбрать!

Это конечно заняло почти всю память на видеокарте, которой всего 6 гигабайт, да и оперативной памяти тоже прилично израсходовано, ведь работает в режиме Low VRAM, но у меня целых 64 ГБ ОЗУ, так что не страшно, а вот системы с 16-24 ГБ оперативной памяти определённо уже пролетают мимо, недостаточно будет для таких параметров генерации.

Отлично, пока написал 4 строчки текста нейронная сеть уже всё сгенерировала, производительность конечно не очень хорошая из-за маленького объёма памяти у видеокарты RTX 3060, целых 8 секунд на итерацию 4 изображений размером 1920x1080 каждое, но результат есть.

Изображения получились весьма хаотичными, но у меня и запрос весьма простой, да и 1920x1080 не самое оптимальное разрешение для SDXL моделей, хотя справилась модель неплохо несмотря на плохие вводные параметры.

Проверяю контрольные сети, для них нужен довольно массивный набор моделей, и у меня есть локально только SD 1.5, они непригодны для использования с SDXL, так что в целом можно получить что-то похожее на оригинал переведённый в формат контрольной сети, но качество генерации в высоком разрешении оставляет желать лучшего, ведь обычные SD модели рассчитаны на 512x512...

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

Пожалуй про функционал img2img и extras рассказывать уже не буду, только добавлю пару слов про 6 гигабайт памяти у RTX 3060, к сожалению, этого объёма недостаточно для тренировки вспомогательных нейронных сетей, даже в разрешении 512x512, если GTX 1070 могла тренировать сети в размере 512x512 за счёт своих 8 гигабайт памяти, то RTX 3060 с 6 гигабайтами уже не может это делать, увы.

Впрочем, грех жаловаться учитывая насколько в целом требовательны нейронные сети к объёму памяти, уже чудо, что я могу спокойно генерировать 4 изображения одновременно в разрешении 1920x1080 на RTX 3060 имея всего 6 ГБ видеопамяти. Хотя нет, не чудо, ведь я немало времени потратил на оптимизацию параметров и тестирование, чтобы прийти к оптимальному варианту, да и до меня наверняка другие люди тоже ведь над этим работали, но уже на более низких уровнях в коде, в том числе разработчики библиотеки xFormers...

Так что никаких чудес, к сожалению, или к счастью, тут уже каждый сам решает для себя.

Точно, чуть не забыл, найти дистрибутив Chimbalix можно в репозитории GitHub (https://github.com/Shedou/Chimbalix), именно для этого линукса создавалась сборка SD WebUI Neuro Linux (https://github.com/Shedou/Neuro), будет ли она работать в прочих линуксах уже зависит от состоятельности самих линуксов, не так уж и много там нужно для работы.

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

И да, сборок для видеокарт AMD не будет, ибо эта контора не удосужилась выпустить ни одного адекватного и функционально состоятельного драйвера для своих видеокарт в среде Linux, да и "красные" постоянно кидают своих потребителей с поддержкой, мало того поломают что нормально работало, так ещё и бросают "как есть", извольте, но поддерживать видеокарты от такой шарашкиной конторы я не собираюсь, тем более сейчас перешёл с R7 4800H + RX 5600M на i7-10875H + RTX 3060, и не хочу больше связываться с "красным" хламом вечно отсталым от конкурентов на поколения, который никогда не доводят до ума.

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.