Как стать автором
Обновить
140.85
Serverspace
IT-инфраструктура | Кешбэк 17% по коду HABR

Домашняя нейронка. Какое «железо» выбрать для Stable Diffusion?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K


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

А внутре у ней нейронка


Stable Diffusion от компании Stability AI — одна из немногих нейросетей с открытым исходным кодом, которые не просто генерируют изображения по текстовому описанию, но еще и дают возможность самостоятельно развернуть все необходимые компоненты на домашнем компьютере, причем совершенно бесплатно. Ну, если не считать затрат на оборудование, а оно потребуется довольно-таки мощное. Насколько? Сейчас разберемся.

Существует несколько сборок Stable Diffusion для использования на локальной персоналке, и все они предоставляют разные интерфейсы для работы с нейросетью, оптимизированы под разные видеокарты и позволяют (или не позволяют) задействовать подключаемые модули. Самыми популярными сборками считаются, пожалуй, AUTOMATIC1111 и ее клон vladmandic, а также Fooocus — эта версия довольно проста в использовании, но позволяет управлять лишь ограниченным диапазоном настроек и поддерживает далеко не все наиболее актуальные обновления. Еще есть как минимум SHARK, сконфигурированный конкретно под видеочипы AMD, и, судя по отзывам, дающий на таких видеокартах наилучший результат.

Я остановился на последней версии нейросети — Stable Diffusion XL — c интерфейсом Fooocus, поскольку именно этот дистрибутив по отзывам опытных джедаев проще всего в освоении для новичков вроде меня. Осталось решить самый главный вопрос: какое оборудование необходимо для стабильной, а главное — быстрой работы Stable Diffusion?

Куй железо не отходя от кассы


Сам дистрибутив Fooocus для Windows вместе со всеми дополнительными модулями «весит» порядка 15 Гбайт, для которых, разумеется, нужно свободное дисковое пространство. Наверное, излишне говорить, что с точки зрения быстродействия предпочтительнее использовать SSD, впрочем, традиционные жесткие диски в машины с современной конфигурацией сейчас устанавливают либо закостенелые ретрограды, либо в силу какой-то особой технической необходимости.

Модели для этой нейросети весят порядка 6,5 Гбайт каждая, поэтому важным фактором является объем оперативной памяти. Если верить сообщениям на профильных форумах, 16 Гбайт для этих целей определенно недостаточно, необходимо 32 или больше. А вот к процессору жестких требований не предъявляется, поскольку основная нагрузка в ходе работы Stable Diffusion ложится не на него, а на видеокарту компьютера.



Именно выбор видеоадаптера играет решающую роль в производительности нейросети. Профессионалы, постоянно работающие со Stable Diffusion, настоятельно отговаривают новичков от использования «видях» производства AMD, поскольку у них (опять же, если верить отзывам) не лучшим образом обстоят дела с энергоэффективностью. И хотя видеокарты от AMD могут похвастаться достойным объемом видеопамяти, на практике оказывается, что их быстродействие на однотипных задачах ниже, чем у аналогов производства NVIDIA. Если уж выбор пал на AMD, на форумах рекомендуют карты серии RX 6700 и RX 6800 с поддержкой DirectML, но в процессе работы софт будет выполнять множество итераций записи на жесткий диск (здесь и понадобится быстрый SSD), из-за чего нейронка будет генерить картинки крайне медленно.

Видеоадаптеры с чипами Intel в этом контексте вообще не рассматриваются, поскольку поддержка со стороны Stable Diffusion для них организована очень избирательно и в самую последнюю очередь. Для графических процессоров AMD и Intel доступны версии веб-интерфейса A1111, ориентированные на DirectML и OpenVINO соответственно. Фактически, в качестве единственного оптимального варианта остаются только видеокарты NVIDIA, причем критерий выбора предельно прост: чем свежее модель, и чем больше на ней VRAM, тем лучше. Основная причина такого нелицеприятного для конкурентов расклада, вероятно, заключается в том, что NVIDIA внедрила поддержку ИИ в ядрах Tensor еще со времен Volta V100 образца 2017 года, а в семейство RTX эта функция была добавлена в 2018-м, и с каждым поколением видеокарт производительность только растет.

Профи рекомендуют выбирать карты NVIDIA серии 4ххх с объемом видеопамяти от 16 Гбайт, правда, стоят они по современным меркам совсем негуманно — порядка 130 — 150 тысяч рублей. Впрочем, гонять нейросеть можно и на более скромных конфигурациях, только в процессе рендеринга картинок придется запастись терпением. Так, натурный эксперимент показал, что Stable Diffusion работает вполне себе stable на видеокарте GeForce RTX 3070 Ti с 8 Гбайтами VRAM (стоимостью порядка 60 К рублей), однако апгрейд на GeForce RTX 4080 SUPER 16G дает прирост быстродействия более чем в 2,5 раза. Знакомые успешно запускали SDXL на видеокарте NVIDIA с 6 Гбайтами VRAM на борту, правда, AUTOMATIC1111 вылетала с ошибкой именно из-за нехватки видеопамяти, в силу чего пришлось использовать не слишком удобную и сложную в настройках сборку ComfyUI. Тем не менее, даже она крутилась там весьма неторопливо: с момента начала отсчета до получения первых эскизов вполне можно было успеть налить себе чай, сбегать на кухню за печеньками и посмотреть котиков в «ТикТоке». В среднем, создание одного эскиза минимального разрешения занимало порядка 60 секунд, а вот в разрешении 1024x1024 картинка генерировалась уже от 5 до 15 минут в зависимости от выбранных настроек. Хотя кое-где пишут, что с таким объемом видеопамяти ждать окончания рендеринга изображения с разрешением 1024x1024 придется около часа.



