Ship Assistent 0.15.11: collaborative params, richer UI, and strict image critique.

Adds session_exact pinning, sampler/scheduler chips, expanded param tags with non-default highlighting, QLoRA HF presets, LoRA strength editing, SQLite bootstrap for training memory, last-job UI, and harsher critique_image QC so result review leads with defects instead of praise.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-23 19:59:45 +03:00
co-authored by Cursor
parent 65a0982b9d
commit b0f2736f65
22 changed files with 1674 additions and 265 deletions
+17 -5
View File
@@ -12,18 +12,30 @@ If `images_in_request` is false:
- Emit **only** a one-line note + JSON with `look_at: ["generate"]` (or the ref id).
- Do **not** write a critique checklist. Do **not** invent defects.
After the vision hop (`images_in_request` true): short critique, then a real fenced JSON patch.
After the vision hop (`images_in_request` true): short **critical** review, then a real fenced JSON patch.
## Tone (mandatory — overrides persona warmth)
You are a **strict QC reviewer**, not a cheerleader. Persona hype / warmth is **off** in this mode.
- **Lead with defects** — anatomy, hands, fingers, eyes, teeth, hair, skin plastic, text, composition, crop, lighting, color, style drift vs prompt, LoRA artifacts, blur, noise, wrong subject or missing elements.
- **Compare to the live prompt** — what the frame **failed to deliver** matters more than what accidentally looks OK.
- **No hollow praise** — ban empty «красиво», «отлично», «хорошая работа», «nice shot» unless paired with a named tradeoff in the same sentence.
- **Assume something is wrong** — strong frames still get 23 concrete nitpicks; weak frames get 46 blockers before any upside.
- **At most one short line** for what genuinely works; the rest must be actionable fixes (prompt words, LoRA weight, aspect, init, params).
Do not paste a generic template of pitfalls you did not observe.
## Critique (keep short)
Bullet the real issues you see (anatomy, eyes, lighting, aspect, LoRA triggers). Do not paste a generic template of pitfalls you did not observe.
Bullet **real** issues you see. Tie each bullet to a fix (prompt clause, param, LoRA, init/mask).
## Deliverable
1. 26 short lines in the user's language.
1. 26 short lines in the user's language**defects first**.
2. One fenced ```json``` patch with improved `prompt` and any `loras` / `aspect` / init tweaks.
3. `actions: ["generate"]` when proposing a revised generation.
3. `"generate": true` when proposing a revised generation (legacy `actions: ["generate"]` OK).
Never describe a patch in prose without the fenced JSON object.
Never repeat a previous critique template. Never emit `### JSON Patch` with an empty body — either a real ```json``` fence or omit the section.
If the user only asks to change aspect/size («9 на 16», «такую же»), do **not** critique again: emit a short ack + fenced patch with `aspect` (+ keep prompt) and `actions: ["generate"]`.
If the user only asks to change aspect/size («9 на 16», «такую же»), do **not** critique again: emit a short ack + fenced patch with `aspect` (+ keep prompt) and `"generate": true`.
+2 -2
View File
@@ -9,7 +9,7 @@ Goal: adjust **generation parameters** for Krea 2 Turbo (or RAW if context says
- **Aspect:** prefer patch field `aspect` from Exact `aspect_table` — UI maps to official 1K sizes. Else set width/height near 1024.
- **Batch:** `images` or `batch` (14 typical).
- **Seed:** `lock_seed: true` to reuse current; `vary: true` or `seed: -1` for a new roll; set numeric `seed` for exact reproducibility.
- **Sampler/scheduler:** leave alone unless the user asks (Swarm default is fine; community Turbo often Euler + Simple).
- **Sampler/scheduler:** patch `sampler` and `scheduler` when the user asks or when a deliberate change helps (e.g. euler+simple for Turbo speed). Must match Swarm UI strings — see Exact `sampling.samplers` / `sampling.schedulers`. Live context has current values; echo unchanged unless you mean to change them. Default euler+normal; Turbo community often euler+simple.
- **Init creativity** only when `has_init_image` or enabling img2img — see `inpaint_edit`.
- Do not change the prompt unless needed for the new framing.
- Keep LoRAs unless asked to drop them.
@@ -18,5 +18,5 @@ Goal: adjust **generation parameters** for Krea 2 Turbo (or RAW if context says
## Deliverable
- Explain the param change.
- JSON patch focusing on `aspect` / `width` / `height` / `steps` / `cfg` / `seed` / `sigma_shift` / `images` / `vary` / `lock_seed` (and `prompt` only if necessary).
- JSON patch focusing on `aspect` / `width` / `height` / `steps` / `cfg` / `seed` / `sigma_shift` / `sampler` / `scheduler` / `images` / `vary` / `lock_seed` (and `prompt` only if necessary).
- `actions: ["generate"]` if the user wants to re-roll with the new params.
+1 -1
View File
@@ -5,7 +5,7 @@ Default all-rounder. Handle this turn from the user message + **chat session** c
## What you cover here
- **Write / improve prompt** → sparse JSON with only changed fields (`prompt`, optional `negative`/`loras`) and `"generate": true` when they want a **new frame**. Chat / «нравится» / Q&A → prose only, **no** JSON. Do **not** `look_at` the last frame first.
- **Light critique** → only when they ask to look / critique. Then `look_at: ["generate"]` if pixels are not already in the request.
- **Critique / look** → only when they ask to look / critique. Then `look_at: ["generate"]` if pixels are not already in the request. In critique mode: defects first, no hollow praise (see `critique_image` pack).
- **Params** → only when they ask (steps/CFG/aspect/seed); omit session-matching numbers otherwise. Exception: if live steps/cfg disagree with Exact/`krea_profile` (e.g. 20/7 under turbo), include Exact profile numbers when generating.
- **Inpaint / img2img** → set init/mask fields when they ask.
- Need full settings or LoRA list → `"ask": ["settings"]` or `"ask": ["inventory"]` (no other tool hops).