feat(ui): group nodes by category in add-node dialog#8912
feat(ui): group nodes by category in add-node dialog#8912lstein merged 13 commits intoinvoke-ai:mainfrom
Conversation
Add collapsible category grouping to the node picker command palette. Categories are parsed from the backend schema and displayed as expandable sections with caret icons. All categories auto-expand when searching.
…oritize exact matches Add a persistent "Group Nodes by Category" setting to workflow editor settings, allowing users to switch between grouped and flat node list views. Also sort exact title matches to the top when searching.
|
I like the feature, and I think it would be worth having enabled by default, but it would need some things first:
|
…egories Add "Expand All" and "Collapse All" link-buttons above the grouped category list in the add-node dialog so users can quickly open or close all categories at once. Buttons are hidden during search since categories auto-expand while searching. Fix two miscategorized nodes: Z-Image ControlNet was in "Control" instead of "Controlnet", and Upscale (RealESRGAN) was in "Esrgan" instead of "Upscale".
Reorganize all built-in invocation categories into a consistent set of 18 groups (model, prompt, conditioning, controlnet_preprocessors, latents, image, mask, inpaint, tiles, upscale, segmentation, math, strings, primitives, batch, metadata, multimodal, canvas). - Move denoise/i2l/l2i nodes consistently into "latents" - Move all mask creation/manipulation nodes into "mask" - Split ControlNet preprocessors out of "controlnet" into their own group - Fold "unet", "vllm", "string", "ip_adapter", "t2i_adapter" into larger groups - Move metadata_linked denoise wrappers from "latents" to "metadata" - Add missing category to ideal_size - Introduce dedicated "canvas" group for canvas/output/panel nodes Also adds the now-required `category` field to invocation template fixtures in validateConnection.test.ts.
Node Category AssignmentsModelMain model loaders, LoRA loaders, VAE, and model modifiers.
PromptText encoders, prompt utilities, and CLIP modifiers.
ConditioningImage- and adapter-based conditioning (no text encoders, no preprocessors).
ControlNet PreprocessorsPure preprocessor nodes for ControlNet / T2I.
LatentsAnything that operates on latent tensors (noise, denoise, VAE encode/decode, latent ops).
ImageImage manipulation (pixel operations; no latents, no mask creation).
MaskCreation and processing of masks (both image masks and tensor masks).
Inpaint & InfillBackground fill and classic inpainting.
TilesTile calculation and multi-diffusion helpers.
Upscale
Segmentation & FacesObject/face detection and segmentation.
Math & LogicArithmetic, randomness, ranges, and logic.
Strings
PrimitivesAtomic value nodes, including bounding box and color.
Batch & IterationBatch inputs, generators, and numeric ranges.
MetadataIncludes the
Multimodal / VLM
Canvas
|
dunkeroni
left a comment
There was a problem hiding this comment.
New categories are much nicer.

Summary
Add collapsible category grouping to the node picker command palette. Categories are parsed from the backend schema and displayed as expandable sections with caret icons. All categories auto-expand when searching.
Related Issues / Discussions
#7429
QA Instructions
Merge Plan
No special merge considerations.
Checklist
What's Newcopy (if doing a release after this PR)