- Updated the `gpu-rent` logic to ensure the `IsInstalled` flag is accurately set based on the presence of ComfyUI, preventing conflicts during installation. - Improved the handling of the `/mnt/swarm_data` directory to skip creation if it does not exist, enhancing robustness in provisioning. - Added tests to validate the new installation state checks and ensure proper diagnostics during the installation process, including scenarios for clearing and setting the `IsInstalled` flag.
4.8 KiB
SwarmUI на GPU-сервере
Репозиторий: mcmonkeyprojects/SwarmUI.
Без Docker. На VM процесс слушает 7801 на loopback (launch-linux.sh). На ноутбуке туннель — 17801.
Чего нет
- Docker, nvidia-container-toolkit, образа на Docker Hub.
- Порта 7860 (это Automatic1111).
- Зеркала локального SwarmUI. С ноутбука едут только деревья приложения: local-folders.md. Первый Civitai-seed — models.md.
Bootstrap (один раз на boot volume)
- Образ Selectel Ubuntu 24.04 LTS GPU Driver 580 (без Docker в имени, см. selectel.md).
- Git clone SwarmUI в
/opt/swarmui. .NET —launchtools/linux-dotnet-install.sh(SDK 8 и 10, как в доке SwarmUI). - Bind-mounts с data volume в дерево
/opt/swarmui— таблица в architecture.md. - Clone git-расширений из манифеста (extensions.md), если файл не пустой.
- Word-list autocomplete в
Data/AutocompletionsиDefaultUser.AutoComplete.Source(autocomplete.md). - Если есть Civitai-токен и манифест моделей: seed весов до первого старта SwarmUI; иначе — дефолтная модель установщика.
- Push непустых
Models//Wildcards//CustomWorkflows/. - systemd unit
swarmui:./launch-linux.sh --launch_mode none --host 127.0.0.1 --port 7801. - GPU probe →
/mnt/swarm_data/.gpu-rent-gpu.json(VRAM / compute cap / tier) — до старта UI; Ollama читает его при install. - Старт SwarmUI → headless InstallConfirmWS (ComfyUI в
dlbackend, models=none — веса уже с Civitai) → seed LLM → idle-killer → wait backend ready (running;empty/loading≠ ready; SwarmUIidle= бэкенды спят, не «готово»). - Perf tune после Idle —
triton+sageattentionв Comfy venv и--use-sage-attentionвData/Backends.fds(маркер.gpu-rent-perf-tuned; повтор при смене GPU). - Авторизация SwarmUI включена, токен в
Dataна диске. - Один snapshot boot volume
gpu-rent-boot-ok, если ещё нет.
Рестарт UI: systemctl restart swarmui, не docker restart.
ComfyUI
Первый запуск качает backend в /opt/swarmui/dlbackend (это bind на data volume). Иначе каждый recreate потеряет часы.
gpu-rent: после systemctl start swarmui вызывается headless InstallConfirmWS (backend=comfyui, models=none), если GetCurrentStatus ещё empty. IsInstalled: true пишется только когда Comfy уже на диске; на первом старте (или если прошлый up оставил флаг без dlbackend/ComfyUI) флаг сбрасывается — иначе Swarm отвечает Server is already installed! и не клонирует Comfy. Без этого UI отвечает HTTP 200, а Comfy/torch так и не появляются — раньше wait_backend_idle ошибочно считал empty = Idle.
Скорость без потери качества (gpu-rent): после Idle backend, на GPU с compute capability ≥ 8.0 и ≥16 GiB VRAM — SageAttention. Performance.AllowGpuSpecificOptimizations у Swarm по умолчанию уже включает --fast для 30xx+. Если venv ещё не появился — маркер без pip_ok, догонит на следующем up.
Пока CUDA/ComfyUI поднимаются, UI уже может отвечать. Для MCP и /API/ — рано: ready после Idle backend.
Доступ с ноутбука
Пока запущен gpu-rent tunnel:
| Что | URL |
|---|---|
| UI | http://127.0.0.1:17801 |
| HTTP API | http://127.0.0.1:17801/API/ |
| MCP | http://127.0.0.1:17801/mcp |
Локальный инстанс на 7801 продолжает жить. В Cursor MCP на время сессии переключают на 17801 (вручную по сниппету CLI).
Без туннеля API с ноутбука недоступен: 7801 на VM не опубликован в интернет.
Чего не делать
chmod -R 777на Models.- Слушать 7801 на
0.0.0.0. - Ставить Docker «на всякий случай».
- Считать Nova
ACTIVE= можно генерировать. apt upgradeядра (ломает nvidia-smi).