Найти в Дзене
КУЗИНОБИТ

Stable Diffusion и ComfyUI — установка и запуск у себя дома.

Привет, друзья!
Давненько я не писал — уже, честно говоря, соскучился. Иногда так бывает: вроде дел куча и времени нет, а мысли всё равно возвращаются к каналу. И вот я снова с вами. Тут на днях сидел, размышлял, о чём бы таком написать. Тема нужна была интересная, чтобы и самому было в кайф копаться, и вам — читать. И вдруг щёлкнуло: а почему бы не начать рассказывать про нейросети? Не те, что на слуху у каждого второго — про ChatGPT сейчас разве что ленивый не пишет. Хочется заглянуть в другую сторону — туда, где можно запустить что-то у себя, на своей машине. Пощупать, настроить, сломать и починить. Одним словом в OpenSource! Хочу начать с одной особенно классной штуки — Stable Diffusion. Это не какой-то облачный сервис, где тебе сначала нужно зарегистрироваться, подписаться, а потом ещё надеяться, что промт пройдёт цензуру. Нет. Здесь всё по-другому: ты ставишь систему у себя — на компьютере или сервере — и сам решаешь, как она будет работать. Никаких ограничений сверху. Хочешь —
Оглавление

Привет, друзья!

Давненько я не писал — уже, честно говоря, соскучился. Иногда так бывает: вроде дел куча и времени нет, а мысли всё равно возвращаются к каналу. И вот я снова с вами.

Тут на днях сидел, размышлял, о чём бы таком написать. Тема нужна была интересная, чтобы и самому было в кайф копаться, и вам — читать. И вдруг щёлкнуло: а почему бы не начать рассказывать про нейросети? Не те, что на слуху у каждого второго — про ChatGPT сейчас разве что ленивый не пишет. Хочется заглянуть в другую сторону — туда, где можно запустить что-то у себя, на своей машине. Пощупать, настроить, сломать и починить. Одним словом в OpenSource!

Хочу начать с одной особенно классной штуки — Stable Diffusion. Это не какой-то облачный сервис, где тебе сначала нужно зарегистрироваться, подписаться, а потом ещё надеяться, что промт пройдёт цензуру. Нет. Здесь всё по-другому: ты ставишь систему у себя — на компьютере или сервере — и сам решаешь, как она будет работать.

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

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

Минимально-комфортные характеристики для запуска Stable Diffusion.

А теперь давайте чуть приземлимся. Чтобы Stable Diffusion работала стабильно и быстро (извините за каламбур), нужно подходящее железо. Конечно, она может запускаться и на более слабых машинах — просто готовьтесь дольше ждать результата. Но если хочется комфорта, то вот ориентир:

  • GPU: NVIDIA RTX 4070 / 4070 Ti / 4080 / 4090 (от 12 до 24 ГБ видеопамяти).

Это особенно важно — нейросети любят видеопамять.

  • CPU: AMD Ryzen 7 7700 или Intel i7-13700 и выше.

Конечно, вся тяжёлая работа ложится на видеокарту, но без приличного процессора система будет “душнить”.

  • RAM: от 32 до 64 ГБ.

Особенно если хотите параллельно что-то ещё запускать или пользоваться плагинами.

  • SSD: минимум 1 ТБ, желательно NVMe M.2.

Модели весят много, и кэш тоже любит разрастаться.

  • Сеть: 1 Gbps LAN.
  • ОС: Ubuntu 24.04.2 LTS.

Важно: Для работы этой нейросети нужна видеокарта с поддержкой CUDA. Но если видеокарты нет, а попробовать очень хочется, то можно попробовать запустить на CPU. Имейте ввиду, что генерация на процессоре гораздо медленнее.

С теорией разобрались, теперь переходим к самому интересному.

Установка и запуск Stable Diffusion (на примере Ubuntu 24.04.2):

Предположим, что Ubuntu уже установлена. Если нет — пишите в комментариях, подскажу.

Шаг 1. Обновляем систему и ставим зависимости.

sudo apt update && sudo apt upgrade -y
sudo apt update && sudo apt upgrade -y
sudo apt update && sudo apt upgrade -y
sudo apt install python3.10 python3.10-venv python3.10-dev git wget -y
-3

❗ Если при установке возникла ошибка, что Python 3.10 не найден — значит, в системе его действительно нет. Такое может случиться, если используется минимальная версия Ubuntu. В этом случае нужно предварительно добавить нужный репозиторий:

-4
-5
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.10 python3.10-venv -y

Шаг 2. Проверка и установка драйвера NVIDIA.

lspci | grep -i nvidia
sudo ubuntu-drivers autoinstall
sudo reboot
-6

❗ Если в ходе установки появится сообщение что драйвера уже установлены, но nvidia-smi ничего не показывает. Нужно будет выполнить установку вручную:

-7
-8
sudo apt install nvidia-driver-570
sudo apt install nvidia-utils-570

После перезагрузки:

nvidia-smi

Шаг 3. Установка ComfyUI.

-9
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Шаг 4. Скачивание и установка модели.

