SSD Nodes Learn Hosting plans →
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-08-07

Self-hosted генератор зображень: реальні вимоги

Дізнайтеся, що може CPU VPS, чому SDXL генерує зображення 10–20 хвилин, як встановити ComfyUI та скільки диска потрібно для checkpoint 6.94 GB.

Що насправді потрібно self-hosted генератору зображень на основі AI

Self-hosted генератор зображень на основі AI — це один вебзастосунок і один файл моделі. Застосунок — ComfyUI, і він працює на будь-якому Linux-сервері. Модель визначає вимоги до обладнання. Checkpoint класу SDXL — це один файл розміром 6.94 GB, який має зберігатися в пам’яті GPU. Саме цей факт визначає весь бюджет, тому ознайомтеся з наведеною нижче градацією обладнання, перш ніж орендувати сервер.

Коротко: VPS лише з CPU може встановити програмне забезпечення та обслуговувати запити. Він може генерувати зображення роздільністю 512x512 зі старішою моделлю Stable Diffusion 1.5 за одну-дві хвилини на зображення. На тому самому сервері генерація з SDXL у роздільності 1024x1024 займає від десяти до двадцяти хвилин на зображення. Це не означає, що конфігурацію налаштовано неправильно. Це результат обчислень, і в цьому посібнику пояснюється чому.

Чому розмір моделі визначає вимоги до машини

Генерація зображення виконує цикл денойзингу. Під час рендерингу на 30 кроків повна модель проходить над зображенням 30 разів, і на кожному кроці зчитуються всі ваги. SDXL у режимі half precision займає приблизно 6.9 GB ваг, тому до появи зображення через пам’ять проходить близько 200 GB даних.

GPU із 24 GB відеопам’яті (VRAM, пам’яттю, розпаяною поруч із графічним чипом) зчитує дані зі швидкістю сотні гігабайтів за секунду й одночасно вміщує всі 6.9 GB. CPU VPS зчитує дані із системної RAM зі швидкістю десятки гігабайтів за секунду та не має спеціалізованого матричного апаратного забезпечення для згорток, тому той самий цикл виконується на один-два порядки повільніше. Це той самий аргумент щодо пропускної здатності пам’яті, який визначає швидкодію текстових моделей. Його варто розглядати разом із коли VPS із GPU справді виправдовує витрати.

Генерація зображень відрізняється від генерації тексту одним важливим аспектом. Чат-модель передає токени потоково, тому повільна машина все одно здається придатною до роботи: слова з’являються під час читання. Зображення з’являється лише після завершення останнього кроку. Повільна робота означає, що вам доводиться дивитися на індикатор виконання.

Апаратна градація з реальними числами

У блоці нижче наведено типові показники для одного зображення SDXL із роздільною здатністю 1024x1024, 30 кроками та семплером Euler станом на July 2026. Розглядайте їх як порядок величини. Вони залежать від семплера, кількості кроків і роздільної здатності.

ChartOne SDXL image, 1024x1024, 30 steps (typical, July 2026)
The data behind this chart
[
  {
    "label": "8 vCPU VPS, no GPU",
    "seconds_per_image": 780
  },
  {
    "label": "8GB VRAM GPU",
    "seconds_per_image": 32
  },
  {
    "label": "12GB VRAM GPU",
    "seconds_per_image": 18
  },
  {
    "label": "24GB VRAM GPU",
    "seconds_per_image": 9
  }
]

Для CPU значення становить 780 секунд, тобто приблизно тринадцять хвилин. Для карти на 24 GB — 9 секунд. Саме за цей розрив ви платите.

Інтерпретуйте цю градацію так. Нижче 8 GB VRAM SDXL усе ще працює, оскільки ComfyUI автоматично вивантажує шари до системної RAM і може працювати навіть із картою, що має лише 1 GB. Вивантаження сповільнює кожен крок, тому карта на 6 GB дає результат ближче до однієї хвилини на зображення, ніж до тридцяти секунд. За наявності 8 GB базова модель вміщується в пам’яті, і рендеринг працює стабільно. За наявності 12 GB можна одночасно завантажити один або два ControlNet разом із checkpoint без вивантаження. За наявності 24 GB можна запускати SDXL, refiner і upscaling в одному workflow, а також почати навчати адаптери LoRA, для чого потрібно значно більше пам’яті, ніж для генерації.

Що CPU VPS може і чого не може

Він може більше, ніж очікують, і менше, ніж обіцяє маркетинг. Чітко визначте межу.

CPU VPS може встановити ComfyUI, обслуговувати вебінтерфейс, зберігати бібліотеку моделей, запускати чергу та генерувати зображення взагалі без GPU. Для Stable Diffusion 1.5 у роздільній здатності 512x512 і з 20 кроками на 8 сучасних vCPU та 16 GB RAM одне зображення генеруватиметься приблизно від 60 до 150 секунд. Для пакетного завдання, яке виконується протягом ночі, або для endpoint із невеликим обсягом запитів, що працює через чергу, цього справді достатньо.

