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

> Установка ComfyUI на VDS с GPU: узлы, готовые workflow, запуск через API и расчёт нужной VRAM.

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

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

Базовая установка Stable Diffusion, описанная в статье про [генерацию изображений на сервере](https://www.zevshost.net/ru/kb/stable-diffusion-vps-nastroika/), подходит для простых задач «текст в картинку». 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.5 | 512x512 | 4-6 ГБ | 2-4 сек |
| SDXL | 1024x1024 | 8-12 ГБ | 6-10 сек |
| SDXL + ControlNet | 1024x1024 | 12-16 ГБ | 10-15 сек |
| SDXL + апскейл x2 | 2048x2048 | 16-20 ГБ | 20-30 сек |

Формулу и таблицы для точного расчёта VRAM под конкретную модель можно посмотреть в статье [сколько видеопамяти нужно модели](https://www.zevshost.net/ru/kb/skolko-vram-nuzhno-modeli/) — принцип с языковыми моделями и диффузионными пересекается: чем больше разрешение и чем длиннее конвейер, тем больше нужен запас памяти на промежуточные тензоры.

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

Перед тем как открывать ComfyUI внешним пользователям, закройте порт 8188 от прямого доступа, ограничьте очередь генераций на пользователя и настройте мониторинг очереди и VRAM, чтобы вовремя заметить рост нагрузки. Полезно подключить общий [мониторинг AI-сервисов на VDS](https://www.zevshost.net/ru/kb/ai-monitoring-vps/) и следить за длиной очереди отдельной метрикой.

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

---

Источник: https://www.zevshost.net/ru/kb/comfyui-nastroika-servera/
