Commit Graph
337 Commits
Author SHA1 Message Date
ausboss e191f0fc40 Save Image: SAVE ALL keeps every picture of a list run
A list run saves once for each item, so one result holds several held
runs. The button used only the first, and kept one picture of six.
2026-11-11 19:52:41 -06:00
ausboss a92017cff4 Save Image shows every picture of a run at once
A run that saved several pictures showed one, with arrows to step
through them. They now show side by side, as the core Save Image does.
The arrows go on to each picture by itself and round again to all of
them. The other preview nodes show a batch the same way.
2026-11-11 19:41:27 -06:00
ausboss b6a67a4c34 Mask by Touch: take away by name, big pictures, a quiet queue
Four things people ran into while picking a mask:

- Ctrl-click on a part of a picked thing could take the whole thing
  away. With only a sweater picked, a Ctrl-click on the face offered
  the person, which holds the sweater, and the pick was gone. From a
  spot that is not picked, a piece that holds a whole pick is no longer
  offered; the picture says nothing is picked there.
- A name could only be taken away while Erase was chosen. The name
  field now has a + / - button, and a name typed with a minus in front
  ("-face") is taken away whichever tool is chosen.
- SAM 3 answers at the size of the picture it is given, so a look at a
  3840 px picture took 53 s and an 8192 px one ran a 32 GB card out of
  memory. A picture with a long side over 2048 px is now asked about on
  a smaller copy, and the answer comes back at the picture's own size:
  31 s and 33 s. Pictures up to 2048 px are asked about as before.
- Each change on the loader in front of the node sent one more look and
  left the earlier ones waiting. The node's own waiting looks are now
  taken out of the queue before a new one is sent.

The button that pauses the look now says Pause or Look on, and an out
of memory stop says so in plain words.
2026-11-10 14:49:34 -06:00
ausboss 13c303178b Known run errors: shorter messages 2026-11-09 16:03:33 -06:00
ausboss f945feabb6 Say what to do for two run errors that come from outside the workflow
A MiniMax H3 run that keeps a clip's sound stops with KeyError: 'latent'
when the Muse MiniMax Director pack is installed, and an older ComfyUI
stops on a w6a8 model file. Neither message tells a person what to do,
so the run check now shows one toast for each with the cause and the fix.
2026-11-09 16:00:23 -06:00
ausboss 28fbd321c7 Release 2.23.0
Mask by Touch keeping picks on a new picture is a new feature, so this
release is 2.23.0 rather than 2.22.1. It also brings the stopped-run
message fix and the corrected example notes.
2026-11-08 23:48:28 -06:00
ausboss 144884fae3 Merge remote-tracking branch 'origin/main' into release/2.22.1 2026-11-08 23:45:59 -06:00
ausboss c1b620d448 Mask by Touch: clear a stopped run's message once a run works
A run that stopped at the node left its message on the face until
something else was said there. The face's own runs cleared it, but a
workflow run's result did not, so the message stayed under a good result.
The stop now marks its message, and the next result that comes in
clears it.
2026-11-08 23:44:55 -06:00
ausboss 5b4651df45 Mask by Touch: keep the picks when the picture changes
A different picture coming in no longer stops the run with every pick
dropped. The node moves the clicks and paint onto it, in the same places,
scaled from the size in their key to the new picture's size, and sends the
face the moved touches. The face takes them while it still holds the picks
they were moved from. New picture, under More, set to start over keeps the
old behaviour.
2026-11-08 23:29:49 -06:00
ausboss 1568a56874 Release 2.22.1 2026-11-08 23:03:22 -06:00
ausboss 989a0e32d6 Merge pull request #317 from ausboss/fix/lifted-socket-overlap
Fix lifted inputs drawn on top of the first input in saved workflows
2026-11-08 23:01:01 -06:00
ausboss 25b293513e Merge remote-tracking branch 'origin/main' into fix/preview-review
# Conflicts:
#	tests/test_frontend_cache.py
2026-11-08 22:58:44 -06:00
ausboss a5190b3c6b Merge pull request #316 from ausboss/fix/switches-review
Workflow Switches: a settings switch keeps its node running
2026-11-08 22:58:12 -06:00
ausboss ef6b10a380 Merge pull request #311 from ausboss/fix/folder-review
Image Folder: fresh results on folder change, newest files kept
2026-11-08 22:57:45 -06:00
ausboss 95b69ce4af Fix lifted inputs drawn on top of the first input in saved workflows
Newer ComfyUI stamps a widget's input with its row position (slot.pos) and keeps using it after the widget is gone, so fixed_frames on Video Crop + Rotate + Pad -> Clip landed on force_rate. liftSocket now clears it; Resolution uses the same helper.
2026-11-08 22:21:34 -06:00
ausboss da3072a7de Workflow Switches: a settings switch keeps its node running
Review fixes for Workflow Switches.