Пользователи Reddit сообщают, что на ноутбуке, оборудованном картой GeForce RTX 2060 с 6 ГБайтами видеопамяти, генерация изображения 1080x1080 пикселов посредством ComfyUI с 20 базовыми и 15 уточняющими шагами занимает 6-8 минут. Вообще, по отзывам, у AUTOMATIC1111 имеются серьезные проблемы с управлением видеопамятью, и эта сборка порой отказывается функционировать на конфигурациях, где аналоги чувствуют себя вполне комфортно. Так, один из юзеров жаловался, что на его машине с GeForce RTX 3060 Ti, оборудованной 8 Гбайтами видеопамяти и 32 Гбайтами RAM, AUTOMATIC1111 выдает отказ уже в процессе загрузки базовой модели, а вот ComfyUI работает нормально, при этом генерация картинки с разрешением 1024x1024 пиксела занимает около 34 секунд. Абсолютно минимальные системные требования, заявленные Stability AI, включают 4 Гбайта видеопамяти, но какая именно сборка заведётся на такой конфигурации, науке доподлинно неизвестно. Вероятно, ComfyUI — она считается самой «легкой» из всех существующих. На 24 Гбайтах VRAM картинки даже высокого разрешения будут генерироваться за несколько секунд.

В декабре 2023 года авторы сайта Tom’s Hardware провели сравнительные тесты Stable Diffusion на разном железе. Несмотря на то, что SDXL появилась в июле того же года, эти парни экспериментировали с предыдущими моделями Stable Diffusion. В целом упомянутые тесты тоже можно назвать показательными, хотя следует учитывать, что у SDXL требования к видеокартам выше, чем у ранних версий нейросети. Вот, например, результат тестов производительности на разных графических процессорах Stable Diffusion v1.5 при генерации изображения 768x768 точек с использованием WebUI (что довольно близко к возможностям SDXL):



Как и предполагалось, наилучшие результаты демонстрируют процессоры NVIDIA, карты AMD работают чуть хуже, а Intel плетется еде-то в хвосте. С SDXL конкретные цифры будут другими, но общая тенденция вероятнее всего сохранится.

На поле «маки» грохотали


Некоторые завсегдатаи профильных форумов советуют использовать для работы Stable Diffusion ноутбуки от Apple с процессорами семейства M, поскольку такие устройства обладают высокой производительностью, а также используют общую оперативную память. Иными словами, если вы покупаете MacBook с 16 ГБайтами оперативки, то получаете примерно 10 ГБайт памяти под видео, а с 32 Гбайтами дела будут обстоять еще лучше. Однако в этом случае при выборе подходящей сборки придется курить мануалы. Тот же Automatic1111 оптимизирован для компьютеров под управлением Windows, и, например, увеличение размера изображения с помощью апскейлера Hires.fix (который рекомендуется в большинстве руководств) на макбуке с процессором М1 займет вечность.



Можно попробовать запустить Stable Diffusion на «маке» с помощью DiffusionBee, программного обеспечения, специально созданного для чипов M1/M2. При использовании пользовательских моделей профессионалы рекомендуют загружать на «маки» модели FP16, а не FP32 (имеется в виду floating point — формат числа с плавающей точкой, используемой в моделях).

Fooocus тоже работает на современных версиях macOS, главное, следовать инструкциям по его установке. Лично я SDXL на «маке» не тестировал, но если верить отзывам, со стабильностью и производительностью там все более или менее в порядке. Так что если вы раздумывали, покупать ли новый MacBook, теперь в пользу такого приобретения появился как минимум еще один весомый аргумент.

Вместо заключения (TL:DR)


Основное отличие SDXL от предыдущих моделей Stable Diffusion — возможность генерировать изображения с разрешением от 768x768 до 1024x1024 точек, но это пропорционально повышает требования к видеопамяти. Технически существует возможность создавать изображения и с более высоким разрешением, однако в этом случае возрастает риск появления на них различных артефактов и искажений вроде лишних конечностей, дополнительных пар глаз и прочих «приветов из Кунсткамеры».

Для развертывания SDXL в домашних условиях лучше всего использовать компьютер с видеокартой NVIDIA (оптимально — на базе графических процессоров семейства RTX) с объемом VRAM от 8 Гбайт. При этом важную роль играет и пропускная способность видеопамяти: чем она выше, тем лучше будут результаты. Рекомендуемый объем оперативки — 32 Гбайта. Если не гнаться за быстродействием, можно генерировать картинки и на карточках от AMD (в данном случае обязателен быстрый SSD). Наконец, SDXL неплохо работает и на «маках» с процессорами М1/М2, но к выбору софта и используемых модулей придется подходить осмотрительно.

Статья поддерживается командой Serverspace.

Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows в 8 дата-центрах: Россия, Беларусь, Казахстан, Нидерланды, Турция, США, Канада и Бразилия. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.

IT-инфраструктура | Кешбэк 17% по коду HABR

Теги:
Хабы:
Всего голосов 17: ↑16 и ↓1+20
Комментарии42

Публикации

Информация

Сайт
serverspace.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия