Оценок пока нет Установка Stable Diffusion на Ubuntu 24

В этой статье опишу примерный план установки Stable Diffusion на ОС Ubuntu. Ниже в таблице опишу примерные характеристики машины, на котором будет работать ИИ

ПараметрЗначение
ОСUbuntu 24.1
CPUi7-9750H CPU @ 2.60GHz
RAM16 Gb
SSD250 Gb
GPUNVIDIA GeForce GTX 1050
CUDA ядра768
GPU память3072 Mb
Характеристики машины

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

Технические требования

На момент напиасания данной статьи, для Stable Diffusion, в частности by AUTOMATIC1111 WebUI edition, нужна среда Python версии 3.10 или 3.11, и ряд других зависимостей, которые можно почитать тут. Для управления версиями Python полезно использовать менеджер верси pyenv

pyenv install --versions
pyenv install 3.11.10
pyenv global 3.11.10

Установка

Для запуска нам необходимо склонировать из репозитория исходный код данной нейронки через git

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

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

chmod +x ./webui.sh
./webui.sh

в конечном итоге в браузере будет доступен Web — интерфейс по адресу http://127.0.0.1:7860/, которы выглядит следующим образом

но если мы сейчас воспользуемся функцией txt2img, что означет генерацию картинки из текстового описания, то мы потерпим неудачу подобного рода

OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacty of 2.94 GiB of which 3.56 MiB is free. Including non-PyTorch memory, this process has 2.93 GiB memory in use. Of the allocated memory 2.81 GiB is allocated by PyTorch, and 74.13 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

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

./webui.sh --xformers --lowvram

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

Если требуется расшарить функциональность Stable Diffusion для других сревисов, таких как Open WebUI с Ollama или ChatGPT для генерации картинок, то надо будеть еще добавить флажки —-listen и --api

./webui.sh --xformers --lowvram --listen --api

и теперь вся функциональность Stable Diffusion можно будет использовать через API. Подробно про это можно почитать тут.

Пожалуйста, оцените материал

WebSofter

Web - технологии