# Autocomplete промптов SwarmUI Официальная инструкция: [docs/Features/Autocompletions.md](https://github.com/mcmonkeyprojects/SwarmUI/blob/master/docs/Features/Autocompletions.md). **По умолчанию включено** (`AUTOCOMPLETE_ENABLED=true`): на bootstrap CLI качает `danbooru.csv` и прописывает источник в Settings **до** первого старта SwarmUI. Ничего руками делать не нужно. Выключить: `AUTOCOMPLETE_ENABLED=false` в `.env`. ## Поведение gpu-rent | Момент | Действие | | --- | --- | | Первый диск / файла ещё нет | Скачать с GitHub на VM в `/mnt/swarm_data/Data/Autocompletions/`. После `InstallConfirmWS` прописать `DefaultUser.AutoComplete.Source` (установщик затирает Settings) и при необходимости перезапустить SwarmUI | | Каждый последующий `up` (диск уже есть) | Спросить GitHub blob `sha` того же пути. Если sha изменился — скачать заново, заменить файл. Если `Source` в Settings пустой/`\\x` — снова прописать filename (не трогать, если пользователь выбрал другой файл). `systemctl restart swarmui` если csv или Source изменились | | `AUTOCOMPLETE_ENABLED=false` или URL пуст | Ничего не качать, стоковый SwarmUI (только синтаксис `<…>`, без booru-тегов) | Это **не** одноразовый seed как модели: список тегов на GitHub обновляют. Проверка версии — часть каждого `up`, пока есть SSH. Файл маленький (danbooru.csv ≈ 3–4 MB). Killer из‑за него не откладываем, но на первом bootstrap качаем **до** старта UI, вместе с extensions. ## Откуда файл Дефолт — то, на что ссылается сама документация SwarmUI: - репозиторий [DominikDoom/a1111-sd-webui-tagcomplete](https://github.com/DominikDoom/a1111-sd-webui-tagcomplete/tree/main/tags) - путь `tags/danbooru.csv` - raw: `https://raw.githubusercontent.com/DominikDoom/a1111-sd-webui-tagcomplete/main/tags/danbooru.csv` Альтернативы из той же папки (`e621.csv`, `danbooru_e621_merged.csv`, …) или релизы [BetaDoggo/danbooru-tag-list](https://github.com/BetaDoggo/danbooru-tag-list/releases) — через конфиг, не хардкод в коде кроме дефолта. ## Куда класть На data volume (уже примонтирован как `/SwarmUI/Data`): ```text /mnt/swarm_data/Data/Autocompletions/danbooru.csv /mnt/swarm_data/Data/Autocompletions/danbooru.csv.gpu-rent-meta.json ``` На data volume: `/mnt/swarm_data/Data/Autocompletions/danbooru.csv` (bind → `/opt/swarmui/Data/…`). Sidecar meta (не отдавать в Output): ```json { "repo": "DominikDoom/a1111-sd-webui-tagcomplete", "path": "tags/danbooru.csv", "ref": "main", "github_blob_sha": "7a3cba59…", "filename": "danbooru.csv", "fetched_at": "2026-08-21T00:00:00Z" } ``` ## Как узнать, что файл новый Не сравнивать «дату файла на диске». GitHub Contents API: ```http GET https://api.github.com/repos/{repo}/contents/{path}?ref={ref} ``` В ответе поле `sha` — blob git. Сравнить с `github_blob_sha` в sidecar. Совпало → ничего не качать. Другое → GET `download_url` (или raw), атомарно заменить файл, обновить sidecar. Без токена GitHub лимит 60 запросов/час с IP VM — на один `up` хватает. Если 403 rate limit — пропустить обновление, не валить `up`. Для URL не с GitHub (произвольный raw): `HEAD`/`GET` с `If-None-Match` / `Last-Modified`, хранить ETag в sidecar. ## Настройки SwarmUI до первого запуска Положить/дописать в `/mnt/swarm_data/Data/Settings.fds` (Frenetic Data Syntax), пока SwarmUI ещё не стартовал: ```text DefaultUser: AutoComplete: Source: danbooru.csv EscapeParens: true ``` `Source` — имя файла **относительно** `Data/Autocompletions`, как в UI `AutoCompletionsSource`. `InstallConfirmWS` перезаписывает `Settings.fds`, поэтому gpu-rent проставляет `Source` **после** первого Comfy-install, не только до старта. Если `Source` уже непустой (пользователь выбрал другой csv) — не трогаем. Пустой / `\x` / нет ключа — пишем `danbooru.csv` (или `AUTOCOMPLETE_FILENAME`). После замены csv или Source на уже живой VM: `systemctl restart swarmui` (хелпер `Reload()` при старте перечитает каталог). ## Конфиг ```env AUTOCOMPLETE_ENABLED=true AUTOCOMPLETE_GITHUB_REPO=DominikDoom/a1111-sd-webui-tagcomplete AUTOCOMPLETE_GITHUB_PATH=tags/danbooru.csv AUTOCOMPLETE_GITHUB_REF=main AUTOCOMPLETE_FILENAME=danbooru.csv ``` Или один `AUTOCOMPLETE_URL=` для raw без GitHub sha (тогда версия по ETag).