- A switch that changes a setting on a node no longer turns that node
  off.
- LoRA choices keep every differing field and show row and group locks.
- Odd ids or titles in a saved workflow no longer break loading, and
  unsafe group colours are handled.
- The add-choice button appears as soon as a node is selected.
- Copy clones no longer leak redraw timers.

Tests: tests/workflow_switches_frontend.test.mjs and
tests/workflow_switches_regressions.test.mjs, with additions to
tests/workflow_switches.test.mjs.

Not covered: repointing switches inside copied subgraphs. The review
wrote a test for it, but nothing delivers per-subgraph id maps yet, so
that test is left out.

No inputs, outputs or mapping keys change.
2026-11-08 19:35:10 -06:00
ausboss 2a2b31721b Compare, preview bar and Save Image ignore late replies and stale paths
Review fixes for the preview-carrying nodes.

- Compare and the input preview bar no longer rebuild their panel when
  a workflow loads, and a late Align or Save reply is ignored after the
  panel is removed or the picture changes.
- The preview bar clears its picture when the preview switch is off
  and works when two nodes watch the same source.
- Save Image forgets the old saved path when the folder changes or a
  run saves nothing, and can no longer pick the same file number as
  Compare at the same time.
- Save Image accepts bfloat16 and single-channel images.
- A blank linked caption writes no caption file, and a caption file
  that already exists follows the "on existing" setting.

Tests: tests/preview_lifecycle.test.mjs covers the panel and reply
cases; tests/test_image_save_helpers.py covers the image types, the
numbering and the caption collisions; two cache tests now call the
middleware directly instead of starting a test server.

Caption behaviour changes as described above. No inputs, outputs or
mapping keys change.
2026-11-08 19:25:24 -06:00
ausboss f4d42734fe Image Folder: fresh results on folder change, newest files kept
Review fixes for the Image Folder node and its routes.

- Switching folders or reloading a workflow no longer shows stale or
  mixed-up results: late replies are ignored, copy and upload locks
  hold, and removing a node closes only its own popups.
- A very large folder keeps its newest files instead of an arbitrary
  slice.
- Thumbnails refresh after a picture is rewritten in place.
- A run over more than 64 pictures marks every picture as done.
- Route errors no longer reveal server paths.

Tests: tests/image_folder_lifecycle.test.mjs and additions to
tests/test_image_folder.py cover each case; the frontend cache and
media upload tests now call the handlers directly instead of starting a
local server.

A run's completion note carries an extra context field and lists every
loaded picture. No inputs, outputs or mapping keys change.
2026-11-08 19:21:09 -06:00
ausboss 7d9e972f77 Keep node colours, snap corner resizes and show About in Nodes 2.0
Review fixes for the canvas extensions.

- A node colour picked from the right-click menu, Theme default
  included, now stays after save, reload and paste. An invalid Custom
  colour no longer overwrites the last good one.
- About this node appears in the right-click menu in Nodes 2.0, where
  the ? badge does not work.
- Resizing a node by its corner in Nodes 2.0 snaps to nearby lines;
  Shift bypasses the snap.
- A plain click on a resize handle no longer resizes the other selected
  nodes in Resize Together.
- Sideways mouse-wheel scrolling stays inside a code block that can
  scroll sideways.

Tests: tests/canvas_extensions.test.mjs runs the real extension code
against a fake page for each case above; tests/canvas_passthrough.test.mjs
gains the horizontal-wheel case.