Прежде чем скачать репозиторий, нужно принять лицензионное соглашение на сайте (https://huggingface.co/stabilityai/stable-diffusion-3.5-large):

Если ранее не регистрировались, то сначала зарегистрируйтесь. Процесс не вызывает каких-либо проблем.
-10

Следующим шагом создаем токен. Для этого нужно перейти по ссылке https://huggingface.co/settings/tokens и нажать на кнопку Create new token:

-11

В открывшемся окне устанавливаем доступ на чтение (Read) и вводим имя в поле Token name. После этого нажимаем кнопку Create token:

-12

❗ В открывшемся окне обязательно скопируйте и сохраните токен в надежное место.

Теперь можно приступать к скачиванию Stable Diffusion. Вместо TOKEN укажите свой токен (который создавался на предыдущем этапе).

Скачивание модели Stable Diffusion 3.5-Large
Скачивание модели Stable Diffusion 3.5-Large
mkdir -p models/checkpoints
mkdir -p models/clip
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/stabilityai/stable-diffusion-3.5-large/resolve/main/sd3.5_large.safetensors -O models/checkpoints/sd3.5_large.safetensors
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/AUTOMATIC/stable-diffusion-3-medium-text-encoders/resolve/main/clip_g.safetensors -O models/clip/clip_g.safetensors
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/AUTOMATIC/stable-diffusion-3-medium-text-encoders/resolve/main/clip_l.safetensors -O models/clip/clip_l.safetensors
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/stabilityai/stable-diffusion-3.5-large/resolve/main/text_encoders/t5xxl_fp16.safetensors -O models/clip/t5xxl_fp16.safetensors
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/stabilityai/stable-diffusion-3.5-large/resolve/main/text_encoders/t5xxl_fp8_e4m3fn.safetensors -O models/clip/t5xxl_fp8.safetensors
wget --header="Authorization: Bearer TOKEN" https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors -O models/checkpoints/v1-5-pruned-emaonly-fp16.safetensors

Имейте ввиду что процесс этот не самый быстрый 😁

Шаг 5. Запуск.

По умолчанию запуск происходит с использованием CUDA и достаточно вбить в консоль.

python main.py --listen

Но если у вас нет видеокарты которая поддерживает CUDA, у вас ничего не выйдет. Есть вариант запустить на CPU, генерация будет долгой, но зато можно будет попробовать.

Для этого нужно открыть файл model_management.py и в переменной cpu_state заменить CPUState.GPU на CPUState.CPU.

-14
nano ~/ComfyUI/comfy/model_management.py

После этого запускаем.

python main.py --listen

Вот и все! Теперь переходим в браузер вбиваем ip вашего компьютера/сервера с портом 8188. Например: https://192.168.1.1:8188 и вуаля..

ComfyUI. Выбор шаблона.
ComfyUI. Выбор шаблона.

Генерация первого изображения.

Чтобы убедиться, что всё действительно работает как надо, запустим первую генерацию. Для примера возьмём такой промт:

tranquil mountain lake surrounded by pine trees, morning mist, snow-covered peaks in the background, ultra-detailed, soft lighting, 8k, photorealistic

После запуска сайта с только что установленной системой ComfyUI, вы увидите интерфейс с меню и блоками. В верхней панели будет список шаблонов — там выбираем первый попавшийся (и самый базовый) вариант: “Генерация изображения” (text_to_image.json).

-16

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

Находим блок "Кодирование текста CLIP (запрос)" (CLIPTextEncode). Их там два:

  • Верхний — это основной запрос (что мы хотим видеть).
  • Нижний — это негативный промт (чего мы не хотим видеть: артефактов, лишних деталей, размытия и т.д.).

В верхнем блоке заменяем текст на наш промт:

tranquil mountain lake surrounded by pine trees, morning mist, snow-covered peaks in the background, ultra-detailed, soft lighting, 8k, photorealistic

А в нижнем можно оставить негативный промт по умолчанию:

text, watermark

-17

Ниже в схеме найдите блок "Пустое латентное изображение" (KSampler или Sampler). Здесь можно поменять разрешение изображения, количество шагов и другие параметры.

Я оставил стандартное:

  • Разрешение: 512x512
⚠️ чем выше разрешение — тем дольше будет происходить генерация. А если компьютер не самый мощный, то можно и "зависнуть".

Когда всё готово — нажимаем на кнопку "Запустить" и ждем. Команда уходит в очередь, а процесс запускается.

💬 За ходом генерации можно следить в терминале — там появится лог с шагами, временем и, главное, путём к готовому изображению.
Процесс генерации изображения.
Процесс генерации изображения.

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

Завершенная генерация изображения.
Завершенная генерация изображения.

И вот результат…

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

Отражение воды, утренний туман, ели— всё на месте, и всё невероятно реалистично.

Это, конечно, не может не впечатлять.

И ещё один пример, на десерт…

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

В этот раз я не только обновил модель, но и немного переработал промт.

positive:

tranquil mountain lake surrounded by tall pine trees, light morning mist hovering above calm water, majestic snow-covered peaks in the distance, crystal-clear reflections, golden sunrise light casting soft shadows, wildflowers on the shore, ultra-detailed natural textures, hyper-realistic landscape, peaceful and serene atmosphere, 8k resolution, photorealism

negative:

blurry, low resolution, pixelated, overexposed, underexposed, dark scene, night time, foggy lens, distorted shapes, unnatural colors, cartoon style, abstract, text, watermark, extra objects, people, animals, buildings, power lines, roads, fantasy elements, surrealism, glitch, low detail, noisy background

Также я поднял разрешение до 1024x1024, чтобы результат получился ещё сочнее. И вот что вышло:

Сгенерированное изображение с помощью sd3.5_large_fp8_scaled.
Сгенерированное изображение с помощью sd3.5_large_fp8_scaled.

А что дальше?

Как вы, наверное, уже заметили, в интерфейсе полно настроек:

масштаб, CFG, seed, типы сэмплирования, стили, LoRA, ControlNet, даже возможность делать анимацию. И это далеко не предел — можно подгружать собственные модели, рисовать по наброскам, накладывать маски, генерировать видео и кадры для мультиков.

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

Поддержите, если было полезно.

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

До новых встреч — думаю что будет интересно 😉