Почему NVIDIA GeForce — лучшие видеокарты на примере GT 1030 2GB в работе с нейронными сетями

Два года назад были созданы первые портативные сборки Stable Diffusion web UI Neuro для генерации изображений с помощью нейронных сетей. Но пришла пора выпустить обновлённую версию...
15 октября 2025, среда 18:37
Hard-Workshop для раздела Блоги

Я уже давно не использую Windows в качестве основной операционной системы, с того момента, как начал делать свой дистрибутив Linux под названием Chimbalix.

Даже создал портативные сборки нейронных сетей для генерации изображений и видео для Chimbalix. Хотя они теоретически могут работать и в других Линуксах, но это уже зависит от самих Линуксов, насколько они «полноценны».

Хоть у софта для Linux и есть некоторое количество загрузок, но это просто капля в море по сравнению с количеством загрузок у софта для Windows. И так как сборка SD web UI Neuro для Windows уже устарела на целых два года, есть смысл выпустить обновлённую версию.

Подниму, так сказать, до уровня сборки, предназначенной для Chimbalix, чтобы можно было SDXL модели использовать. Ну и оптимизаций добавлю, чтобы можно было вот так генерировать 4 изображения одновременно в разрешении 1920x1080 на видеокарте с 6 ГБ видеопамяти.

Потому что старые версии не могут генерировать в высоком качестве, используя SDXL модели.

Однако сейчас мы не будем заниматься рутинной работой. Ведь обновлённая сборка уже почти готова.

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

Для начала отметим тот факт, что тесты изначально проводятся без доступа к интернету. Это золотое правило, чтобы софт или игра не могли злоупотреблять положением и мухлевать, что-либо докачивая из сети незаметно от пользователя или «ненамеренно» сломаться, если репозитории будут сломаны.

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

Вторая проблема заключается в браузере Internet Explorer. Интерфейс нейронной сети слишком «новомодный» и не способен работать со старыми браузерами. Но решается эта проблема интерфейса web UI переключением на Microsoft Edge. Ранее был встроен браузер Firefox в сборку для надёжности, но сейчас такого делать не буду. Слишком много недостатков у такого подхода.

Пробуем генерировать, используя SD модель.

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

В среде Linux уже давно всё упало бы. Но почему не падает в среде Windows? Правильно! Потому что Windows умеет работать с памятью. В отличие от «пингвина», система сбрасывает излишки в обычную ОЗУ. И это можно отключить в Панели управления драйвера NVIDIA. Как все уже догадались, Linux так не умеет. Linux и так очень плохо работает с памятью. Куда там подкачивать память видеокарты.

С одной стороны, это хорошо, что в среде Windows возможно расширение видеопамяти за счёт потери производительности. Софт в любом случае продолжит работать даже при нехватке локальной памяти GPU. Но с другой стороны, это потенциальная возможность для злоупотреблений приверженцами Linux. Например, можно сделать сравнительный тест производительности CUDA между Windows и Linux, но в первом случае немного переполнить память, чтобы замедлить работу, выставив Linux более производительным.

Так незамысловато. Преимущество можно превратить в недостаток. Но вернёмся к сборке.

Переходим к режиму запуска LowVRAM. Теперь при генерации одного изображения в режиме SDXL используется всего 2.6 ГБ памяти на видеокарте. При генерации четырёх изображений одновременно уже используется 5.3 ГБ видеопамяти. Скорость при этом — 1 итерация за 1 секунду на 1 изображение.

Это слегка быстрее, чем под управлением Linux получается на этом же ноутбуке. При этом Windows прощает переполнение памяти. Но это нормально. Linux никогда не славился производительностью и функциональностью по сравнению с Windows.

В общем, генерация работает отлично.

Ради интереса сгенерировал изображение в размере 2560x1440. На последнем этапе это заняло 18 гигабайт памяти видеокарты, что в 3 раза больше, чем есть физически у мобильной RTX 3060. Но генерация успешно завершилась. Потому что нормальная операционная система используется, умеющая правильно работать с памятью, в отличие от Linux.

Раз уж такое дело. Не вижу ничего зазорного в том, чтобы расширить лимиты, доступные для генерации, до 4096. Так уже можно сгенерировать изображение в разрешении 3840х2160 на той же мобильной RTX 3060, имеющей всего 6 ГБ памяти. Чтобы ускорить дело, было выставлено всего 5 итераций качества, потому ничего внятного и не получилось. Нужно минимум 15 итераций для внятного результата. Важен сам факт, что генерация в таком размере возможна от начала до конца.

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

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

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

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

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

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

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

Теперь у каждого архива есть своё предназначение. И в принципе, они даже не являются критически важными для генерации. Эти модели нужны преимущественно для функционала во вкладке Extras.

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

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

Так же были добавлены некоторые костыли, чтобы сильно не выделывался Git со своим раздражающим «dubious ownership in repository».

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

И да, обновлять такие компоненты, как Git, я не буду, ибо нет смысла. Это вам не Linux, в котором постоянно ломают обратную совместимость чуть ли не каждый месяц. В Windows многое годами и десятилетиями работает как часы.

Так же в ходе тестов выяснилось, что сборка SD web UI Neuro v4 прекрасно работает на видеокарте GeForce GT 1030 2 ГБ. Это очередное доказательство тому, что NVIDIA — лучший производитель видеокарт на рынке с лучшей поддержкой и драйверами, в отличие от всяких AMD.

В итоге GT 1030 со своими 2 ГБ видеопамяти может генерировать в разрешении 768x768 без значительных проблем с производительностью. Да, эта видеокарта из разряда «затычек», но даже она значительно производительнее вполне серьёзного процессора Intel Core i7-10875H.

За это NVIDIA любят и уважают во всём мире. За отличные видеокарты и поддержку. Видеокарте GT 1030 уже больше 8 лет, и она имеет отличные драйверы. У конторы AMD будет чудом, если поддержка выйдет 5-6 лет, и Radeon при этом хоть что-то сможет осилить без костылей и проблем по вине вечно кривых драйверов.

И да, если кто-то думает, что с помощью процессора генерация выйдет быстрее, сразу же разочарую. Ryzen 5 3500X способен выдать одну итерацию за 36 секунд, что в 3.6 раза медленнее, чем способна GT 1030.

Даже серьёзный i7-10875H способен выдать итерацию лишь за 14 секунд при таком же разрешении генерации 768x768, когда GT 1030 выдает итерацию за 9-10 секунд.

Так что нет, процессором не быстрее. Даже от самой бюджетной и старой видеокарты NVIDIA есть реальная польза при работе с нейронными сетями. И это факт.

Осталось поработать над ReadMe файлом, прописать системные требования — и готово.

Загружаем сборку в репозитогий GitHub.

https://github.com/Shedou/Neuro/releases/tag/SD_WEBUI_v4

Так же обновляем файлы и страницу сборки.

https://github.com/Shedou/Neuro/tree/main/SD_WEBUI_Neuro

На этом всё.

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