Appearance now saves the chosen colour as a node property (ausbossColor).
No inputs, outputs or mapping keys change.
2026-11-08 19:18:28 -06:00
ausboss d513723bb0 Release 2.22.0 (#306) 2026-11-07 18:12:07 -06:00
ausboss 9f8bf4d803 Calmer node cards and picture bar on one shared palette (#308)
* Restyle widget cards in solid gray on one shared palette

Cards, number boxes and off|on switches take their colors, font and radii
from js/shared/theme.mjs. Controls are solid gray with no outlines on a
near-black card, grays are neutral, faint text holds 4.5:1, and number boxes
in a card are as tall as the row. A test keeps colour literals out of the
three modules and checks text contrast.

* Lift the card toward the node colour and brighten the off mark

* Restyle the picture bar, its stepper and switch on the shared palette

* Darken the card a step

* Picture frame back to the lighter well; changelog covers the picture bar
2026-11-07 17:41:47 -06:00
ausboss d6f7ddc5a3 Turn Fill small holes off by default on Mask by Touch (#307)
It quietly filled holes I wanted to keep, and it's folded under More so
you don't see it's on. New nodes now start with it off. Saved workflows
keep whatever they had. The Mask by Touch example is saved with it off.
2026-11-07 17:11:08 -06:00
ausboss 8bc2d183c9 Mask by Touch: show a changed picture without unplugging it (#304) 2026-11-07 16:07:39 -06:00
ausboss d7415f7863 Release 2.21.2 (#302) 2026-11-07 09:52:10 -06:00
ausboss 95a259cc69 Keep a new Workflow Note Tile compact in the classic canvas (#294) 2026-11-06 19:10:07 -06:00
ausboss eb3b74242a Fix shared note tiles and H3 video edit controls (#293) 2026-11-06 18:48:28 -06:00
ausboss 3a4ce52760 Release 2.21.1
Update release metadata and notes for the repository-hosted README badge fix.
2026-11-06 11:48:17 -06:00
ausboss 3b0baf351a Release 2.21.0 and keep GitHub releases current (#289)
Publish matching pack and frontend versions, release notes, and automatic GitHub Releases after Registry uploads. Point the README badge at the latest release.
2026-11-05 20:19:37 -06:00
ausboss 50389b0cdb Improve crop controls, playback, and media selection (#288)
* Group crop controls and put video scrubbing below the preview

* Stop IN where the connected clip length still fits

* Add play and pause beside the crop scrubber and clarify resize padding

* Preview the current brush beside Size in Image Compare

* Center the crop and its padding together on each axis

* Polish crop controls and load images from Outputs

* Add crop controls preview
2026-11-05 20:07:33 -06:00
ausboss 28dd526447 Remove the LoRA Loader stack row limit (#287) 2026-11-05 20:07:24 -06:00
ausboss 12e7d8c33f Limit Latent Size to workflow-approved resolutions and share panel controls (#285) 2026-11-05 18:23:30 -06:00
ausboss b3a3d7a8ca Add frameless workflow tiles and branded Markdown guides (#284) 2026-11-05 15:55:47 -06:00
ausboss 515b9ea4bd Frontend: use relative /scripts/ imports for subpath deployments (#276) (#282) 2026-11-05 00:31:20 -06:00
ausboss c37386c1d4 Seed: add a compact look, picked from the gear (#274) 2026-11-03 23:59:16 -06:00
ausboss 7cb0abaacf Add Load Audio node: wave, trim, preview and max length (#272) 2026-11-03 23:58:16 -06:00
ausboss 9bb8a201fe Merge remote-tracking branch 'origin/main' into fix/resize-selected-together 2026-11-03 14:33:13 -06:00
ausboss 52c3353c69 Resize together: rows share height, grids share both
How the selection is laid out decides what it shares: nodes stacked in a
column get the grabbed node's width, nodes side by side in a row get its
height, and a grid gets both. A pull on the top edge keeps each bottom
edge in place.
2026-11-03 14:22:46 -06:00
ausboss ded731859c Integer and Float: a big look, like Text (#270)
Integer and Float get the same gear as Text, with a big look: one large centred number with its arrows, in a taller row. The Pika H3 Flex workflow uses it for Seconds.

The look is kept in the node's properties (ausboss_text_look: "big"), so saved values and what the node sends don't change. A row with its own height in a look now takes that height when the look changes. Docs and changelog updated.
2026-11-03 13:45:54 -06:00
ausboss e14682f54f Line up: resize selected nodes together
With two or more nodes selected, pulling the edge or corner of one now
gives every selected node its width, in the classic look and Nodes 2.0.
A pull on the left edge keeps each right edge in place. Heights are left
alone, one Ctrl+Z undoes it, and Settings > AusBoss > Canvas > Resize
together turns it off.
2026-11-03 11:54:56 -06:00
ausboss 9ba82c45b4 H3 Prompt Writer: timeline, colored words, Sound and Music boxes
- Words light up as you type (@1, times, cuts, quotes, labels), with @
  autocomplete and a ? cheat sheet
- Timeline bar shows every picture a line names; drag a block to reorder,
  drag its edge to set its time, click an edge for a cut, click a block to
  jump to its line
- Sound and Music boxes (new optional inputs, appended) fill H3's
  overall_soundscape and non_diegetic_music
- Pictures and video as chips with their jobs; Length, Camera and Look stay
  plain rows so they can still be wired
- Help page and changelog updated; tests for the colors, autocomplete,
  timeline edits and the new inputs
2026-11-03 11:09:26 -06:00
ausboss 17fb493a66 Merge remote-tracking branch 'origin/main' into feat/h3-prompt-writer 2026-11-02 14:20:06 -06:00
ausboss a61d3d4ee0 H3 Prompt Writer node with width and height outputs 2026-11-02 02:07:29 -06:00
ausboss 1ea57b6538 Snap into line and Line up: nodes and groups line up while dragging, and a toolbar panel lines up a selection 2026-11-02 02:29:33 +00:00
ausboss 21ca6e9f47 Stitch Inpaint: Paste onto puts a hand crop back on the whole picture
Image Crop + Rotate + Pad's stitcher now remembers the picture and the
crop's position. With Paste onto on original, Stitch Inpaint lays the
result on the whole picture, straight, resized or turned. The default
stays crop, so saved workflows run as before.
2026-11-01 01:24:49 -06:00
ausboss 310d2ba5c3 Merge remote-tracking branch 'origin/main' into feat/switches-choice 2026-10-31 21:01:08 -05:00
ausboss b5bce60c22 Workflow Switches: + Choice, and a guide for AI agents
Two named settings used to take about 20 clicks through a menu and
Settings. + Choice saves how a node is set under a name, and the second
one turns the card into a pill. What a choice changes is what it holds
differently from the other choices, so it needs no off side. A choice can
also hold the nodes only it needs, so a missing model in the branch nobody
picked no longer stops the run.

js/docs/agents/workflow_switches.md tells an AI agent how to write a card
into a workflow file. It sits under js/docs because that ships with the
pack. A test holds its examples to what the card really stores.
2026-10-31 21:01:07 -05:00
ausboss f7d6596937 Release 2.20.5: LaMa Inpaint only opens known model files
A LaMa model file can run code when it opens, so LaMa Inpaint now checks
the file first and stops on anything it doesn't know. Frame Interpolate
errors no longer show server folders, Image Folder's "start over" keeps
going past the last picture, and One at a time in Workflow Switches holds
for new switches and for the setting being turned on.
2026-10-31 19:21:09 -05:00
ausboss 39da7a3931 Workflow Switches: One at a time holds for new switches and the setting
A new switch read on beside the rows already on, and turning the setting
on left every row on. A new switch now gives way to the rows that were
there, and turning the setting on keeps one row on.

Fixes #256
2026-10-31 08:49:11 -05:00
MarxMitX 4afb60c921 Image Folder: "start over" fixed
With "Run" -> "one per run", "After a run" -> "next" and "At the end" -> "start over", Picture
stopped at count + 1 after the last picture. The backend maps that to
picture 1, but nextPosition() capped it at count + 1 again, so every
following run loaded picture 1.

nextPosition() now takes at_the_end and correctly wraps the number around after
the last picture.
2026-10-30 23:38:34 +01:00
ausboss e4b9a08cec Release 2.20.4: Workflow Switches explain "empty"
The paste fix in 2.20.3 works when the paste happens, so a workflow pasted
and saved on an older version keeps its old numbers and still reads
"empty" after an update. The word's hover text now says what happened and
what to do: open the original file again, or add nodes from the switch's
menu. The help page says the same.
2026-10-30 13:17:56 -05:00