ComfyUI на арендованном GPU: запуск, модели и типичные отказы

Чем аренда отличается от локального запуска: временный диск, отсутствие аутентификации в ComfyUI и урезанные права Manager на нелокальном слушателе. Установка по официальной инструкции, раскладка моделей по каталогам и разбор отказов.

YouGPU Team 7 мин

TL;DR — Кратко:

  • В аргументах ComfyUI нет ни одного флага аутентификации. Запуск с --listen открывает интерфейс всем, кто знает адрес; штатный доступ снаружи — SSH-туннель.
  • Модели раскладываются по разным каталогам: all-in-one идёт в models/checkpoints, а раздельные веса Flux — в diffusion_models, text_encoders и vae.
  • ComfyUI-Manager сам режет установку нод, когда слушатель нелокальный. Лечится параметром network_mode, а не переустановкой.

Инструкции по ComfyUI написаны под домашнюю машину: поставили, открыли 127.0.0.1:8188, положили модели в папку. На арендованном сервере половина шагов ломается, причём не там, где ожидается.

Три вещи меняются сразу. Диск временный, и скачанные модели исчезают вместе с инстансом. Интерфейс нужно как-то открыть снаружи, а встроенной аутентификации в ComfyUI нет. И ComfyUI-Manager, увидев нелокальный адрес, начинает отказывать в установке нод — это не поломка, а его штатное поведение.

Ниже — установка по официальной инструкции, раскладка моделей по каталогам с проверкой по исходникам и разбор отказов, которые дают именно аренда, а не сам ComfyUI.

Что меняет аренда

ОтличиеКак проявляетсяЧто делать
Диск временныйПосле остановки инстанса моделей нет, качать зановоСкрипт предзагрузки, --base-directory на внешний диск
Нет аутентификации--listen открывает UI любому, кто знает адрес и портSSH-туннель, интерфейс остаётся на 127.0.0.1
Слушатель нелокальныйComfyUI-Manager блокирует часть операций установкиnetwork_mode = personal_cloud в config.ini
Время идёт по тарифуСкачивание 34 ГБ весов оплачивается как работа картыПредзагрузка в фоне, а не вручную через интерфейс

Дальше по порядку.

Установка

Предполагаем арендованный сервер на Ubuntu с рабочими драйверами: nvidia-smi показывает таблицу. Установка идёт по официальной инструкции ComfyUI.

Версии, которые проект называет поддерживаемыми, стоит соблюдать: Python 3.13 в README отмечен как «very well supported», 3.14 работает, но часть кастомных нод на нём ломается.

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
source venv/bin/activate

PyTorch ставится отдельно и раньше остальных зависимостей, иначе pip подтянет сборку без CUDA:

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt

Отдельный шаг для менеджера нод. В текущей версии ComfyUI-Manager встроен в ядро и включается флагом, а не клонируется в custom_nodes:

pip install -r manager_requirements.txt

Проверка перед запуском — то же, что и для любого контейнера с CUDA: карта должна быть видна изнутри окружения.

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

Если ответ False, дальше идти бессмысленно: генерация уйдёт на процессор. Разбор того, как пробрасывается CUDA при контейнерном запуске, есть в гайде по Docker и NVIDIA Container Toolkit.

Доступ снаружи: почему --listen не решение

Первое, что делают на арендованном сервере, — запускают с --listen, чтобы открыть интерфейс в браузере. Это работает и это плохая идея.

По умолчанию ComfyUI слушает 127.0.0.1 на порту 8188. Флаг --listen без аргумента переводит его на 0.0.0.0,::, то есть на все интерфейсы — это прописано в описании самого аргумента.

Проблема в том, что защищать открытый порт нечем. В списке аргументов ComfyUI нет ни одного флага аутентификации: есть --tls-keyfile и --tls-certfile для шифрования канала, есть --multi-user для раздельного хранения пользовательских данных, но пароля или токена нет. Кто открыл адрес — тот работает с вашей картой и вашими файлами.

Рабочий вариант — оставить ComfyUI на локальном адресе и пробросить порт через SSH со своей машины:

ssh -N -L 8188:127.0.0.1:8188 user@your-instance-ip

После этого интерфейс открывается на http://127.0.0.1:8188 уже локально, а на сервере порт наружу не смотрит. Запуск при этом самый обычный:

python main.py --disable-auto-launch

--disable-auto-launch отключает попытку открыть браузер на сервере, где браузера нет.

Куда класть модели

Второй по частоте отказ: модель скачана, а нода её не видит. Причина почти всегда в каталоге — ComfyUI ищет разные типы весов в разных местах, и имена каталогов заданы в folder_paths.py.

Что кладёмКаталогНода-загрузчик
All-in-one чекпоинт SD 1.5, SDXL, fp8models/checkpointsLoad Checkpoint
Раздельный трансформер Fluxmodels/diffusion_models (устаревшее models/unet)Load Diffusion Model
Текстовые энкодеры T5 и CLIPmodels/text_encoders (устаревшее models/clip)DualCLIPLoader
VAE отдельным файломmodels/vaeLoad VAE
LoRAmodels/lorasLoad LoRA
ControlNetmodels/controlnetLoad ControlNet Model

Ключевая развилка проходит по Flux. Сборка «всё в одном файле» кладётся в checkpoints и грузится обычным Load Checkpoint. Раздельные веса — это уже три разных каталога, и Load Checkpoint их не увидит принципиально:

ФайлКудаРазмер
flux1-dev-fp8.safetensorscheckpoints17.25 ГБ
flux1-dev.safetensorsdiffusion_models23.80 ГБ
t5xxl_fp16.safetensorstext_encoders9.79 ГБ
clip_l.safetensorstext_encoders0.25 ГБ
ae.safetensorsvae0.34 ГБ

Размеры сверены с репозиториями Comfy-Org/flux1-dev, Comfy-Org/stable-diffusion-3.5-fp8 и black-forest-labs/FLUX.1-dev 19 августа 2026 года. Сколько из этого поместится в вашу карту, разобрано в справочнике по VRAM для Stable Diffusion, SDXL и Flux.

Как не качать это заново каждый запуск

Если к инстансу подключается отдельный диск, переживающий пересоздание, переносите на него весь рабочий каталог целиком:

python main.py --base-directory /mnt/data/comfy

Флаг переводит models, custom_nodes, input, output, temp и user в указанную папку. Альтернатива, когда переносить нужно только модели, — файл extra_model_paths.yaml: скопируйте extra_model_paths.yaml.example, укажите base_path на внешний каталог и подключите через --extra-model-paths-config.

Если постоянного диска нет, остаётся скрипт предзагрузки. Считать его стоит не в гигабайтах, а в деньгах.

Сколько стоит скачать модели

Расчёт с явными допущениями, поменяйте их под свои условия. Берём канал 500 Мбит/с, то есть 62.5 МБ/с, и карту RTX A6000 по 82.79 ₽/час — минимальное предложение каталога на 19 августа 2026 года, то есть 1.38 ₽ за минуту.

НаборОбъёмВремяСтоимость простоя
SDXL base6.94 ГБ1.9 мин2.6 ₽
Flux fp8, один файл17.25 ГБ4.6 мин6.3 ₽
Flux раздельно, полный комплект34.18 ГБ9.1 мин12.6 ₽

Суммы небольшие, и вывод из таблицы не про них. Он про то, что девять минут карта оплачивается и ничего не считает, и повторяется это при каждом запуске инстанса. Поэтому скачивание стоит запускать скриптом сразу после старта, параллельно с установкой зависимостей, а не руками через интерфейс после того, как ComfyUI поднялся.

Общий расчёт того, при какой загрузке аренда выгоднее покупки карты, есть в разборе TCO.

Типичные отказы

ComfyUI-Manager отказывается ставить ноды

Симптом: локально всё ставилось, на арендованном сервере кнопки установки не срабатывают. Это не поломка.

