bb8cb990aab9a7bc2725adf2f34c0fda3fb24006
Keep action buttons only on the latest patch, spin Apply+Generate while busy, and greet on first open. Co-authored-by: Cursor <cursoragent@cursor.com>
Swarm Assistent
SwarmUI extension for collaborative Krea 2 prompting via Ollama: chat + multi-window board (live Generate + refs), LoRA/trigger awareness, applyable patches, img2img / inpaint, auto Generate, and Civitai search with Confirm.
Layout
- Left — Board: live Generate window + Ref windows (drop / paste / Send to Assistent / Snapshot gen). Per-window vision checkbox attaches that image to the next chat.
- Splitter: drag to resize panes
- Right (wider): chat — first visit shows a short how-to. Only the latest JSON proposal keeps action buttons; Apply + Generate spins/disables while a generation is running.
- Top-right: prompt pack + settings (Ollama URL, model, auto-apply / auto-generate)
UX
- Send to Assistent under the current Generate image (and History) — adds a Ref window and opens the Assistent tab
- Drag / paste onto a Ref (drop on Generate snapshots into a new Ref)
- Snapshot gen copies the live Generate window into a Ref
- As Init / As Mask / Clear Init — selected window → Swarm
Init Image/Mask Image - Enter sends; Shift+Enter newline
- Auto-apply + Auto-generate (default on): patch from the LLM is applied and Generate runs when the patch changes prompt/params or includes
actions: ["generate"] - Pure Q&A without a patch does not start Generate
- Interrupt stops Swarm generation / clears busy state
- Civitai search cards require Confirm download (uses Swarm
DoModelDownloadWS+ storedcivitai_apikey). Auto-download is off by default.
Requirements
- SwarmUI with a Krea 2 checkpoint selected
- Ollama on
http://127.0.0.1:11434on the GPU VM (gpu-rentLLM_RUNTIME=ollama). The browser talks to SwarmUI; SwarmUI proxies/api/tagsand/api/chat. URL in settings must stay127.0.0.1:11434, not the laptop tunnel port 17811. - At least one pulled model (
ollama pull/ollama-models.yaml). Empty/api/tags→ empty Model dropdown. - Optional: Civitai API key in SwarmUI User Settings for search/download.
Install
Clone into SwarmUI src/Extensions/swarm-assistent (or let gpu-rent seed it from extensions.yaml with requires: ollama):
swarmui:
- url: https://gitea.hsrv.site/mrleo1nid/swarm-assistent.git
ref: main
dir: swarm-assistent
requires: ollama
Restart / rebuild SwarmUI after clone.
Prompt packs
| Pack | Role |
|---|---|
base_krea2 |
Always injected: Krea 2 rules + JSON patch / actions contract |
write_prompt |
Craft / improve prompts |
critique_image |
Vision critique → fixes |
compose_scene |
Scene / moodboard |
fix_params |
Width/height/steps/CFG/seed/σ-shift |
inpaint_edit |
Init Image img2img + Mask inpaint |
Live context (checkpoint, server inventory LoRAs + triggers, wildcards, current params) is injected every request.
Patch actions
{
"prompt": "...",
"loras": [{"name": "exact", "weight": 0.8, "triggers": ["..."]}],
"width": 1024, "height": 1280, "steps": 8, "cfg": 1,
"seed": -1, "sigma_shift": 1.15,
"use_init_image": true,
"init_creativity": 0.45,
"use_mask_image": false,
"look_at": ["generate"],
"slot_to_init": "generate",
"snapshot_generate": false,
"actions": ["generate"],
"search_query": null
}
generate— auto-generate after apply (when enabled)look_at— hop vision from named board windows (generate,ref1, …)slot_to_init/slot_to_mask— copy that window into Swarm Init / Masksnapshot_generate— copy live Generate into a Refsearch_civitai+search_query— server searches Civitai, second LLM hop, Confirm cards in UIinterrupt— stop current generation
Mask convention: white = edit, black = keep. Creativity ≈ denoise (0–1).
API routes
| Route | Role |
|---|---|
AssistentListModels |
Ollama /api/tags |
AssistentListInventory |
LoRA / checkpoint / wildcard inventory from Swarm |
AssistentSearchCivitai |
Civitai LoRA search |
AssistentGetPacks |
Prompt pack texts |
AssistentChat |
HTTP chat (+ Civitai hop) |
AssistentChatWS |
Streaming chat WebSocket |
License
MIT
Languages
JavaScript
67.4%
C#
24.7%
CSS
4.8%
HTML
2.3%
Python
0.8%