Нейросетями теперь пользуются почти все мои знакомые. Чат-боты с искусственным интеллектом в плане сбора информации намного удобнее поисковых систем, а нейросети, генерирующие картинки по запросу, нашли свое применение в рекламе и иллюстрировании контента. Однако как раз с ними не все столь гладко, как хотелось бы. Доступ к одним без плясок с бубном и нервотрепки невозможно оплатить из России, другие не радуют качеством изображений, путаясь в количестве пальцев, изгибая конечности персонажей невообразимым образом или выдавая в ответ на запрос совсем не то, что требовалось. Тут у меня и возникла идея развернуть 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

Комментарии (30)


  1. NutsUnderline
    11.04.2024 07:19

    как раз нам обещают подорожание цен на видюхи в связи с ..


    1. fio
      11.04.2024 07:19

      [dushnila_mode]Цена не может продолжать. Товар - может.[/dm]


  1. noker81
    11.04.2024 07:19
    +1

    Можно поднять на colab Fooocus и не париться с выбором железа.


  1. AlexB17
    11.04.2024 07:19
    +1

    Тем временем у меня на рабочем ПК с 16Гб памяти и 3060Ti спокойно работают Fooocus и Forge - оптимизация не стоит на месте.
    Да я не могу одновременно с генерацией запустить фотошоп или браузер с десятком вкладок, но это терпимо. В Fooocus потребление памяти примерно 10-12Гб и 6-8Гб видеопамяти всего.


  1. melodictsk
    11.04.2024 07:19
    +1

    На Авито навалом 3090 по 50-70к. Не имеет смысла рассматривать что-то ещё. Объем и скорость врам хватит на все разумные случаи.


    1. HomoLuden
      11.04.2024 07:19

      Tesla P40 стоила 15 на адишке. + Охлаждение 4к


  1. Rezzet
    11.04.2024 07:19
    +1

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


    1. HomoLuden
      11.04.2024 07:19

      Неправду пишете. На 3060 с 12ГБ можно очен сложные ComfyUI workflow выполнять. На Tesla P40 можно тренить даже SDXL. Тренировка занимает меньше или столько же времени что и разметка данных.


  1. NutsUnderline
    11.04.2024 07:19

    а 1080Ti хватит?


    1. HomoLuden
      11.04.2024 07:19

      Хватит если в ComfyUI умеете


  1. NickDoom
    11.04.2024 07:19

    Если погонять что-то ночами — два ядра, восемь гигов и никаких твердотельников. Утром пачка картинок готова. Но Лору так не обучить, конечно.

    Вообще насчёт последних — можете хоть обдразниться «ретроградами», но в данном случае они никуда не упали, потому что чтение идёт крупными кусками и быстрое чтение вразбивку ничего не даёт. То есть выигрыш от SSD просто постольку, поскольку. В требования их записывать несколько преждевременно — максимум в рекомендации (ну так в рекомендациях вообще будет «всё бы получше, да побыстрее бы»).

    С четырьмя гигами уходит в мёртвый своп, тут без шансов (хотя на какую-нибудь Теслу с 24 гигами может просто всё влезть, обнулив требования как к системной оперативке, так и к скорости диска; не проверял пока). С 16 — на проце практически без свопа гоняет. С 8 — со свопом, но без падения скорости (грузит куски быстрее, чем проц считает).

    Хайли лайкли начиная с 24 гигов суммарной памяти скорость диска перестанет что-то решать (Лора не в счёт, я про генерацию).


  1. tonx92
    11.04.2024 07:19
    +1

    Мне кажется, тема заголовка не до конца раскрыта. Воды много, для тех кто пришел за ответами, ситуация на текущий момент:

    Требования для запуска, по видеопамяти:

    SD1.5-2.0(начальный уровень) требует 4гб, 8гб для комфортной работы

    SDXL(передовая по качеству) требует 8гб, 12гб для комфортной работы

    SDCascade(тоже что и sdxl, но кратно меняет память на скорость) требует 12гб, 16гб для комфортной работы

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

    Скорость чипа не влияет на качество, только на скорость получения результатов.

    Забудьте про АМД большинство нейросетей и библиотек используют cuda драйвера nvidia и в реальности работают на АМД либо плохо с костылями либо вообще никак.

    Лучший выбор для профессионалов по цене качеству это видеокарты 3ххх-4ххх с удвоенной памятью. В дорогом сегменте, топы 4080,4090.


    1. tonx92
      11.04.2024 07:19

      Оперативка вообще не сильно влияет, просто придерживайтесь того что ее должно быть больше чем видеопамяти.


  1. fire64
    11.04.2024 07:19

    Хех у меня AUTOMATIC1111 на 1050ti запускается и даже изображения создаются.

    Пришлось с конфигами шаманить, но удалось же....


    1. HomoLuden
      11.04.2024 07:19

      ComfyUI на 1050 ti даже SDXL может. И не забываем что новые драйвера от Nvidia позволяют шарить с GPU системную память


  1. Mulfarion
    11.04.2024 07:19
    +1

    На rtx 4080, ссд кс3000 и 32Гб памяти 7600Mhz картинка в самом высоком разрешении генерируется порядка 18 сек в 60 шагов. Полюзуюсь fooocus.


  1. KonstantinTokar
    11.04.2024 07:19

    Вообще только на SD свет клином не сошёлся. Для очень многих домашних пользователей будет не менее а иногда и более актуально иметь какие то текстогенераторы, например text-generation-webui с моделями с huggingface.

    С некоторой версии драйверов Nvidia позволяет в какой то степени подменять видеопамять оперативной, причём под это выделяется до 50% объёма. То есть на конфигурации 12гб gpu + 32гб ram можно использовать модели, требующие 12+16=30 гигабайт. "нормальные" модели требуют 40,то есть минимальные требования для RAM начинаются с 64 гб. Больше особо не нужно, производительность неприемлемо просядет всё равно.


    1. CyberPaul Автор
      11.04.2024 07:19
      +2

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


    1. HomoLuden
      11.04.2024 07:19

      Только тренить с шареной системной будет медленно


  1. Dolios
    11.04.2024 07:19

    А на линухе оно нормально работает или не стоит даже пытаться?


    1. KonstantinTokar
      11.04.2024 07:19
      +3

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


  1. vircat
    11.04.2024 07:19

    Мне кажется, идеальная для SDXL, на данный момент, карточка (из соображения цена/производительность), это RTX 4070Ti Super. При неплохих показателях, она имеет 16Gb видеопамяти.


    1. HomoLuden
      11.04.2024 07:19

      Бессмысленно. Тренировать на такой вы сможете только lora. А для генерации слишком много памяти. Tesla P40 сильно дешевле, хотя и проц там медленнее.


  1. falseshepard
    11.04.2024 07:19
    +1

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

    Сижу на 4070, мне скорости вполне хватает, вывозит где-то 8-9 итераций в секунду, но лучше брать что-то с большим объемом видеопамяти тоже из 40 серии, пожертвовав скоростью, например 4060 на 16гб. Либо доплатить и взять супер версию.

    Возможно в Forge все намного лучше с видеопамятью, и там будет хватать, так как в обычном Automatic я могу упереться в нехватку памяти на тяжёлых задачах или с SDXL. Если для серьезных задач, то 12+ Гб видеопамяти, если для баловства, то далее 1660 достаточно будет, раньше на ней сидел, ещё до появления Forge, сейчас с ней наверняка ещё лучше дела обстоят.

    График, представленный в статье также уже устарел, ввиду перехода на новые версии torch и развития sdp.


  1. inetstar
    11.04.2024 07:19

    Нейронка - это набор весов. А что представляет собой софт у SD?

    Это что-то на питоне от пайторч? Или бинарник на С++? Или что?


    1. Aizz
      11.04.2024 07:19
      +1

      pyTorch в 100% случаев для графических интерфейсов к SD перечисленных в статье. Для текстовых чаще всего скомпиленый бинарник.


  1. rPman
    11.04.2024 07:19
    +1

    Что то автор про нехватку памяти ошибается.

    nvidia 1060 3Gb vram, ключ --lovram --xformers, изображения не больше 512x512 (можно по одной стороне до 700доводить) генерируются по 15-30 сек.

    Минимальная рекомендация для желающих играться с нейронками - это Nvidia 3060 12Gb vram (по деньгам - можно найти 30т.р.-35т.р. а у китайцев даже 26т.р. но что то мне говорит что тут какой то подвох).

    Ну а тем кто хочет заниматься llm-ками и файнтюнингом, начальный вариант это 2x..4x nvidia 4060ti 16Gb vram (примерно по 50т.р.), для игр они не очень подходят, nvidia хорошо постарались, а вот нейронки, тем, кому по дешевле, в самый раз.


    1. HomoLuden
      11.04.2024 07:19

      Врёт или просто начитался некомпетентных форумчан.


  1. HomoLuden
    11.04.2024 07:19

    Если верить сообщениям на профильных форумах, 16 Гбайт для этих целей определенно недостаточно, необходимо 32 или больше.

    SDXL в ComfyUI работает и на 4ГБ 1050ti - если речь про генерацию картинок. Для тренировки LoRa достаточно 12ГБ GTX 3060.

    А вот для полноценной тренировки SDXL CKPT уже нужно покупать Tesla P40 за 15 тыр.


  1. Dolios
    11.04.2024 07:19

    @HomoLuden, @rPman, @falseshepard, @KonstantinTokar, а для чего всё это? Врядли же люди генерят картинки, чтобы поиграться и в статью на хабре прикольное изображение вставить. Некоторые даже пишут, что это для работы. Как это сегодня может использоваться в каких-то не развлекательных целях?