v2.49.4
Random AI prompt + image generator for the Stable Diffusion WebUI -- a CLI and a local web UI.
Pre-release software. Provided as-is under Apache-2.0.
What's new in this release
2026-07-06 — Fix Manage add-menu overflowing the pane (2.49.4)
The tree's add (+) menu ("New block / New folder") opened left-to-right (left: 0) from + controls
that sit near the right edge of the narrow tree pane, so the 130px menu spilled past the pane and forced
a horizontal scrollbar. Right-aligned it (right: 0; left: auto) so it grows leftward and stays inside
the pane. Verified in Chrome. CSS-only.
2026-07-06 — "Create override" for built-in blocks/lists + corner scrollbar fix (2.49.3)
- Create override: the block + list editors now show a Create override button for any built-in
entry. It copies the entry (content +.js/.jsonsidecars) into the matching user-overlay root
(user/blocksoruser/lists) — which wins at runtime and survives app updates — then selects the
new copy so you edit YOUR version; the built-in is left untouched. If an override already exists it
just opens it. Backed by a new cross-rootcopyfs op (toRoot) inmanageFs,overrideEntryin
useManageTree, and a confirm dialog. Verified end-to-end in Chrome. - Corner scrollbar fix: the Modify/Draft combo overlapped the DPL editor's vertical scrollbar —
inset it (right: 1.25rem) so it always clears the scrollbar. - Editor-freeze fix: the first attempt used
scrollbar-gutter: stableon the CodeMirror scroller,
which put CM into an infinite measure loop and froze the renderer when a block opened. Dropped it (CM
wraps long lines inside the scrollbar already, so the text stays clear without it). - Verified green: the full gate —
check:docs+ lint (incl. stylelint) +smoke+ Node unit (279,
incl. the new cross-root copy round-trip) + web (416, incl.overrideEntrycases) + the web build;
i18n:extractsynceden.json. Manually confirmed the override flow, the scrollbar clearance, and
the freeze fix in the browser.
2026-07-06 — Refine bar UX overhaul: stepper combos + corner Modify/Draft (2.49.2)
Rebuilt the block refine controls after they read as "a slab of buttons overflowing with even more
buttons oddly below it" (verified in Chrome this time — the fix is UX-driven).
- Stepper combos: each dimension is now ONE compact control —
[ − Detail + ]— instead of two
separate "Add detail" / "Trim detail" pills. Five combos (Detail, Complexity, Focus, Intensity,
Variety) + a lone Cleanup pill (renamed from "Tighten") sit on one tidy, wrap-safe row. New
DplRefineBarrenders−/+step buttons per dimension; the +/− aria-labels carry the old action
names. - Corner Modify/Draft: the free-text box moved out of a full-width slab into a joined Modify /
Draft combo pinned to the DPL editor's top-right corner (newDplAskCorner.jsx), opening a compact
popover (title + textarea + Send, ⌘/Ctrl+Enter). The editor content gets a top gutter so the first
line clears the control; the popover caps atmin(88vw, 360px). - Test-infra fix: the heavier suite tipped
promptEngine.integration'sensureCatalog()warmup
hook (~9.3s on HEAD) past the default 10s hook timeout under parallel load — gave thatbeforeAlla
30s timeout (the real data-corpus glob genuinely takes >10s under load). - Verified green: inspected in Chrome at desktop (combos tidy, corner popover clean, no clipping) +
lint +smoke+ the full web suite (412 tests) + the web build;i18n:extractsynceden.json.
2026-07-06 — Free-text "Modify" box for block refine in Manage (2.49.1)
Added a free-text message box to the block editor's refine bar so a template can be re-processed by a
typed instruction — full control alongside the quick pills. A segmented Modify / Draft new toggle
sits over one input: Modify (default) sends your instruction plus the current template to the AI and
applies the revised DPL; Draft new is the previous draft-from-description (now folded into the same
box). Both keep the existing validate + dirty-until-Save + one-click Undo behaviour.
- New
dpl-custommode (rewriteSystem.js): its task tells the model the user message is an
INSTRUCTIONfollowed by the current template after a--- TEMPLATE ---delimiter, to apply the
change and return the full revised DPL while preserving everything not asked to change. Rides on the
sameDPL_PRIMERas the otherdpl-*modes. dplRefine.js:DPL_CUSTOM_MODE+buildCustomPrompt(instruction, template)(packs the two
around the delimiter).DplRefineBar.jsxreplaced the collapsible draft control with the always-
visible Modify/Draft box;ManageBlockEditor.jsxgainedhandleCustom(validates both an
instruction and a template exist, composes the prompt, runsdpl-custom) and akind-driven status.- Verified green: lint +
smoke+ the full web suite (409 tests) + the web build;i18n:extract
synceden.json. No data-practice change, so the legal docs are untouched.
2026-07-06 — AI refine + draft-from-description for blocks in Manage (2.49.0)
Extended the Manage block editor's DPL tab with an AI refine toolbar and a draft-from-description
control, so a block template can be shaped by clicking instead of hand-editing DPL. All of it rides on
the existing text (rewrite) provider path — the same BYOK plumbing the list editor's "AI Expand" uses —
so no new provider code was needed.
- Refine toolbar (
DplRefineBar.jsx): five dimensions as more/less pill pairs — Detail
(add/trim), Complexity (more/simplify), Focus (sharpen/loosen), Intensity (crank/ease),
Variety (more/consistent) — plus a Tighten polish action. Each pill sends the current template
through the provider with a dedicateddpl-*mode and replaces the editor content; the result is
validated (issue count surfaced in the status), marked dirty (not saved until Save), and reversible via
an Undo link (a manual edit supersedes the revert point). - Draft from description: a free-text box drafts a whole starting template from a plain-English
subject, using a "winning formula" system prompt (front matter →Start→ subject spine → essential
bullets →one of:variety →maybe/NN%garnish →[f<40%]focus fluff →[i>70%]/[i<25%]
intensity variants, composable, ~10–20 lines). - DPL-aware system prompts (
rewriteSystem.js): a sharedDPL_PRIMERteaches the model the DPL
grammar and the intensity/focus dials so it refines as DPL (tokens, sections, gates, choices
preserved) rather than flattening to prose;systemFor()now routes everydpl-*mode (primer + a
per-mode task) alongside the existingkeyword/expand/fix. Reused by both transports
(browser-direct + the/api/rewriteproxy) since both already callsystemFor. - New:
frontend/lib/dpl/dplRefine.js(action catalog +cleanDplOutputfence/quote stripper) and
dplRefineMessages.js;styles/components/dpl-refine-toolbar.css. No data-practice change (refine
reuses the already-disclosed text-provider flow), so the legal docs are untouched. - Verified green: lint +
smoke+ the full web suite (404 tests, incl. newdplRefine,
rewriteSystem, andDplRefineBarspecs) + the web build;i18n:extractsynceden.json.
How to get it
Prefer not to build? Download a pre-built edition:
- Desktop app -- Windows
.msi/.exe(or a portable.zip), macOS.dmg, Linux.AppImage/.deb(attached below). Self-contained; nothing to install first. random-ai-prompt-2.49.4-online.zip-- the online edition as static files; host it anywhere, or just use https://prompt.fairyfox.io.random-ai-prompt-2.49.4.tar.gz-- source tarball (run with Node 24:npm installthennpm start).random-ai-prompt-2.49.4-docs.zip-- the generated documentation site.
What's Changed
- Release v2.49.4 by @junebug12851 in #44
Full Changelog: v2.48.0...v2.49.4