До основного вмісту

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 і апскейл, а не лише на базову генерацію.
← Назад до бази знань Поставити питання підтримці