Генерация изображений на собственном GPU-сервере означает отсутствие логов запросов у третьей стороны, отсутствие фильтров контента, которые вы не выбирали, и стоимость, не зависящую от количества изображений. В этом руководстве мы настроим ComfyUI, интерфейс на основе узлов для Stable Diffusion и подобных моделей, на Ubuntu.
Выберите GPU
Ограничивающий фактор — видеопамять. 8 ГБ комфортно хватает для SD 1.5, 12–16 ГБ хорошо подходят для SDXL, а 24 ГБ дают запас для новых, более крупных моделей и высоких разрешений. Если не уверены, прочтите потребительские и серверные GPU. Также оставьте около 50 ГБ диска, так как файлы моделей велики.
Шаг 1: проверьте драйвер
nvidia-smi
Если команда выводит ваш GPU, драйвер работает. Если нет, установите рекомендуемый драйвер командой sudo ubuntu-drivers autoinstall и перезагрузитесь.
Шаг 2: установите ComfyUI
sudo apt update && sudo apt install -y git python3-venv
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
Выберите индекс колёс CUDA в соответствии с версией, которую PyTorch рекомендует для вашего драйвера. Если приведённая выше команда устарела, загляните на их страницу установки.
Шаг 3: добавьте модель
Скачайте чекпойнт, на использование которого у вас есть лицензия, в ComfyUI/models/checkpoints/. Прежде чем строить на нём продукт, прочтите лицензию модели на предмет коммерческого использования.
cd models/checkpoints
wget -O model.safetensors "https://example.com/path/to/model.safetensors"
Шаг 4: запустите в закрытом режиме
По умолчанию ComfyUI слушает только localhost, и это именно то, что нужно. Подключайтесь через SSH-туннель.
python main.py --listen 127.0.0.1 --port 8188
ssh -L 8188:127.0.0.1:8188 user@your-server
Откройте http://127.0.0.1:8188 на своём компьютере. Не открывайте порт в интернет: по умолчанию авторизации нет.
Шаг 5: обеспечьте постоянную работу
sudo tee /etc/systemd/system/comfyui.service > /dev/null <<'UNIT'
[Unit]
Description=ComfyUI
After=network-online.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/ComfyUI
ExecStart=/home/ubuntu/ComfyUI/venv/bin/python main.py --listen 127.0.0.1
Restart=on-failure
[Install]
WantedBy=multi-user.target
UNIT
sudo systemctl daemon-reload && sudo systemctl enable --now comfyui
Измените пользователя и пути в соответствии с вашим сервером.
Стоимость и конфиденциальность по сравнению с облачными сервисами
- Стоимость: почасовой GPU стоит одинаково, делаете вы десять изображений или десять тысяч. Он выгоднее оплаты за каждое изображение при массовой генерации и проигрывает при редкой, поэтому останавливайте сервер, когда он простаивает.
- Конфиденциальность: запросы и результаты остаются на машине, которую вы контролируете, а оплатить можно в Monero или других монетах без удостоверения личности.
- Контроль: вы сами выбираете модель, сэмплер и настройки безопасности и сами отвечаете за то, как их используете.
О текстовых моделях на том же оборудовании читайте в статье Ollama и Open WebUI.