# Локальные папки приложения Все живут в корне gpu-rent. **Одно правило:** пусто (только README / `.gitkeep`) → ничего не синхронизируем. Появился файл → на `up` (или отдельной командой) едет инкремент по SHA256. С сервера лишнее **не** удаляем. ```powershell # положил LoRA / wildcard / workflow локально .\gpu-rent.ps1 push # или просто следующий up .\gpu-rent.ps1 pull-output # картинки с VM → ./Output ``` | Локально | На VM | Направление | Обязательно | | --- | --- | --- | --- | | `Models/` | `/mnt/swarm_data/Models/` | push | да, если не пусто; см. [models.md](models.md) | | `Wildcards/` | `/mnt/swarm_data/Data/Wildcards/` | push | да, если не пусто | | `CustomWorkflows/` | `/mnt/swarm_data/CustomWorkflows/` → bind в ComfyUI CustomWorkflows | push | да, если не пусто | | `Output/` | `/mnt/swarm_data/Output/` | **pull**, опционально | нет; флаг `PULL_OUTPUT`; `stop --no-pull` отключает на этот раз | Веса, картинки, воркфлоу в git не коммитить (`.gitignore` + `.gitkeep`). ## Seed overlay (не `gpu-rent push`) Другой механизм — не SHA256-синк четырёх деревьев выше: | Локально | На VM | Когда | | --- | --- | --- | | `assistent-personas/` | `/mnt/swarm_data/Assistent/personas//` | `up` / `seed-personas`; см. [extensions.md](extensions.md) | | `datasets/civitai/search.jsonl` | `Assistent/civitai-examples.jsonl` | `up` / `seed-personas`, если файл есть; см. [datasets/README](../datasets/README.md) | ## Push (Models / Wildcards / CustomWorkflows) Как у моделей: нет содержимого кроме README/`.gitkeep` — skip. Новый или изменённый файл — SFTP. Метадата рядом с весами едет парой. Команда на все три дерева: `gpu-rent push`. Wildcards: `.txt` (одна строка — один вариант), как в доке SwarmUI `Data/Wildcards`. CustomWorkflows: JSON воркфлоу Comfy/Swarm. После заливки на живой UI — refresh, если API это умеет; иначе `systemctl restart swarmui` только если без refresh файлы не видны (spike). Пока идёт push крупных файлов — idle-killer на паузе. ## Pull Output (опционально) `PULL_OUTPUT=false` по умолчанию. Включить: `PULL_OUTPUT=true` или `gpu-rent pull-output`. Когда включено: - на **`stop`** — забрать с VM файлы, которых нет локально или чей sha другой; - на **`up`**, если VM уже жива и флаг включён — то же (подтянуть картинки с прошлой сессии, не дожидаясь stop). Пустой локальный `Output/` — норма. С сервера ничего не стираем. Не тащить гигабайты видео без нужды: только новые/изменённые. `gpu-rent stop --no-pull` — выключить pull на этот раз. Отдельная команда всегда: `gpu-rent pull-output` (нужны живая VM и SSH).