# ComfyUI на сервері: збірка конвеєрів генерації зображень

> Встановлення ComfyUI на VDS із GPU: вузли, готові workflow, запуск через API і розрахунок VRAM.

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

## Чим ComfyUI відрізняється від звичайного інтерфейсу

Базова установка Stable Diffusion, описана у статті про [генерацію зображень на сервері](https://www.zevshost.net/uk/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/uk/kb/skolko-vram-nuzhno-modeli/) — принцип із мовними моделями і дифузійними перетинається: чим більша роздільність і чим довший конвеєр, тим більший потрібен запас пам'яті на проміжні тензори.

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

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

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

---

Джерело: https://www.zevshost.net/uk/kb/comfyui-nastroika-servera/
