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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
* 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
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.
Publish matching pack and frontend versions, release notes, and automatic GitHub Releases after Registry uploads. Point the README badge at the latest release.
* 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
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.
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.
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.
- 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
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.
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.
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.
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
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.
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.