К основному содержимому

ComfyUI на сервере: сборка конвейеров генерации изображений

AI-агенты на VDS · 29.09.2026

Обычный веб-интерфейс Stable Diffusion даёт одну форму: промпт, размер, число шагов. ComfyUI вместо формы даёт граф узлов — можно собрать конвейер из загрузки модели, апскейла, inpainting и ControlNet в любом порядке и повторно использовать его как шаблон. Разберём, как поставить ComfyUI на VDS с GPU и запускать конвейеры без интерфейса, через API.

Чем ComfyUI отличается от обычного интерфейса

Базовая установка Stable Diffusion, описанная в статье про генерацию изображений на сервере, подходит для простых задач «текст в картинку». ComfyUI устроен как визуальный редактор графов: каждый шаг — загрузка чекпоинта, кодирование промпта, сэмплер, VAE-декодер — отдельный узел со своими входами и выходами. Соединяя узлы, можно собрать сложный конвейер: например, генерацию, апскейл в два прохода и наложение ControlNet за один запуск.

Главное преимущество для сервера — готовый граф сохраняется в JSON и запускается программно через API, без открытого браузера и без ручного клика по кнопкам.

Установка на VDS с GPU

ComfyUI требует Python 3.10+, CUDA-совместимый GPU-драйвер и около 10 ГБ на диске под саму программу без учёта весов моделей.

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python3 main.py --listen 0.0.0.0 --port 8188

Чекпоинты модели кладутся в models/checkpoints/, LoRA-адаптеры — в models/loras/, а модели ControlNet — в models/controlnet/. После первого запуска интерфейс доступен по адресу сервера на порту 8188; для прод-окружения порт стоит закрыть файрволом и пускать только через reverse proxy с базовой авторизацией.

Основы: узлы, граф и чекпоинты

Минимальный граф для генерации картинки состоит из пяти узлов: CheckpointLoader загружает веса модели, CLIPTextEncode кодирует положительный и отрицательный промпт, KSampler выполняет диффузию, VAEDecode превращает латент в пиксели, SaveImage сохраняет результат. Каждый узел настраивается отдельно: у KSampler есть параметры steps, cfg и sampler_name, которые в обычном веб-интерфейсе скрыты за одной формой.

Готовые графы можно сохранять и переиспользовать: файл workflow в формате JSON включает все узлы, их параметры и связи между ними.

Запуск конвейера через API

ComfyUI принимает готовый граф через REST API — это ключевая возможность для автоматизации без открытого интерфейса. Запрос на генерацию отправляется методом POST с телом в виде JSON-графа:

curl -X POST http://127.0.0.1:8188/prompt \
  -H "Content-Type: application/json" \
  -d @workflow.json

Ответ содержит prompt_id, по которому можно опросить очередь через GET /history/{prompt_id} и получить путь к готовому файлу, как только рендер завершится. Такой подход удобен для интеграции с ботом или сайтом: пользователь присылает промпт, backend подставляет его в шаблон графа и вызывает API ComfyUI.

Расширения: ControlNet, LoRA и кастомные узлы

Сообщество ComfyUI выпускает сотни кастомных узлов — они ставятся через менеджер ComfyUI-Manager или вручную в папку custom_nodes/. Самые частые дополнения: ControlNet для управления композицией по эскизу или карте глубины, IPAdapter для переноса стиля с референсного изображения и узлы апскейла на базе Real-ESRGAN.

После установки нового узла ComfyUI нужно перезапустить — узлы регистрируются при старте сервера, а не подгружаются на лету.

Сколько ресурсов нужно серверу

МодельРазрешениеVRAMВремя на кадр (RTX-класс)
SD 1.5512x5124-6 ГБ2-4 сек
SDXL1024x10248-12 ГБ6-10 сек
SDXL + ControlNet1024x102412-16 ГБ10-15 сек
SDXL + апскейл x22048x204816-20 ГБ20-30 сек

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

Чек-лист перед продакшеном

Перед тем как открывать ComfyUI внешним пользователям, закройте порт 8188 от прямого доступа, ограничьте очередь генераций на пользователя и настройте мониторинг очереди и VRAM, чтобы вовремя заметить рост нагрузки. Полезно подключить общий мониторинг AI-сервисов на VDS и следить за длиной очереди отдельной метрикой.

  • Спрячьте порт ComfyUI за reverse proxy с авторизацией, не открывайте его напрямую в интернет.
  • Сохраните рабочие графы как шаблоны JSON и подставляйте параметры программно.
  • Ограничьте очередь генераций на пользователя, чтобы один клиент не занял всю GPU.
  • Заложите VRAM с запасом на ControlNet и апскейл, а не только на базовую генерацию.
← Назад в базу знаний Задать вопрос поддержке