CPU VPS не підходить для інтерактивної роботи. Ітеративне налаштування prompt означає двадцять рендерів за годину, а якщо кожен триває тринадцять хвилин, ви отримаєте лише чотири. Він також не підходить для навчання. LoRA fine-tuning на CPU вимірюється днями, а не годинами, тому вважайте його недоступним.

Правило щодо пам’яті для режиму лише CPU відрізняється від правила для GPU. Ваги завантажуються в системну RAM, тому потрібен обсяг, що дорівнює розміру моделі, плюс робочий простір: приблизно 16 GB RAM для SDXL і приблизно 8 GB для SD 1.5. На сервері з 4 GB ComfyUI запуститься, але під час першого рендеру процес буде завершено out-of-memory killer. У результаті процес зникне з Killed у dmesg, без traceback від Python.

Встановлення ComfyUI на машині з GPU

Це команди з upstream. Почніть із чистого встановлення Ubuntu 24.04, де драйвер NVIDIA вже встановлено. Спочатку перевірте драйвер, оскільки без цієї перевірки всі подальші помилки виглядатимуть однаково.

nvidia-smi

Команда має вивести таблицю з вашою відеокартою та версією CUDA. command not found або NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver означає, що драйвер відсутній або модуль ядра не завантажився після оновлення. Виправте це перед продовженням, оскільки ComfyUI може непомітно перейти на CPU, і ви звинуватите в цьому програмне забезпечення.

sudo apt update
sudo apt install -y git python3-venv python3-pip wget
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt

Віртуальне середовище — не необов’язкова рекомендація. PyTorch встановлює велике дерево залежностей, а встановлення його системно на сервері, де працюють інші компоненти, може порушити їхню роботу. Перш ніж продовжувати, перевірте, чи бачить PyTorch відеокарту.

python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

True разом із назвою вашої відеокарти означає, що стек працює. False означає, що встановлений wheel несумісний із драйвером. Зазвичай це трапляється, коли в кеші вже є CPU-only wheel для torch. Повторіть встановлення з наведеним вище index URL.

Отримайте модель і сплануйте місце на диску

ComfyUI не містить ваг моделей. Файли checkpoint зберігайте в models/checkpoints, файли VAE — у models/vae, а адаптери LoRA — у models/loras.

cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors

Завжди надавайте перевагу .safetensors, а не .ckpt. Файл .ckpt є серіалізованим об’єктом Python, і його завантаження виконує код від автора цього файлу. Формат safetensors містить лише тензори, тому шкідливий файл не може виконати код.

Про сховище часто забувають. Один базовий checkpoint SDXL займає 6.94 GB. Refiner займає ще 6 GB. Одна модель ControlNet займає від 1.4 до 2.5 GB, апскейлер — від 60 до 350 MB, а LoRA — від 20 до 400 MB. Якщо ви регулярно працюєте з цим інструментом, протягом тижня завантажите ще одну або дві базові моделі. Виділіть 100 GB дискового простору для робочої інсталяції та стежте також за каталогом результатів: PNG-файли розміром 1024x1024 займають від 1 до 2 MB кожен, а незавершений пакетний запуск непомітно заповнює невеликий диск. Розмістіть models/ і output/ на томі, розмір якого можна збільшити, а файли workflow у форматі JSON резервно копіюйте за допомогою засобу на кшталт шифрованих інкрементних резервних копій в об’єктне сховище. Ваги моделей можна завантажити повторно. Налаштовані вами workflow — ні.

Запустіть його та забезпечте безпечний доступ

cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188

ComfyUI працює на порту 8188. На сервері лише з CPU додайте --cpu. Це примусово використовує режим CPU замість завершення роботи через відсутній пристрій CUDA.

Прив’яжіть сервіс до 127.0.0.1, а не до 0.0.0.0. ComfyUI не має сторінки входу та облікових записів користувачів. Будь-хто, хто отримує доступ до порту, може ставити завдання в чергу, читати всі згенеровані вами зображення та встановлювати custom nodes. Це дає змогу виконувати довільний код на сервері. Натомість підключайтеся до нього через SSH-тунель із вашого ноутбука.

ssh -N -L 8188:127.0.0.1:8188 you@your-server

Потім відкрийте http://127.0.0.1:8188 локально. Якщо потрібен повноцінний доступ для кількох користувачів, розмістіть перед ним reverse proxy з автентифікацією, а застосунок залиште прив’язаним до localhost. Ці самі міркування стосуються будь-якого self-hosted сервісу без автентифікації. Це стандартний підхід у розгортаннях Docker Compose на VPS.

Запускайте процес у systemd

Черга рендерингу, яка завершується після закриття сеансу SSH, не є сервісом. Створіть /etc/systemd/system/comfyui.service.

