ComfyUI на GPU-сервере: что понадобится
ComfyUI — движок с открытым исходным кодом (GPL-3.0) для моделей генерации изображений, видео, аудио и 3D, таких как Flux.2, Qwen Image, Wan 2.2 и LTX-Video 2.3: в браузере вы собираете воркфлоу из нод и ставите его в очередь на GPU. Чтобы запустить ComfyUI на удалённом GPU-сервере, установите в окружение Python сборку PyTorch для CUDA 13 (на AMD — для ROCm), клонируйте ComfyUI, запустите его на 127.0.0.1:8188 и откройте через SSH-туннель. Понадобятся драйвер NVIDIA серии 580 или новее и достаточный объём памяти GPU для моделей, которые вы загружаете.
Инструкция подходит для Ubuntu 22.04 и 24.04 — как на выделенном сервере, так и на облачном GPU-инстансе. Если при заказе вы выбрали ComfyUI на шаге «ПО», он уже установлен; это руководство описывает, как установить и запустить его самостоятельно.
| GPU | Память | Пропускная способность | GPU на сервер |
|---|---|---|---|
| RTX 5090 | 32 ГБ GDDR7 | 1,8 ТБ/с | 1, 2, 4 |
| L40S | 48 ГБ GDDR6 ECC | 864 ГБ/с | 1, 2, 4, 8 |
| RTX PRO 6000 | 96 ГБ GDDR7 ECC | 1,6 ТБ/с | 1, 2, 4, 8 |
От объёма памяти зависит, какие версии модели поместятся. Например, диффузионная модель Qwen-Image-2512 — это файл на 20,4 ГБ в FP8 и на 40,9 ГБ в BF16: файл FP8 помещается на все три карты, а файл BF16 — только на L40S и RTX PRO 6000. Веса, которые не помещаются, выгружаются в оперативную память системы, что снижает скорость. Рекомендуемые конфигурации — на странице GPU-серверы для генерации изображений и видео, а сравнение — в статье Лучший GPU для Stable Diffusion, Flux и ИИ-видео.
Установите ComfyUI на Ubuntu
Эти шаги повторяют ручную установку из README ComfyUI; выполняйте их от имени своего sudo-пользователя, а не от root. README требует сборку PyTorch для CUDA 13.0 или новее (cu130) на GPU NVIDIA начиная с 20-й серии, а это все GPU NVIDIA, которые мы сдаём в аренду. Wheel-пакеты PyTorch содержат собственные библиотеки CUDA, поэтому хосту нужен лишь драйвер серии 580 или новее (заметки о выпуске CUDA):
nvidia-smi # в заголовке должно быть CUDA Version: 13.0 или выше
Если это не так, сначала обновите драйвер (Драйверы NVIDIA и CUDA). Поддержку GPU Blackwell, таких как RTX 5090, RTX PRO 6000 и B200, PyTorch добавил в версии 2.7, в сборках для CUDA 12.8; используйте сборку cu130, как показано ниже, а не вариант CUDA 12.6, который тоже предлагает селектор на сайте PyTorch:
curl -LsSf https://astral.sh/uv/install.sh | sh # затем откройте новую оболочку, чтобы uv появился в PATH
uv venv --python 3.13 --seed --managed-python ~/comfy-env
source ~/comfy-env/bin/activate
git clone https://github.com/Comfy-Org/ComfyUI.git ~/ComfyUI
cd ~/ComfyUI
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt
pip install -r manager_requirements.txt # ComfyUI-Manager, см. ниже
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"
Ожидаемый вывод: версия, оканчивающаяся на +cu130, True и название GPU. Документация ComfyUI рекомендует Python 3.13; --seed добавляет pip, через который ComfyUI-Manager устанавливает зависимости кастомных нод. Альтернатива — comfy-cli (pip install comfy-cli, затем comfy install): он сам подбирает сборку PyTorch.
На AMD MI355X сначала настройте драйвер GPU (ROCm на MI355X) и вместо этого используйте строку для ROCm из README: pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.2. После этого torch.cuda.get_arch_list() должен содержать gfx950.
Загрузите модели на NVMe-диск
ComfyUI ищет модели каждого типа в отдельной папке внутри models/:
| Папка | Содержимое |
|---|---|
checkpoints | Чекпоинты «всё в одном», например SDXL |
diffusion_models (или unet) | Диффузионные модели, поставляемые отдельно, например Qwen Image |
text_encoders (или clip) | Текстовые энкодеры |
vae | VAE |
loras | Адаптеры LoRA |
upscale_models, controlnet | Апскейлеры и ControlNet |
Храните файлы на NVMe-диске для данных в /data (Хранилище и данные): так они не пострадают при переустановке ComfyUI. hf download воссоздаёт подпапки репозитория внутри --local-dir, поэтому скачивайте во временную папку, а затем перемещайте файлы. Пример — Qwen-Image-2512 из репозитория Comfy-Org с перепакованными файлами (Apache 2.0, около 30 ГБ в FP8):
curl -LsSf https://hf.co/cli/install.sh | bash # устанавливает команду hf
mkdir -p /data/models/{checkpoints,diffusion_models,text_encoders,vae,loras,upscale_models}
hf download Comfy-Org/Qwen-Image_ComfyUI \
split_files/diffusion_models/qwen_image_2512_fp8_e4m3fn.safetensors \
split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors \
split_files/vae/qwen_image_vae.safetensors \
--local-dir /data/models/incoming
cd /data/models
mv incoming/split_files/diffusion_models/* diffusion_models/
mv incoming/split_files/text_encoders/* text_encoders/
mv incoming/split_files/vae/* vae/
rm -rf incoming
При запуске ComfyUI читает extra_model_paths.yaml из своей папки (все ключи перечислены в extra_model_paths.yaml.example). Укажите в нём путь к диску; is_default ставит эти папки на первое место, в том числе для загрузок:
cat > ~/ComfyUI/extra_model_paths.yaml <<'EOF'
nvme:
base_path: /data/models/
is_default: true
checkpoints: checkpoints/
diffusion_models: diffusion_models/
text_encoders: text_encoders/
vae: vae/
loras: loras/
upscale_models: upscale_models/
EOF
Для репозиториев с ограниченным доступом, таких как black-forest-labs/FLUX.1-dev, нужно принять условия на странице модели, после чего понадобится токен: hf auth login или переменная окружения HF_TOKEN. Лицензии различаются: FLUX.1 [dev] распространяется по некоммерческой лицензии.
Запустите ComfyUI и обеспечьте его непрерывную работу
Сначала запустите его вручную, внутри tmux (см. Доступ по SSH):
source ~/comfy-env/bin/activate
cd ~/ComfyUI
python main.py --listen 127.0.0.1 --port 8188 --enable-manager
В журнале появится строка To see the GUI go to: http://127.0.0.1:8188. 127.0.0.1 и 8188 — значения по умолчанию, они указаны явно для наглядности. python main.py --help выводит все параметры; они также описаны на странице флагов запуска.
Чтобы ComfyUI снова запускался сам после сбоя или перезагрузки, используйте шаблонный юнит systemd: номер экземпляра — это номер GPU, а порт равен 8188 плюс этот номер. Сначала остановите копию, запущенную в tmux, и замените alice на имя своего пользователя:
mkdir -p /data/comfyui/output
sudo tee /etc/systemd/system/comfyui@.service >/dev/null <<'EOF'
[Unit]
Description=ComfyUI on GPU %i
Wants=network-online.target
After=network-online.target
[Service]
User=alice
WorkingDirectory=/home/alice/ComfyUI
# $$ передаёт оболочке символ $ как есть: GPU 0 слушает порт 8188, GPU 1 — порт 8189
ExecStart=/bin/sh -c 'exec /home/alice/comfy-env/bin/python main.py --listen 127.0.0.1 --port $$((8188 + %i)) --cuda-device %i --output-directory /data/comfyui/output/gpu%i --enable-manager'
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now comfyui@0
sudo journalctl -u comfyui@0 -f # журнал; Ctrl-C прекращает отслеживание
Каждый экземпляр сохраняет изображения в своей папке внутри /data/comfyui/output, поэтому два экземпляра никогда не запишут один и тот же файл.
Удалённый доступ: SSH-туннель или прокси с аутентификацией
У сервера ComfyUI нет аутентификации (заметки ComfyUI о самостоятельном хостинге): его API ставит воркфлоу в очередь, принимает загружаемые файлы и отдаёт ваши результаты любому, у кого есть к нему сетевой доступ. Держите его на 127.0.0.1 и подключайтесь одним из двух способов.
SSH-туннель: для вас и нескольких доверенных людей
# на вашем компьютере, затем откройте http://localhost:8188
ssh -N -L 8188:127.0.0.1:8188 gpu1
# два экземпляра: по одному -L на каждый порт
ssh -N -L 8188:127.0.0.1:8188 -L 8189:127.0.0.1:8189 gpu1
gpu1 — это запись host из раздела Доступ по SSH; строка LocalForward 8188 127.0.0.1:8188 в этой записи открывает туннель при каждом подключении.
Обратный прокси с TLS и паролем
Для доступа из браузера без SSH направьте DNS-имя на сервер и установите Caddy из его официального репозитория. Caddy получает TLS-сертификат, запрашивает пароль с помощью basic_auth, а также проксирует WebSocket-соединение, которое использует интерфейс:
caddy hash-password # введите длинный случайный пароль; команда выведет его bcrypt-хеш
sudo tee /etc/caddy/Caddyfile >/dev/null <<'EOF'
comfy.example.com {
basic_auth {
alice <paste-the-hash-here>
}
reverse_proxy 127.0.0.1:8188
}
EOF
sudo systemctl reload caddy
sudo ufw allow 80,443/tcp
Никогда не запускайте ComfyUI с флагом --listen без адреса — тогда он слушает все адреса (0.0.0.0 и ::), — и никогда не открывайте порт 8188 в файрволе. Официального Docker-образа у ComfyUI нет; если вы используете образ от сообщества, публикуйте порт как -p 127.0.0.1:8188:8188, потому что правила портов Docker обходят ufw (см. Контейнеры).
Запустите ComfyUI на нескольких GPU
По умолчанию воркфлоу выполняется на одном GPU. На сервере с 2, 4 или 8 GPU запускайте по одному экземпляру на каждый GPU: --cuda-device скрывает от каждого экземпляра остальные GPU, и у каждого свой порт и своя очередь. С шаблонным юнитом, описанным выше:
sudo systemctl enable --now comfyui@1 # GPU 1 на порту 8189; добавьте comfyui@2, @3 и так далее
nvidia-smi --query-gpu=index,memory.used,utilization.gpu --format=csv -l 5
Так четыре GPU выполняют четыре задачи одновременно. С мая 2026 года встроенная нода MultiGPU CFG Split (MultiGPU_WorkUnits) может также ускорить один воркфлоу, распределяя CFG-сэмплирование между одинаковыми GPU: поставьте её прямо перед сэмплером и выделите этому экземпляру несколько GPU (--cuda-device 0,1 или вовсе без этого флага). Её документация описывает конфигурации с двумя GPU и ускорение до 1,95× в зависимости от воркфлоу. Значение CFG должно быть больше 1, поэтому дистиллированные модели, которые сэмплируют с CFG 1, ничего не выигрывают; кроме того, каждый GPU загружает собственную копию модели (пул-реквест #7063): две карты не вместят модель, которая не помещается на одну.
Кастомные ноды через ComfyUI-Manager
ComfyUI-Manager устанавливает, обновляет и удаляет кастомные ноды, находит ноды, которых не хватает для воркфлоу, и сохраняет снимки вашей конфигурации. Он поставляется вместе с ComfyUI: установите manager_requirements.txt (это уже сделано выше) и запускайте ComfyUI с --enable-manager. Новый интерфейс Manager устанавливает только пакеты нод, опубликованные в Comfy Registry, который проверяет их на вредоносное поведение, и не устанавливает ноды по Git-ссылкам.
Кастомная нода — это код на Python, который выполняется с правами ComfyUI: он может читать ваши файлы, модели и токены. При установке ноды через Manager также устанавливаются её зависимости и запускается её установочный скрипт. В обновлении безопасности за январь 2025 года Comfy описывает вредоносные и уязвимые кастомные ноды. Устанавливайте только нужные пакеты от авторов, которым доверяете, и никогда не запускайте ComfyUI от root.
Пакеты, которых нет в реестре, устанавливаются вручную:
source ~/comfy-env/bin/activate
cd ~/ComfyUI/custom_nodes
git clone https://github.com/<author>/<pack>.git
pip install -r <pack>/requirements.txt
sudo systemctl restart 'comfyui@*' # все запущенные экземпляры
Чтобы обновить ComfyUI, переключитесь на тег последнего стабильного релиза; README предупреждает, что коммиты между релизами могут ломать кастомные ноды:
source ~/comfy-env/bin/activate
cd ~/ComfyUI
git fetch --tags
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
pip install -r requirements.txt -r manager_requirements.txt
sudo systemctl restart 'comfyui@*'Параметры памяти и FP8
Начинайте без флагов памяти. ComfyUI включает динамическое управление VRAM (dynamic VRAM) там, где оно поддерживается (на GPU NVIDIA — автоматически), и по мере необходимости перемещает веса между памятью GPU и оперативной памятью системы. Меняйте значения по умолчанию, только если для этого есть причина:
| Флаг | Действие | Когда использовать |
|---|---|---|
--highvram | Держит модели в памяти GPU, а не выгружает их после использования в память CPU | Ваши модели помещаются в память, как на RTX PRO 6000 |
--gpu-only | Хранит и выполняет всё на GPU, включая текстовые энкодеры | Всё помещается в память GPU |
--reserve-vram 4 | Резервирует указанное число ГБ для ОС и других программ | GPU используется и другой программой |
--fp8_e4m3fn-unet, --fp8_e4m3fn-text-enc | Хранят веса диффузионной модели или текстового энкодера в FP8 | Есть только 16-битный файл, и он не помещается |
--fast | Экспериментальные оптимизации, которые могут повлиять на качество или стабильность | Только для тестов |
--highvram и --gpu-only отключают динамическое управление VRAM, а --lowvram ничего не делает, пока оно включено. Веса в FP8 занимают вдвое меньше памяти, чем в BF16; если модель опубликована в FP8, как Qwen-Image-2512, документация ComfyUI рекомендует большинству пользователей именно этот файл.
Сделайте резервную копию воркфлоу и результатов до окончания срока
Если аренда не продлена, сервер останавливается в конце оплаченного месяца, а его диски очищаются. Модели можно скачать заново, вашу работу — нет. За несколько дней до даты окончания скопируйте с сервера:
/data/comfyui/output: сгенерированные изображения и видео. Если не запускать ComfyUI с--disable-metadata, он сохраняет воркфлоу внутри создаваемых файлов, поэтому при загрузке изображения восстанавливается весь его воркфлоу.~/ComfyUI/user: воркфлоу, сохранённые в интерфейсе, настройки и снимки ComfyUI-Manager.~/ComfyUI/input,extra_model_paths.yaml, юнит systemd и все обученные вами LoRA.
# с вашего компьютера
rsync -avhP gpu1:/data/comfyui/output/ ./comfyui/output/
rsync -avhP gpu1:ComfyUI/user/ ./comfyui/user/
Остальное скопируйте так же или в S3-совместимое хранилище через rclone, как показано в разделе Хранилище и данные. Чтобы перейти на более мощный GPU, закажите его в конфигураторе, установите на новом сервере ComfyUI, как описано выше, и перенесите эти папки, пока работают оба сервера.
Нужна помощь с этим руководством?
Расскажите нам о своём GPU, командах, которые вы выполнили, и результате, который получили, через форму обратной связи.
