Перейти к содержанию

Обзор развертывания ComfyUI на сервере

Предварительные требования и базовые условия

Для развертывания ComfyUI требуется серверная среда на базе Linux со следующими характеристиками:

  • Операционная система: Дистрибутив на базе Debian (например, Ubuntu, Debian).

  • Привилегии: Для установки пакетов, управления службами и настройки системы требуются права root или привилегии sudo.

  • Сеть: Сервер должен иметь исходящий доступ в интернет для клонирования репозиториев, загрузки пакетов Python и получения моделей ИИ.

  • Порты:

  • Порт 8188: Внутренний порт, используемый приложением ComfyUI.

  • Порт 443: Внешний порт, используемый для безопасного доступа по HTTPS через прокси Nginx.

FQDN конечной панели

Приложение доступно по следующему формату Полного Квалифицированного Доменного Имени (FQDN) в домене hostkey.in:

  • Формат: comfyui<Server ID>.hostkey.in:443

  • Зона: hostkey.in

  • Префикс: comfyui

  • Внешний путь: /

Структура файлов и каталогов

Приложение и его вспомогательные компоненты организованы в следующей структуре каталогов:

  • Исходный код приложения: /root/ComfyUI

  • Содержит основную кодовую базу ComfyUI, клонированную из официального репозитория.

  • Пользовательские данные и рабочие процессы: /root/ComfyUI/user/default

  • Рабочие процессы: /root/ComfyUI/user/default/workflows

  • Конфигурация: /root/ComfyUI/user/default/comfy.settings.json

  • Модели ИИ: /root/ComfyUI/models/checkpoints

  • Хранит загруженные файлы моделей, такие как flux1-dev-fp8.safetensors.

  • Конфигурация прокси Nginx: /root/nginx

  • Содержит файл Docker Compose (compose.yml) для обратного прокси и управления SSL.

  • Служба Systemd: /etc/systemd/system/comfyui.service

  • Определяет юнит службы для управления процессом ComfyUI.

Процесс установки приложения

Приложение ComfyUI устанавливается непосредственно на хост-систему с помощью следующих шагов:

  1. Обновление системы: Пакеты APT обновляются и обновляются до последней версии для обеспечения наличия последних патчей безопасности и зависимостей.

  2. Клонирование репозитория: Исходный код ComfyUI клонируется из https://github.com/comfyanonymous/ComfyUI.git в /root/ComfyUI.

  3. Настройка среды Python:

  4. Python 3 pip устанавливается через менеджер пакетов APT.

  5. PyTorch, TorchVision и TorchAudio устанавливаются с поддержкой CUDA 12.6 с помощью команды:

    /usr/bin/pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126
    

  6. Специфичные требования ComfyUI устанавливаются из файла requirements.txt, расположенного в каталоге приложения.

  7. Развертывание моделей:

  8. Модель Flux (flux1-dev-fp8.safetensors) загружается с Hugging Face в каталог контрольных точек (checkpoints).

  9. Пользовательский файл рабочего процесса (flux1-dev-fp8.json) развертывается в каталоге рабочих процессов.

  10. Конфигурация:

  11. Файл comfy.settings.json генерируется с настройками по умолчанию, включая язык интерфейса, установленный на английский (en), и включенное новое меню.

Права доступа и безопасность

Реализованы меры безопасности для ограничения доступа и управления сетевым трафиком:

  • Модификация файла Hosts: IP-адрес 5.180.174.199 сопоставлен с huggingface.co в /etc/hosts для облегчения загрузки моделей.

  • Межсетевой экран (Firewall): Система полагается на обратный прокси Nginx для обработки внешнего трафика на порту 443, в то время как внутреннее приложение слушает порт 8188.

  • Контекст пользователя: Приложение работает от имени пользователя root через службу Systemd.

Контейнеры Docker и их развертывание

Для обработки терминации SSL и маршрутизации развернут обратный прокси на базе Docker. Развертывание использует Docker Compose:

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Метод развертывания: Docker Compose

  • Расположение файла Compose: /root/nginx/compose.yml

  • Конфигурация службы:

  • Политика перезапуска: unless-stopped

  • Режим сети: host

  • Переменные окружения:

    • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com
  • Томы (Volumes):

    • nginx_secrets: Монтирован в /etc/letsencrypt для хранения SSL-сертификатов.

    • /data/nginx/user_conf.d: Монтирован в /etc/nginx/user_conf.d для пользовательских конфигураций Nginx.

Прокси-серверы

Контейнер Nginx действует как обратный прокси для обеспечения безопасного доступа к приложению ComfyUI:

  • SSL/TLS: Автоматически управляется Certbot внутри контейнера Nginx.

  • Маршрутизация:

  • Внешний трафик на порту 443 маршрутизируется на внутреннюю службу ComfyUI на порту 8188.

  • Внешний путь установлен как /.

  • Конфигурация: Пользовательские конфигурации Nginx хранятся в /data/nginx/user_conf.d и монтируются в контейнер.

Настройки прав доступа

Права доступа к файлам и каталогам настроены следующим образом:

  • Файл службы ComfyUI: /etc/systemd/system/comfyui.service установлен в 0644 с владением root.

  • Каталог рабочих процессов: /root/ComfyUI/user/default/workflows установлен в 0755.

  • Файл рабочего процесса: /root/ComfyUI/user/default/workflows/flux1-dev-fp8.json установлен в 0644.

  • Каталог Nginx: /root/nginx установлен в 0644 с владением root.

  • Файл Compose: /root/nginx/compose.yml установлен в 0644 с владением root.

Расположение файлов конфигурации и данных

Ключевые файлы конфигурации и места хранения данных приведены ниже:

Файл или каталог Путь Описание
Исходный код приложения /root/ComfyUI Основная кодовая база ComfyUI
Файл настроек /root/ComfyUI/user/default/comfy.settings.json Предпочтения пользователя и настройки интерфейса
Файл рабочего процесса /root/ComfyUI/user/default/workflows/flux1-dev-fp8.json Определение рабочего процесса по умолчанию
Контрольные точки моделей /root/ComfyUI/models/checkpoints Хранилище моделей ИИ
Служба Systemd /etc/systemd/system/comfyui.service Определение службы для ComfyUI
Nginx Compose /root/nginx/compose.yml Конфигурация Docker Compose для прокси

Доступные порты для подключения

Для приложения настроены следующие порты:

  • Порт 8188: Внутренний порт для веб-интерфейса ComfyUI (не открыт напрямую для публичного интернета).

  • Порт 443: Внешний порт HTTPS, управляемый прокси Nginx для безопасного доступа пользователей.

Запуск, остановка и обновление

Приложение ComfyUI управляется как служба Systemd. Используйте следующие команды для управления службой:

  • Запуск службы:

    systemctl start comfyui
    

  • Остановка службы:

    systemctl stop comfyui
    

  • Перезапуск службы:

    systemctl restart comfyui
    

  • Включение автозапуска при загрузке:

    systemctl enable comfyui
    

  • Проверка статуса службы:

    systemctl status comfyui
    

Для обновления приложения исходный код в /root/ComfyUI должен быть обновлен вручную (например, с помощью git pull), при необходимости переустановлены зависимости, и служба перезапущена.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×