[Unit]
Description=ComfyUI
After=network-online.target

[Service]
User=comfy
WorkingDirectory=/home/comfy/ComfyUI
ExecStart=/home/comfy/ComfyUI/venv/bin/python main.py --listen 127.0.0.1 --port 8188
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyui

active (running) і рядок журналу To see the GUI go to: http://127.0.0.1:8188 означають, що сервіс працює. Зверніть увагу: ExecStart безпосередньо вказує інтерпретатор у віртуальному середовищі, оскільки systemd не виконує профіль оболонки, тому activate не відбувається.

Прагматична рекомендація залежно від бюджету

Якщо ви хочете спробувати генерацію зображень і вартість важливіша за швидкість, виберіть CPU VPS із 16 GB RAM, запускайте SD 1.5 у роздільній здатності 512x512 і прийміть час генерації в одну-дві хвилини на зображення. Це чесний варіант для початку, який коштує лише частину вартості будь-якої конфігурації з підключеним GPU. Це також оптимальне місце для розміщення бібліотеки моделей і workflow, поки ви визначаєтеся з подальшою конфігурацією.

Якщо ви щодня змінюєте prompt, орендуйте GPU щонайменше з 12 GB VRAM погодинно в GPU cloud і вимикайте його, коли припиняєте роботу. Генерація зображень має нерівномірне навантаження, а щомісячна оплата простоюючого GPU — найпоширеніша причина зайвих витрат у цьому випадку. Зберігайте checkpoints у недорогому block storage і монтуйте їх.

Якщо ви обслуговуєте інших користувачів або навчаєте LoRA adapters, вам потрібно 24 GB VRAM і постійна машина. На цьому етапі той самий сервер зазвичай виправдовує себе також запуском локальної language model. Саме таку конфігурацію описано в розділі self-hosting LLM з Ollama.

Який би варіант ви не обрали, виміряйте продуктивність власної машини, перш ніж покладатися на опубліковані показники. Поставте в чергу той самий prompt п’ять разів і перегляньте показник секунд на ітерацію, який ComfyUI виводить у консолі. Це ваш фактичний рівень продуктивності.

FAQ

Чи можна запускати Stable Diffusion без GPU?

Так. ComfyUI працює з python main.py --cpu і генерує справжні зображення без графічної карти. Для Stable Diffusion 1.5 із роздільною здатністю 512x512 на 8 сучасних vCPU одне зображення створюється приблизно за 60–150 секунд, а для SDXL із роздільною здатністю 1024x1024 — за 10–20 хвилин. Цього достатньо для нічної пакетної обробки та кінцевих точок із невеликим навантаженням. Для ітеративного підбору промптів цього недостатньо, а навчання повністю недоступне.

Скільки VRAM потрібно для SDXL?

8 GB достатньо для стабільної роботи SDXL із роздільною здатністю 1024x1024. Якщо VRAM менше, ComfyUI автоматично вивантажує шари в системну RAM і все одно працює приблизно до 1 GB VRAM, але кожен крок із вивантаженням збільшує час обробки. 12 GB дають змогу одночасно завантажити ControlNet і checkpoint, а 24 GB достатньо для базової моделі, refiner та upscaling в одному workflow. Це також практичний мінімум для навчання адаптерів LoRA.

Скільки дискового простору потрібно моделям?

Лише базовий checkpoint SDXL займає 6.94 GB, а refiner додає ще приблизно 6 GB. Моделі ControlNet займають від 1.4 до 2.5 GB кожна, адаптери LoRA — від 20 до 400 MB, а upscalers — до 350 MB. Виділіть 100 GB для робочої інсталяції з кількома базовими моделями. Окремо контролюйте каталог результатів, оскільки PNG-файли 1024x1024 займають від 1 до 2 MB кожен.

Чи безпечно відкривати ComfyUI в публічному інтернеті?

Ні. ComfyUI не має жодної автентифікації, а система custom nodes встановлює та запускає Python-код через інтерфейс. Тому відкритий порт означає можливість віддаленого виконання коду на сервері. Прив’яжіть його до 127.0.0.1, підключайтеся через SSH-тунель із ssh -N -L 8188:127.0.0.1:8188 you@your-server і використовуйте перед ним reverse proxy з автентифікацією, якщо доступ потрібен більше ніж одній людині.

Чому мій render завершився без повідомлення про помилку?

Якщо процес зникає з Killed у dmesg без traceback від Python, це Linux out-of-memory killer, а не помилка ComfyUI. На сервері лише з CPU ваги моделей зберігаються в системній RAM. Тому для SDXL потрібно приблизно 16 GB, а для SD 1.5 — приблизно 8 GB, не враховуючи робочу пам’ять. Додайте RAM, збільште swap або використовуйте меншу модель і нижчу роздільну здатність.