Repository navigation
fix(ui): canvas filter and render size, recall shortcuts, prompt syntax, and hint popovers - #9881
Open
joshistoast wants to merge 6 commits into
Open
joshistoast wants to merge 6 commits into
joshistoast wants to merge 6 commits into
Conversation
…hosen Auto-process filter sessions now run their starting settings, so Apply is no longer stuck disabled. Choosing a ControlNet model on an empty control layer no longer opens a filter session.
Preset, swap, lock and locked bbox changes refit the custom render size at about the same area. Custom width and height link while the ratio is locked; free bbox drags leave them alone.
Recall, use-size and load-workflow keys now act on the selected image while Gallery or Preview has focus. Widget hotkey scopes accept several widget types; the gallery shortcut docs list the new keys.
Highlight and Ctrl+Up/Down weighting only for SD 1.5, SD 2.x and SDXL prompts; other bases show plain text. One base table now picks both the editor behaviour and the graphs' Compel prompt nodes.
Add legacy hint copy to denoising strength, LoRA, control and regional reference weights, Krea-2 controls and step ranges. Open the card beside the panel and keep it open while the pointer moves from the label to the card. Drop the aspect-ratio hint and the denoising copy misplaced on the FLUX Redux select.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
UI fixes for the canvas, the image-recall shortcuts, prompt syntax and the field hint popovers:
ControlNet filter preview (Controlnet undefined to value validation #9872). Choosing a ControlNet model with a default preprocessor opened a filter session with auto-process on, but the session never processed its starting settings. Process is hidden while auto-process is on, and Apply needs a preview, so only Reset and Cancel stayed clickable. The session now runs its starting settings once, using the existing debounce. Choosing a model on a control layer with no content no longer opens a session, matching the Filter button.
Custom "Render at" size follows a locked ratio (Manual 'render at' needs to lock to aspect ratio #9873). The canvas dims sync now refits a Custom render size at roughly the same area when the locked ratio changes: preset, swap, turning the lock on, a bbox resize under the lock, or recall. While locked, editing one Custom side updates the other. Free bbox drags leave the Custom size alone, even when they land on a preset ratio. Before: 16:9 at 768×432, swap → still 768×432 (stretched output). After: 432×768.
Recall shortcuts work from Gallery (Recall shortcuts not doing anything #9874). A, S and P (plus D for use size and W for load workflow) were scoped to Preview only, but images are usually selected in Gallery, which holds focus there. They now work while Gallery or Preview has focus. R stays per widget, because Gallery binds its own remix. Widget hotkey scopes now accept several widget types, and the Settings conflict check handles overlapping scopes.
Attention syntax only for models that read it. Only the SD 1.5, SD 2.x and SDXL graphs encode prompts with Compel. Other bases (FLUX, Krea, SD3, CogView4, Z-Image, Qwen, video, external) ignore
(word)1.2/word+. On those bases the prompt editors no longer highlight attention syntax, and Ctrl+Up/Down no longer rewrites weights; the shortcut now targets only prompts that read attention syntax, instead of every text field. Dynamic-prompt syntax stays highlighted for every model. One base table drives both the editor and the graphs' Compel node choice; a test fails if they drift. Regional guidance prompts and the upscale graph follow the same table. The prompt-syntax docs and the prompt hint copy say which models support weighting and embeddings.Hint popovers on scrubber inputs. Hints with legacy copy are added for:
Every hint card now opens beside the panel, level with the label, instead of covering the field. It stays open while the pointer moves from the label to "Learn more". It closes about 1 s after the pointer stops short of the card, or when another hint opens. The aspect-ratio hint is removed: it no longer had a label, and wrapping the dropdown kept the card open.
Related Issues / Discussions
QA Instructions
pnpm check:release(ininvokeai/frontend/webv2) passed in a clean worktree on the full branch: lint, 10,247 unit tests, 2,920 browser tests, fixtures, architecture/browser performance, project-file journeys, accessibility.FieldandScrubberFieldbrowser tests andpnpm lintpass.The prompt commit alone passes
pnpm lint, the generation core unit tests and the prompt, hotkey and regional guidance browser tests.Docs:
pnpm testandpnpm buildindocs/pass, and the link validator is clean.Browser check (mock backend), canvas project, Render at = Custom, ratio locked:
Gallery recall: click a thumbnail, press
p/s. The "Recalled prompts" / "Recalled seed" toasts appear and the values apply. This was checked against the mock backend with injected metadata.Prompt syntax, browser-checked against the mock backend with a FLUX, a Krea-2 and an SDXL main model added through a local proxy (the mock serves only SD 1.5 main models):
a {red|blue} cat, (dog)1.2.(dog)1.2is highlighted, and Ctrl+Up/Down rewrites the selection (cat→cat+,1.2→1.1).(dog)1.2is plain text, and Ctrl+Up/Down leaves the prompt unchanged.{red|blue}stays highlighted on every model.Hints, browser-checked with hints enabled. Each card opened beside its panel:
The pointer reached "Learn more" without the card closing. The card closed after the pointer left, and moving to another label swapped the cards.
Regional reference weight and reference-image "Active steps" hints are covered by browser tests only.
Not browser-verified: Controlnet undefined to value validation #9872. The mock backend has no ControlNet model with a default preprocessor. To check on a real backend: add a control layer with content, pick a ControlNet model that has a default preprocessor (e.g. an SDXL depth model), and confirm a preview appears and Apply enables. Picking a model on an empty control layer should open no filter session.
Review
Resolved before merge:
Remaining limits:
Compatibility / Rollout
canvasScaling.ts(grouped into the editor boot chunk),compel.tsandhintGeometry.ts. Request counts are unchanged.otherRawBytesfigure goes from 200,480 to 205,278 on the routes that loaden.json. Part of that growth was already onmain; the new hint copy pushed it over. No timing figures were re-recorded.Checklist
What's Newcopy (if doing a release after this PR)Need help on this PR? Tag
@codesmith-botwith what you need.