# Локальные папки приложения Все живут в корне gpu-rent. Одно правило: **пусто → ничего не синхронизируем**. Появился файл → на `up` (и по отдельной команде) едет инкремент по SHA256. С сервера лишнее не удаляем. | Локально | На 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` | Веса, картинки, воркфлоу в git не коммитить (`.gitignore` + `.gitkeep`). ## 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).