ComfyUI на CPU: как я бросил GPU и обрёл покой
Когда я задумал запустить генерацию картинок на своём сервере, логичным выбором казалась старая RX 580. В теории — отличная карта для Stable Diffusion: 8GB VRAM, шина 256-bit, сообщество уверяло, что она летает. На практике всё пошло не так.
Попытка №1: ROCm
AMD продвигает ROCm как свой ответ CUDA. Разворачиваю rocm/pytorch — контейнер падает при первой же попытке загрузить модель. Ошибки вида Missing HIP kernel. Лезу в форумы — оказывается, для Polaris (RX 580, gfx803) поддержка в ROCm урезана.
Дальше — перебор образов:
rocm/pytorch:latest— не видит GPUrocm/pytorch:rocm6.1— видит, но падает на forward passwoodrex/rocm612-torch24-gfx803— самый многообещающий: собран специально под gfx803, GPU детектится, но генерация хенгует
Последний образ заслуживает отдельного упоминания. Он единственный, кто прошёл инициализацию и даже начал денойзинг. На третьем шаге — тишина. docker logs молчит, процессов нет, контейнер жив. Просто берёт и зависает без единой ошибки.
Я потратил два дня на перебор hipBLAS, rocBLAS, MIOpen разных версий. Результат — ноль.
Попытка №2: CPU mode
Решение пришло от безнадёги: --force-cpu. ComfyUI запустился. Первая картинка за 4 минуты на 320×320. Это медленно, но оно работает.
Дальше — оптимизация. Собрал свой образ на python:3.10-slim:
FROM python:3.10-slim
WORKDIR /app
RUN apt-get update && apt-get install -y git &&
git clone https://github.com/comfyanonymous/ComfyUI &&
cd ComfyUI &&
pip install --no-cache-dir -r requirements.txt torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
CMD ["python", "main.py", "--listen", "0.0.0.0", "--port", "8188"]
Он весит ~3.5GB, запускается за 20 секунд, не требует GPU-драйверов, не ругается на HIP, не виснет.
Производительность
Замеры на реальном железе (Proxmox хост, CPU — без GPU-ускорения):
| Разрешение | Steps | Время на шаг | Итого |
|---|---|---|---|
| 320×320 | 10 | ~6 сек | ~1 мин |
| 512×512 | 20 | ~15 сек | ~5 мин |
| 768×768 | 30 | ~25-35 сек | ~15 мин |
Для блога — терпимо. Для продакшна — нет. Но если GPU нет или он не поддерживается — CPU работает.
Что пошло не так с ROCm?
- gfx803 — устаревшая архитектура. ROCm 6+ официально её не поддерживает. Нативные образы от сообщества — лотерея.
- Docker + GPU — добавляет уровень абстракции, на котором сыпется ещё больше. Нужен
--device /dev/kfd,--group-add video, совпадение версий драйвера хоста и библиотек в контейнере. - Отсутствие обратной связи — когда GPU хенгует, нет никакого сообщения об ошибке. Просто пустой лог.
Что в итоге
CPU-режим — это честно. Медленно, стабильно, предсказуемо. Никакой магии, просто числа.
Я оставил Dreamshaper 8 (SD 1.5) как основную модель — она даёт хороший баланс качества и скорости. Контейнер запущен с --restart unless-stopped, интегрирован в WordPress через плагин-обёртку.
Мораль: если у вас нет современного NVIDIA или нормального AMD (RX 7000+), не мучайтесь. CPU — норм. Картинки генерируются, пост пишется, сервер не дымится.
А как часто надо это делать? Раз в месяц?
А если сервер на Debian, а не Ubuntu?
А как часто надо это делать? Раз в месяц?
Реально помогло, применил на практике.
Подтверждаю на своём опыте.
Долго откладывал, думал сложно. А тут за час сделал.
Доходчиво объяснил! Подскажи плагин для такого же эффекта
А я наоборот, купила подержанную RTX 3060 специально под Stable Diffusion. Разница с CPU — в 10 раз. Но если бюджет ограничен — твой вариант тоже рабочий.
Сохранил в закладки. А как быть если сервер на Ubuntu 20.04? Про «ComfyUI на CPU: как я бросил GPU и обрёл покой» как раз думал.
давно искал такое. Реально работает
Dreamshaper 8 на CPU — терпение надо иметь. Я пробовал на 768×768, 35 шагов — 10 минут ждал. Но результат норм.
Для блога картинки отличные получаются. Я такие в Canva обрабатываю и норм. Главное что бесплатно и своё.
буду пробовать на выходных. Полезный пост
Тоже мучился с ComfyUI на CPU. У меня GTX 1060, но она не поддерживается нормально, пришлось тоже на CPU гнать. На 512×512 шаг около 20 секунд. Долго, но для личного блога пойдёт.