ComfyUI на арендованном GPU: запуск, модели и типичные отказы
Чем аренда отличается от локального запуска: временный диск, отсутствие аутентификации в ComfyUI и урезанные права Manager на нелокальном слушателе. Установка по официальной инструкции, раскладка моделей по каталогам и разбор отказов.
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, fp8 | models/checkpoints | Load Checkpoint |
| Раздельный трансформер Flux | models/diffusion_models (устаревшее models/unet) | Load Diffusion Model |
| Текстовые энкодеры T5 и CLIP | models/text_encoders (устаревшее models/clip) | DualCLIPLoader |
| VAE отдельным файлом | models/vae | Load VAE |
| LoRA | models/loras | Load LoRA |
| ControlNet | models/controlnet | Load ControlNet Model |
Ключевая развилка проходит по Flux. Сборка «всё в одном файле» кладётся в checkpoints и грузится обычным Load Checkpoint. Раздельные веса — это уже три разных каталога, и Load Checkpoint их не увидит принципиально:
| Файл | Куда | Размер |
|---|---|---|
flux1-dev-fp8.safetensors | checkpoints | 17.25 ГБ |
flux1-dev.safetensors | diffusion_models | 23.80 ГБ |
t5xxl_fp16.safetensors | text_encoders | 9.79 ГБ |
clip_l.safetensors | text_encoders | 0.25 ГБ |
ae.safetensors | vae | 0.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 base | 6.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» может не дать эффекта вовсе.
Что работает предсказуемо:
- Снизить разрешение до штатного — 1024×1024 для SDXL и Flux.
- Поставить батч в единицу.
--reserve-vram 1— явно зарезервировать гигабайт под систему, если на карте есть что-то ещё.--novram, когда--lowvramне помог; следующая ступень —--cpu, но она превращает генерацию в фоновую задачу на часы.- Взять квантованную сборку вместо 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