177 Commits
Author SHA1 Message Date
DumiFlex 3a7671b467 fix(examples): Var nodes read $name.bool, so Quick preview picks the small size again (#369)
lookup_var reads $name.bool from the toggles' on/off table; example 2's Var → Bool reads $quick_preview.bool since the Quick toggle's Value (12) now fills $quick_preview. Tests, docs note and release-notes line.
2026-11-12 02:28:10 +01:00
DumiFlex 4005954615 feat(debug): give WP Debug a view of its own for the Loop, Model Info, Toggles and Injector (#360)
Variables grouped into per-node cards with kind squares, module facts, toggle true/false and value + .bool, Injector type chips, Loop frame line; long values fold until Show all; .axis/.bool/tags as kit chips. Trace stays numbered run order. Show node blinks the module or field on the canvas. Grouped right-click menus with a kind header. Loop trace rows, node warning labels and links.
2026-11-12 02:12:23 +01:00
DumiFlex f30185d36a feat(toggles): a toggle's settings in a window, icons, colours and a Pick one negative (#361)
Each toggle's settings open in a kit Modal: name, variable, looks (icon, icon/name/control colours on kit IconPicker and ColorField), Pick one value and negative, style, needs, when off. The header and the row wear the toggle's looks; the icon is a column beside the name and $var. Labels take an icon and colour. Window warnings use the kit Banner. Bundle guide raised to 670 KB.
2026-11-12 01:51:09 +01:00
DumiFlex eb9d8e483d feat(note): pick any extension picture, and keep the Pictures panel open after adding (#365)
* feat(note): pick any extension picture, and keep the Pictures panel open after adding

* feat(note): show the extension's pictures only once you search

* feat(note): preview the note as the node draws it, and let the icon picker fill the editor
2026-11-11 23:54:14 +00:00
DumiFlex aadc550207 chore(deps): bump @dumiflex/wp-kit to 0.15.3, leave room for overlay scrollbars (#326) 2026-11-10 02:26:16 +01:00
DumiFlex 272a761e11 fix(categories): draw icons saved with a pi- prefix (#323) 2026-11-10 01:44:35 +01:00
DumiFlex 2b50da3d22 feat(manager): ComfyUI palette colour theme (#327) 2026-11-10 01:37:18 +01:00
DumiFlex a6521be701 fix(release): pack example_workflows, keep tutorials out, publish a draft by hand (#302) 2026-11-05 19:29:43 +00:00
DumiFlex bcc5a4ae57 feat(assembler): negatives are opt-in with $negatives, prefilled on new nodes (#278) 2026-11-04 23:25:50 +01:00
DumiFlex 8111b97f22 feat(examples): photo pack family, four example workflows and a generator (#263)
Style-neutral people packs (Person, Location, Wardrobe, Light, Camera, Direction, Render), four generated example workflows (One image, Batches and grids, Pick and refine, Sets and stories) laid out left to right with wires on reroutes, and Start here notes with bookmarks and the toolbar help picture.
2026-11-04 15:01:36 +01:00
DumiFlex 8b72350196 feat(note): pictures in WP Note, pasted, dropped or shipped, sized as a share of the note (#268)
Pictures pasted, dropped or picked into a note are re-encoded in the
browser (long side 1280 px, about 400 KB, EXIF dropped) and saved in the
note's config, named in the text as ![alt](wp:image/<id>). The extension
also ships a picture of the node toolbar with its ? help button
(wp:asset/toolbar-help). {width=N%} sets a picture's width as a share of
the note, so it never makes the note bigger; the editor's Pictures panel
has a Width slider, Own size and Remove.

Nothing loads from a web address: the chat parser only emits image nodes
when asked ({ images: true }), and the note resolves only its own two
kinds; the chat keeps alt text.
2026-11-04 12:16:48 +00:00
DumiFlex 98929f3eb5 feat(docs): node pictures from real runs with numbered pins and a legend (#259)
Every node page opens with a picture shot from a real run (scripts/docs-shots), with pins on its sockets and controls placed from the page and a legend drawn from the node's field list (DocAnnotated).
2026-11-03 22:37:07 +01:00
DumiFlex 26c2068671 feat(docs): one field list per node for the docs pages and the Node Info help (#256)
Each WP node's fields live once in src/manager/docs/node-fields.ts. The docs pages draw them with DocFields, and pnpm docs:help writes them into docs/help/WP_*.md. Tests fail when a node socket has no field or a field names a socket that is gone (tests/fixtures/node-sockets.json, written by scripts/dump_node_sockets.py).
2026-11-03 21:24:30 +01:00
DumiFlex 161a847f37 feat(note): add-to-library button and community pack links in WP Note (#252)
A wp:library link in a WP Note becomes a button that adds every bundle and module the workflow (or one WP Context) carries that the library is missing, after a review dialog that offers Use mine, Replace or Keep both for rows already there with other content. It goes in as one import commit with the Import tab's checks, the workflow rebound to what went in, and Undo. A wp:community/owner/pack link opens a published pack in the Community tab. The link panel gains Library and Community kinds, and the example workflows' Start here notes carry the button.
2026-11-03 20:57:07 +01:00
DumiFlex 2dd52fd6ed feat: canvas controls at ComfyUI's own sizes (wp-kit 0.14) (#253)
wp-kit 0.14: the switch is ComfyUI's own Nodes 2.0 switch, checkboxes are bigger with a 24 px click, number arrows wider, icon buttons take clicks past their edge, segmented options taller. WP Toggles' Pick one circles 18 px with a 24 px click; the frames fold is 20 px tall. Bundle budget 614 KB.
2026-11-03 20:07:30 +01:00
DumiFlex bf6115fd50 refactor(ui): caret lists, hover cards and popups on the kit Popover, and a guard against hand-made Teleports (#244)
RichTextInput's suggestion list follows the caret, its filter picker and remap popup, the var and chat autocompletes, the AI selection chip and the ref chip / pair badge hover cards are kit Popovers; canvas modal fields drop their look-alike styles; kit-guard gains raw-teleport and every rule is at 0.
2026-11-03 17:57:17 +01:00
DumiFlex cab89edb29 refactor(ui): kit 0.11.0, and the editors' hand-made menus on Popover, DropdownMenu and Modal (#243)
The injector insert menu, TagPickerMenu, the selection toolbar's menus and the sub-category pill menus move onto the kit's Popover and DropdownMenu; Add child to bundle is the kit Modal. Kit 0.11.0.
2026-11-03 17:39:46 +01:00
DumiFlex 258b54520e refactor: kit 0.10.0, the last canvas buttons and manager fields, and the guard at 0 everywhere (#242) 2026-11-03 15:12:49 +01:00
DumiFlex 87119da52b refactor: kit buttons in the context pickers, assembler, injector and loop widgets (#237) 2026-11-03 13:56:24 +01:00
DumiFlex 9dba13a236 refactor: kit buttons in the note, image filter and debug widgets (#236) 2026-11-03 13:38:19 +01:00
DumiFlex b81cab6dbe refactor: kit 0.9.0, the last manager buttons from the kit (#235) 2026-11-03 13:05:47 +01:00
DumiFlex b3278a0b81 refactor: kit buttons in the editors and bundle pieces (#234) 2026-11-03 12:30:29 +01:00
DumiFlex 5c45e059a4 refactor: kit buttons in the test runner and import/export (#233) 2026-11-03 12:16:15 +01:00
DumiFlex 901a8c1a56 refactor: kit buttons in the views, sidebar and settings (#232) 2026-11-03 12:02:07 +01:00
DumiFlex 0217ea14ef refactor: kit 0.8.0, and the pack converter's role cards and plan table from the kit (#231) 2026-11-03 10:28:03 +01:00
DumiFlex 92befadeba refactor: kit buttons, chips and rows in the AI drawer, AI panels and pack builder (#230) 2026-11-03 10:00:25 +01:00
DumiFlex 9a630d6eb2 refactor: kit buttons in the pack builder, AI drawer, sub-categories, pack converter and top bar (#227) 2026-11-03 09:20:52 +01:00
DumiFlex fa238e9f69 refactor: canvas dialogs, inline SVGs and range input onto kit pieces (#226) 2026-11-03 09:01:12 +01:00
DumiFlex ef6dee7033 refactor!: move to wp-kit 0.6 (one Button, one Modal, Checkbox, WpSwitch, ColorField; WorkingLine and motion.css) (#222)
BREAKING CHANGE: the canvas confirm dialogs are the manager's dialog now (ConfirmModal on Modal + ModalShell): 32px buttons, and they close on Escape, the x, Cancel or a backdrop click that starts on the backdrop.
2026-11-03 06:42:44 +01:00
DumiFlex 637d04560d feat: loading shapes instead of empty states and spinners (#221)
Kit 0.5.0. Places that wait for data show kit Skeleton shapes: list rows and tag filters, the Dashboard's counts and lists, the editors (EditorFrame loading), the canvas pickers (first load only), Categories, Tags, the Test Runner rail, Library health, What's new, saved chats, Export, AI settings, Database and Backups. The hand-made picker skeleton CSS is gone. The js/ budget is 596 KB.
2026-11-02 22:36:09 +01:00
DumiFlex 18b9ee39f4 chore: take kit 0.4.0, move the filter chips onto Chip (#218)
The library pages' tag filters, ModuleListView's Syntax and Content filters and bulk tag pickers and the Test Runner's kind filters are <Chip :pressed size="sm">; the Syntax tints are Chip's color. The Test Runner's module picker is a kit Popover. The topbar Discord hover reads --wp-brand-discord. kit-guard: raw-hex 1 -> 0, hand-dialog 4 -> 3, manager-raw-button 238 -> 224.
2026-11-02 21:29:38 +01:00
DumiFlex 9279023f9c refactor: move eight dialogs onto the kit's ModalShell and Popover (#217)
Load/Save template, the bundle picker and both Push to library dialogs, the injector binding editor and the Seed list modal open in ModalShell instead of their own overlay and Escape handling; the AI debug log is a Popover on its top-bar button. Seed list's buttons are WpButton and its inline SVGs PrimeIcons. kit-guard: hand-dialog 13 -> 4, inline-svg 21 -> 16.
2026-11-02 20:15:11 +01:00
DumiFlex ed466a2e56 refactor: take colours from the kit instead of raw hex (#215)
AiWorking draws the logo from the kit's logo-paths and BRAND_COLOURS, the colour pickers use COLOUR_PRESETS / DEFAULT_COLOUR, the bundle frame colour popover is the kit Popover, and fixed text colours read --wp-on-accent / --wp-on-media / --wp-scrim. Raw hex 93 -> 1.
2026-11-02 19:46:52 +01:00
DumiFlex ce47b5afb5 fix(canvas): keep bookmarks and the dock on the free canvas, check keys on the page
Jumps and the Bookmarks dock measure ComfyUI's canvas pane, so they keep
out of the open side panel and bottom panel and follow them, and step
around the minimap and zoom controls together. The dock snaps to a 3x3
spot when dragged, is more see-through (more when folded) and spaces its
rows. Recording or suggesting a shortcut sends a synthetic key press that
finds a key another extension claims without running it, and a key
stopped before it reaches the bookmark is remembered. Bookmark pills are
no longer resizable.
2026-11-02 19:46:10 +01:00
DumiFlex 31a7b69022 refactor: take the kit from npm (@dumiflex/wp-kit) (#214)
The manager and canvas import the kit from the @dumiflex/wp-kit package through the @/kit alias instead of a copied src/kit; kit-pull and the kit:check CI step are gone.
2026-11-02 19:20:40 +01:00
DumiFlex 4dc24a81b9 refactor: drop hex fallbacks from colour tokens and fix the kit guard (#211)
Every var(--token, #hex) fallback goes (shared tokens are defined on both sides; the canvas gains --wp-axis; old names map to current ones; --wp-bg-deep falls back to --wp-bg). The kit guard skips src/kit/, stops counting HTML entities as colours and allows the prompt-writing guide's quoted hex. raw-hex 835 → 94, inline-svg 25 → 21.
2026-11-02 14:19:25 +01:00
DumiFlex e967f0e57f feat(canvas): frameless bookmarks, landing inside the host's bars, a draggable dock
WP Bookmark loses its node frame like WP Note (shared _frameless.ts and
frameless-node.css): read, it is a pill with its icon, name and shortcut,
a pencil when selected, and a double-click opens the editor card, which
now holds Go, Pinned (ComfyUI's pin) and Use this view: land on the view
on screen, at its zoom, besides the 3x3 grid. Show on canvas applies on
Done. The icon is picked from the note's inline grid.

Jumps measure the free part of the canvas (walking in from each edge with
elementsFromPoint past the sidebar, breadcrumb, toolbar and zoom bar) and
only move off the dock when they would land under it. The dock sits in
that free area, can be dragged in edit mode (position saved), and is
see-through until hovered. The top-bar button wears our button style.

Suggest skips the key a bookmark already has and keys another extension
was seen taking (remembered once a press is stolen). A Step note shows its
number in the dock, a pinned note a pin mark. Frameless nodes no longer
sit a title bar higher in Nodes 2.0 than in Classic.
2026-10-29 22:54:43 +01:00
DumiFlex a0ae7414f2 feat(canvas): add WP Bookmark and the Bookmarks dock (#203)
WP Bookmark is a frontend-only node that marks a spot on the canvas to jump back to: where it lands on screen (a 3x3 grid), a set or kept zoom, and a recorded shortcut with a clash check against ComfyUI, user rebinds, other extensions, other bookmarks and rgthree bookmarks. Jumps glide, open subgraphs, land beside the dock and go on a Back stack. A bookmark can be hidden from the canvas; muting turns its shortcut off. It has a one-line read view and an editor.

The Bookmarks dock (top-bar button) has a view mode to jump from (Back, Previous, Next) and an edit mode to reorder, show or hide, switch side and bookmark the current view. A WP Note can also be a bookmark through its Also a bookmark switch. Keyless commands and a canvas menu entry come with it, plus docs, screenshots and release notes.
2026-10-29 21:01:35 +01:00
DumiFlex 498cd2ce26 feat(note): frameless WP Note with a formatting bar, links to any docs page, icons and colour presets (#202)
WP Note no longer shows a node frame in either renderer, its selection outline hugs the panel, and it drags and resizes (an unpinned note no longer comes back pinned). A Label shows its text and links in a hover card, and double-click edits a note in Nodes 2.0 too. The editor gets a formatting bar, links to a web page or any docs page and section (as a text link or a button with an icon, anywhere in the text), icons from the full PrimeIcons set, Step / Icon / Plain tones and theme colour presets. Keys typed in the editor never reach ComfyUI's shortcuts.
2026-10-29 18:50:12 +01:00
DumiFlex 9d7100ef12 feat(toggles): mute and bypass control, WP Node Group, WP Mode Relay and polish (#201)
WP Toggles rows can mute or bypass the nodes wired into a dot in front of them (or canvas groups), with invert and a status icon. New frontend-only WP Node Group and WP Mode Relay. Clean and edit views, upstream overrides, Pick one values and priority, and fixes for dot placement, grips, labels and variable fields.
2026-10-29 17:51:01 +01:00
DumiFlex 49c4ec8a19 feat: WP Toggles node with per-row BOOLEAN outputs and Merge into WP Toggles (#200)
A new node for many on/off switches: each toggle writes $its_variable as true/false (always internal) and can show a BOOLEAN output level with its row. Needs links, Pick one, label groups and four styles. Merge into WP Toggles turns selected Boolean nodes into one node with their wires kept.
2026-10-29 15:42:01 +01:00
DumiFlex 2510428602 feat(manager): Library health page (#197)
One page that checks the whole library for broken references, constraint
rules for options that are gone, variables nothing sets, duplicates, unused
items and other clutter, with Open, Delete and Ignore on each row, plus a
variety check that runs a bundle over 200 random seeds. An open canvas tab
reports which library items and variables it uses, so canvas-only items
don't read as unused. The sidebar shows a problem/warning count and the
Dashboard health card uses the same checks.
2026-10-29 14:02:49 +01:00
DumiFlex 837b2c99a0 feat(manager): link the wp-kit site and show the kit version (#196)
Settings › About shows the wp-kit version the extension was built with, and the in-app kit page keeps only the app pieces and links the kit site.
2026-10-29 13:46:15 +01:00
DumiFlex 8c07aae399 refactor(manager): use the manager controls and theme from the kit (#193)
The manager's controls, theme sheets and the canvas ConfirmDialog come from wp-kit (src/kit/, pulled at f3841a3); the old copies are gone and every import points at src/kit/. No visual change (theme audit on all 398 screens).
2026-10-29 13:35:13 +01:00
DumiFlex 58d4370273 ci(release): move releases to release-please with a release PR (#191)
Replace semantic-release with the Watchwright flow. A push to main opens a release PR that bumps package.json, pyproject.toml and the manifest; it merges itself once CI passes and docs/release-notes/next.md has notes. Merging tags a draft release, which the publish job fills with the zip and the curated body before publishing it, so the Registry and Discord workflows still run on release: published.

After a release, main is synced back into dev, and a PR into dev drops the shipped lines from next.md and puts the body on top of CHANGELOG.md. Pushing to beta still cuts x.y.z-beta.N prereleases. Adds a pr-title check and fixes the zip's ship list (fonts/ ships; bench/, SECURITY.md, eslint-baseline.json are dev-only).
2026-10-29 12:46:39 +01:00
DumiFlex f5e35a5034 refactor: pull the shared kit from wp-kit (#192)
The shared pieces moved to DumiFlex/wp-kit so the community site can use them too. src/kit/ is a copy of wp-kit's src/ at one commit, brought in by scripts/kit-pull.mjs (pnpm kit:pull <ref>), which records the ref, commit and file hashes in src/kit/kit.lock.json; pnpm kit:check in CI fails on a hand edit. Imports, registry, baselines, scans and docs point at src/kit/. Nothing changes on screen.
2026-10-29 12:11:52 +01:00
DumiFlex 5f7ab2d509 fix(manager): shapes inside controls follow the look (#185)
A switch knob, slider thumb, step mark and round x button stayed a circle inside a squared Terminal / TUI / Crisp box. They now take min(50%, var(--wp-radius-cap, 999px)), so they square with the look and stay round on the canvas. Terminal draws an on switch outlined like its buttons; TUI radios read ( ) / (*) like its [x] checkboxes.

The theme audit now fails on a circle inside a squared control and on a TUI radio that misreads its state, and the static test makes every 50% corner either follow the cap or say why it stays round.
2026-10-29 07:13:39 +01:00
DumiFlex 85fcdd7f73 feat(image-filter): lasso, fill, soft brush and strength in the mask painter (#177)
The painter gets Lasso (fill what you drag around) and Fill (the area under
a click, up to the lines you painted) next to the brush, Paint / Erase for
every tool (X swaps), Hardness for a soft edge, Strength to mask part-way
(one stroke stays at its strength where it crosses itself), [ ] for the
size and Undo / Redo. The mask maths lives in mask-ops.ts on plain alpha
buffers; the sliders are the kit Slider, and arrow keys on one no longer
step the picker to the next image.
2026-10-28 15:59:19 +01:00
DumiFlex d65439ddaf fix(manager): grouped search with Recent, visible row checkboxes, named accents, chat header rows (#172)
Search (Ctrl K) lists Recent first, then Go to, Create, Actions, Library and Categories. The empty row checkbox gets a visible edge. Tweaks and Settings > Appearance name each accent. The assistant header lays out in two rows on a narrow drawer.
2026-10-28 13:40:31 +01:00
DumiFlex 197768d406 refactor(ui): Tweaks drawer, History modal, kit details and logo (#170)
Tweaks panel on the shared Drawer, Version history on Modal with a CodeBlock snapshot, Database card details on DescriptionList, inline Logo in the top bar and Dashboard, and the AI pointer live region on VisuallyHidden.
2026-10-28 12:56:52 +01:00