Ship persona shelves, Exact controls, and overlay author pipeline.
Add Leonid as a shelf-based example with preference_bias slider; support /persona new clone-to-overlay and UI-only delete. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
SwarmUI extension for **collaborative Krea 2** prompting via **Ollama**: chat + board (Generate | Refs tabs), LoRA chips, **persona presets** (`Config/personas/`), **vector memory**, model cards with Civitai fetch, img2img/inpaint, slash commands, auto Generate.
|
||||
|
||||
**Version 0.8.3** — Chats, UI state and taste live in `assistent.sqlite` (FTS search in History). Memory stays hybrid FTS5 + cosine. Danbooru csv is a shared FTS catalog (no embeddings); Krea prompts stay prose.
|
||||
**Version 0.9.0** — Persona **shelves** (short JSON files, nested identity markdown), per-persona **Exact controls** (e.g. Leonid `preference_bias` slider), overlay **clone/author** pack (`/persona new`), UI-only delete for overlay personas. Chats/UI/taste stay in `assistent.sqlite`.
|
||||
|
||||
## Layout
|
||||
|
||||
@@ -16,21 +16,25 @@ SwarmUI extension for **collaborative Krea 2** prompting via **Ollama**: chat +
|
||||
```
|
||||
Config/
|
||||
_base/ # defaults (assistant, ui, models/krea2, exact.json, core, packs, skills, memory-seed, identity)
|
||||
personas/<id>/ # sparse preset: persona/voice/likes/dislikes/rules + optional exact.json / memory-seed / overrides
|
||||
personas/<id>/ # sparse shelves: persona/bio/voice/humor/… + optional controls.json / exact.json / memory-seed
|
||||
```
|
||||
|
||||
Disk overlay (wins over bundled): `/mnt/swarm_data/Assistent/` — same folder layout as `Config/`, i.e. drop `_base/…` and `personas/<id>/…` files to override any bundled preset. Plus this extension's own state:
|
||||
Disk overlay (wins over bundled): `/mnt/swarm_data/Assistent/` — same folder layout as `Config/`. Drop `_base/…` and `personas/<id>/…` to override. Plus runtime state:
|
||||
|
||||
```
|
||||
Assistent/
|
||||
_base/ personas/<id>/ # overlay presets — same names as Config/, sparse
|
||||
settings.json # embed_model, base_url, per-persona skills (config overlay)
|
||||
settings.json # embed_model, base_url, per-persona skills
|
||||
ollama-roles.json # chat vs memory model tags (gpu-rent writes this)
|
||||
memory/assistent.sqlite # vector memory + tags FTS + chats + ui_state + taste
|
||||
_migrated_json/ # one-shot archive of old chats/*.json, ui-state.json, taste.json
|
||||
```
|
||||
|
||||
Copy `personas/cinema/` → `noir/`, edit only differing JSON files. Persona prompt overrides belong in `personas/<id>/` — the old flat `personas.json` is legacy and only read when no overlay folder exists for that id.
|
||||
Copy `personas/leonid/` → new id, edit only differing JSON. See `Config/personas/README.md`.
|
||||
|
||||
**Controls:** optional `controls.json` schema + `exact.controls` values. UI shows sliders; LLM may patch `"controls": {…}`. Values persist in overlay Exact (not session_exact).
|
||||
|
||||
**Authoring:** pack `author_persona` + `/persona new` clones to overlay only. Delete overlay personas with the ✕ button (never from the model).
|
||||
|
||||
## Exact memory (KV)
|
||||
|
||||
@@ -116,14 +120,19 @@ Restart / rebuild SwarmUI after clone. gpu-rent: `seed-extensions` + restart.
|
||||
|
||||
**Skills** (checkboxes): `prompting`, `creativity_sliders`, `memory` — procedures; encyclopedia numbers live in Exact, soft notes in memory-seed / RAG.
|
||||
|
||||
**Personas:** `neutral`, `lewd`, `aggressive`, `cinema`, `terse` under `Config/personas/`.
|
||||
**Personas:** `neutral`, `lewd`, `aggressive`, `cinema`, `terse`, `leonid` under `Config/personas/`. Overlay clones via `/persona new`.
|
||||
|
||||
## API routes
|
||||
|
||||
| Route | Role |
|
||||
| --- | --- |
|
||||
| `AssistentListModels` | Ollama tags → `models` (chat) + `memory_models` |
|
||||
| `AssistentGetConfig` | Merged preset for persona (ui, packs, skills, identity) |
|
||||
| `AssistentGetConfig` | Merged preset for persona (ui, packs, skills, identity, controls) |
|
||||
| `AssistentSaveControls` | Persist Exact `controls` values for a persona (overlay) |
|
||||
| `AssistentGetPersonaShelves` | Merged identity shelves + controls |
|
||||
| `AssistentClonePersona` | Snapshot clone → overlay id |
|
||||
| `AssistentSavePersona` | Sparse shelf write (overlay only) |
|
||||
| `AssistentDeletePersona` | UI-only delete of overlay persona |
|
||||
| `AssistentGetSettings` / `AssistentSaveSettings` | Overlay settings (skills, embed_model) |
|
||||
| `AssistentListInventory` | LoRA / checkpoint / wildcard inventory |
|
||||
| `AssistentListPersonas` | Persona catalog |
|
||||
|
||||
Reference in New Issue
Block a user