# SwarmUI на GPU-сервере Репозиторий: [mcmonkeyprojects/SwarmUI](https://github.com/mcmonkeyprojects/SwarmUI). **Без Docker.** На VM процесс слушает **7801** на loopback (`launch-linux.sh`). На ноутбуке туннель — **17801**. ## Чего нет - Docker, nvidia-container-toolkit, образа на Docker Hub. - Порта 7860 (это Automatic1111). - Зеркала **локального** SwarmUI. С ноутбука едут только деревья приложения: [local-folders.md](local-folders.md). Первый Civitai-seed — [models.md](models.md). ## Bootstrap (один раз на boot volume) 1. Образ Selectel **Ubuntu 24.04 LTS GPU Driver 580** (без Docker в имени, см. [selectel.md](selectel.md)). 2. Git clone SwarmUI в `/opt/swarmui`. .NET — `launchtools/linux-dotnet-install.sh` (SDK 8 и 10, как в доке SwarmUI). 3. Bind-mounts с data volume в дерево `/opt/swarmui` — таблица в [architecture.md](architecture.md). 4. Clone git-расширений из манифеста ([extensions.md](extensions.md)), если файл не пустой. 5. Word-list autocomplete в `Data/Autocompletions` и `DefaultUser.AutoComplete.Source` ([autocomplete.md](autocomplete.md)). 6. Если есть Civitai-токен и манифест моделей: seed весов **до** первого старта SwarmUI; иначе — дефолтная модель установщика. 7. Push непустых `Models/` / `Wildcards/` / `CustomWorkflows/`. 8. systemd unit `swarmui`: `./launch-linux.sh --launch_mode none --host 127.0.0.1 --port 7801`. 9. **GPU probe** → `/mnt/swarm_data/.gpu-rent-gpu.json` (VRAM / compute cap / tier) — до старта UI; Ollama читает его при install. 10. Старт SwarmUI → **headless InstallConfirmWS** (ComfyUI в `dlbackend`, models=none — веса уже с Civitai) → seed LLM → idle-killer → **wait backend ready** (`running`; `empty`/`loading` ≠ ready; SwarmUI `idle` = бэкенды спят, не «готово»). 11. **Perf tune после Idle** — `triton`+`sageattention` в Comfy venv и `--use-sage-attention` в `Data/Backends.fds` (маркер `.gpu-rent-perf-tuned`; повтор при смене GPU). Нужны `python3.12-dev`+gcc (ставим даже на light bootstrap); JIT прогревается на `up`, иначе флаг снимается — иначе первая генерация падает на `cuda_utils.c`. 12. Авторизация SwarmUI включена, токен в `Data` на диске. 13. Один snapshot boot volume `gpu-rent-boot-ok`, если ещё нет. Рестарт UI: `systemctl restart swarmui`, не `docker restart`. ## Пустая вкладка Models Веса лежат на data volume (`/mnt/swarm_data/Models`), SwarmUI смотрит в `/opt/swarmui/Models` через bind. Если bind отвалился, Generate всё ещё показывает последнюю модель (это JS), а сетка Models пустая. Сначала кнопка refresh на вкладке Models и F5. Если пусто — файлы не удалились, нужен remount: `gpu-rent up --yes` (после фикса не используется `umount -l` на живом процессе). ## 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 не опубликован в интернет. **Assistent** (если `requires: ollama` и runtime включён) грузится как SwarmUI extension с data volume. Глубокая отладка — не через публичный 7801, а через Debug sidecar `:17821` / `gpu-rent debug` ([cli.md](cli.md)). Personas / FTS: [extensions.md](extensions.md), [datasets/README](../datasets/README.md). ## Чего не делать - `chmod -R 777` на Models. - Слушать 7801 на `0.0.0.0`. - Ставить Docker «на всякий случай». - Считать Nova `ACTIVE` = можно генерировать. - `apt upgrade` ядра (ломает nvidia-smi).