Manager различает локальный и нелокальный слушатель и на нелокальном урезает права. В его документации есть отдельный режим для таких случаев — в config.ini задаётся network_mode:

network_mode = personal_cloud

Значение personal_cloud описано как режим для облачных окружений, где строгие ограничения не нужны. Отдельно от уровня безопасности идут два флага: allow_git_url_install для установки нод по произвольному git-адресу и allow_pip_install для установки пакетов. Оба по умолчанию False, и уровень безопасности на них больше не влияет.

Включайте это осознанно и только вместе с SSH-туннелем. Открытый наружу интерфейс с разрешённой установкой произвольных пакетов — это удалённое выполнение кода на вашем сервере.

Torch not compiled with CUDA enabled

Означает, что установилась сборка PyTorch без CUDA. Лечится переустановкой в порядке из README: сначала снять текущую версию, потом поставить нужную.

pip uninstall torch
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130

Чаще всего причина в том, что pip install -r requirements.txt отработал раньше и подтянул torch по умолчанию.

Нода не видит скачанный файл

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

OOM при генерации

Про --lowvram стоит знать одну деталь: в описании аргумента сказано, что при включённом динамическом управлении памятью он не делает ничего, а иначе переносит текстовые энкодеры на процессор. То есть привычный совет «добавьте --lowvram» может не дать эффекта вовсе.

Что работает предсказуемо:

  1. Снизить разрешение до штатного — 1024×1024 для SDXL и Flux.
  2. Поставить батч в единицу.
  3. --reserve-vram 1 — явно зарезервировать гигабайт под систему, если на карте есть что-то ещё.
  4. --novram, когда --lowvram не помог; следующая ступень — --cpu, но она превращает генерацию в фоновую задачу на часы.
  5. Взять квантованную сборку вместо bf16. Разбор форматов и их размеров — в справочнике по VRAM.

Процесс умирает при закрытии SSH

Запускайте под tmux или как systemd-юнит. При обрыве соединения обычный python main.py уходит вместе с сессией, а незавершённая очередь генерации теряется.

Готовое окружение или ручная установка

Ручной путь имеет смысл, когда нужен свой набор нод, конкретная версия torch или нестандартная раскладка моделей. Установка с нуля занимает время, и на арендованной карте оно оплачивается.

Второй вариант — запустить ComfyUI как готовое приложение, с уже собранным окружением. Тарифы на 19 августа 2026 года: A30 на 24 ГБ — 52.68 ₽/час, RTX A6000 на 48 ГБ — 73.11 ₽/час, A100 80GB — 197.41 ₽/час. Ограничение здесь то же, что и при ручном запуске: сервер временный, и после остановки данные на диске удаляются, поэтому воркфлоу выгружайте в JSON, а результаты сохраняйте к себе.

Выбор между вариантами простой по критерию: если вы меняете состав нод от задачи к задаче, ставьте руками и держите модели на отдельном диске. Если задача повторяемая и окружение стандартное, готовый запуск экономит те самые минуты установки.

Что в итоге

ComfyUI на аренде ломается в трёх местах, и ни одно из них не относится к самому ComfyUI.

Аутентификации у него нет — это видно по списку аргументов, и --listen наружу без туннеля означает открытую карту. Модели лежат в разных каталогах в зависимости от того, раздельные веса или all-in-one, и Load Checkpoint не увидит файл из diffusion_models. Manager на нелокальном адресе урезает права по умолчанию, и это чинится строчкой в config.ini, а не переустановкой.

Диск временный в любом случае, поэтому первое, что стоит настроить, — предзагрузка моделей скриптом или --base-directory на постоянный том. Девять минут скачивания при каждом старте — единственная статья расходов, которую здесь реально можно убрать.

Проверить связку целиком дешевле всего на почасовой аренде: под SDXL хватает 24 ГБ, под Flux в bf16 нужно 48 ГБ.

Нужна карта под ComfyUI?

A30 на 24 ГБ под SDXL, RTX A6000 на 48 ГБ под Flux в bf16. Драйверы и CUDA настроены, оплата поминутная.

Запустить ComfyUI