Commit Graph
28 Commits
Author SHA1 Message Date
ausboss 3d295b71ac Add a model-free Video Reframe and Slow Motion example
The pier clip is cropped to a square on the Clip node, Frame Interpolate
doubles its frames with blend, and Save Video plays them at the source
rate for 2x slow motion; Select Frame and Compare check an in-between.
No models, and it runs in seconds on a CPU.
2026-09-24 14:59:39 -05:00
ausboss d4cedb81be Show Select Every Nth doing the thinning in the node tour
The tour's Select Every Nth sat at nth 1, doing nothing, because it could
not carry the frame rate. Load Video now decodes every frame and Select
Every Nth keeps every other one and hands the halved rate to Frame
Interpolate; the output is unchanged: three seconds, 72 frames at 24 fps.
2026-09-24 00:37:50 -05:00
ausboss 448194520b Make the examples' named widget values match the values they load
The frontend saves each node's widget values twice, by position and by
name, and restores by name when its experimental Restore widget values
by name setting is on. Nine example nodes had a stale named copy: the
watermark example would have loaded a different source clip and trim
window, two MiniMax H3 samplers would have randomized their seed, and
three copies had the wrong keys. Each now mirrors its loaded values.
2026-09-24 00:35:10 -05:00
ausboss e31282a0b5 Turn VLM reference back on in the Krea 2 Outpaint example
The 2.1.0 refresh reset Krea 2 Encode to its defaults when it wired the
prompt in, which switched VLM reference off; the example's own note, the
README and the patch's help page all describe the AnyPaint recipe with
it on. The node's tooltips and help page described only Registered
Outpaint; they now name both setups, as the card already did.
2026-09-24 00:33:41 -05:00
ausboss adf0c28029 Store numbered stage groups in order in four examples 2026-09-24 00:31:55 -05:00
ausboss 135b410150 Stop promising source audio from the silent sample clip
ausboss_pier_9x16.mp4 has no audio stream, so the node tour, LTX and
watermark setup cards now say Save Video keeps the source audio when the
clip has a track.
2026-09-24 00:31:55 -05:00
ausboss 8086eacdde Strip other tools' metadata from the example workflows
Drop cg-use-everywhere's ue_properties and ue_links/links_added_by_ue,
comfyui_mcp workflow ids and VideoHelperSuite's VHS_* settings. None of
these packs is part of the examples; extra.ds and the pack's own node
properties stay.
2026-09-24 00:31:55 -05:00
ausboss 5b1f117314 Open the examples at a zoom that still draws widget text
Fourteen examples saved a view scale between 0.41 and 0.51, under the
frontend's default level-of-detail cutoff (about 0.57), so they opened
with blank widget faces. Raise those to 0.6 and keep each offset, so the
view still starts at the graph's top-left corner.
2026-09-24 00:31:55 -05:00
ausboss ae10a18929 Give every example workflow a valid unique id 2026-09-24 00:31:55 -05:00
ausboss 814b0a2bba Save LoRA Loader's on_missing value in six examples
These loaders were saved before on_missing existed, so their stored
[stack, separator, panel] values put the panel's "" into the on_missing
combo. Store the current order with the default "error".
2026-09-24 00:31:55 -05:00
ausboss ba128f94bc Credit SAM3 Segment to ComfyUI-RMBG in the watermark example 2026-09-24 00:31:55 -05:00
ausboss 0aa39eaa99 Link the caption encoders to the Qwen3-VL 8B download they load 2026-09-24 00:31:55 -05:00
ausboss ce3030354b Point example model loaders at the official download filenames
Eleven examples saved the maintainer's local subfolders (Flux.2 Klein 9B/,
Krea 2/, LTX/, minimax-h3/, Upscale-Models/ ...), so the files the setup
cards link to showed up as "Value not in list". Every core loader now
selects the basename of its download URL, carries a matching
properties.models entry, and the Krea cards name the official
krea2_turbo_fp8_scaled.safetensors their link fetches.
2026-09-24 00:31:55 -05:00
ausboss aef487375a Save to the output folder itself by default
Save Image and Save Video defaulted to an AusBoss subfolder, and every
example workflow saved into one. New nodes now save to ComfyUI's output
folder as image_... and video_..., and the examples keep their file
names without the folder. Saved workflows keep whatever prefix they
already have.
2026-09-24 00:00:43 -05:00
ausboss 4cb2af204a Release 2.1.0: Qwen workflows and polished image/video controls 2026-09-22 15:23:07 -05:00
ausboss 7970503b97 Disable seam color matching in the LTX video outpaint example 2026-09-11 14:26:24 -05:00
ausboss beb98ad6a8 Video timeline overhaul, outpaint-ready clip canvas, example styling
Video Crop + Rotate + Pad -> Clip / -> Frame:
- The rail under the preview is a timeline: playhead scrubbing on the node
  face, frame-accurate IN/OUT handles that carry the playhead, Set IN/OUT
  and I/O keys in the editor; js/shared/timeline_math.mjs mirrors the
  backend's inclusion rule and emits hundredth-grid seconds.
- Scrubbing no longer flickers: storyboard tiles only stand in when nearer
  than the frame on stage and are decoded at their target times; the scrub
  session returns the frame it already decoded instead of the next one;
  served previews are cached.
- Aspect lock on the format chips (pad, lock, clear) with lockPadding in
  transform_geometry; Lock aspect in the editor.
- A new source keeps fill, feather, resize, Snap and Limit and re-pads to
  the lit chip; a canvas row (fill, feather, resize) sits on the node face.
- The clip node declares a black fill and feather 0 as its defaults and the
  editor's Reset all follows the node's own declaration, so a fresh node or
  a reset never lands on the grey, feathered canvas the LTX IC-LoRA cannot
  paint; image nodes keep grey/24.

Examples:
- LTX 2.3 Video Outpaint: Select Frame -> core Generate Text writes the
  positive prompt; note rewritten with the tested rules (53 renders over
  six clips: only fill #000000 + feather 0 decide painting).
- Core model loaders coloured and Workflow Notes grown to fit across the
  other examples.
2026-09-09 17:03:01 -05:00
ausboss 699208dadc Prepare 2.0.0 release candidate 2026-09-07 19:56:23 -05:00
ausboss 3f715a4af8 Ship the crush-list build-out: 7 new node files, replace button, video and LoRA polish
- New nodes: Image Resize plus the Utility group (Text, Integer, Float,
  Show Text, Math Expression, Select Every Nth, Split Batch, Merge
  Batches, Free Memory) - the dependency-free gaps that let shared
  workflows drop heavy packs.
- Replace with AusBoss nodes (prototype): preview-then-confirm graph
  rewrite swapping known third-party nodes for pack equivalents, with a
  tested translation map, per-node opt-out, and refuse-with-reason for
  nodes the pack cannot stand in for.
- Load Video: single-frame FRAME picker, an honest "what will load"
  label from the probed source rate, drop-a-video-to-restore. Save
  Video: format-aware widgets and a file_path output. Stitch Inpaint
  gained a blend_mask output, Select Frame negative from-the-end
  indexing, Image Size a batch count - all appended, saved workflows
  load unchanged.
- LoRA Loader: drag-to-reorder rows, hover thumbnails on rows, file
  size and date in the info card.
- Appearance: flagship scheme deepened to slate-teal; the retired
  bright-teal pair upgrades automatically via LEGACY_SCHEME_PAIRS.
  Optional queue-completion chime, off by default.
- Image Resize invariant: pixels are only invented on an explicit
  width+height pad request - scale-derived modes resolve divisible_by
  snaps with a sub-half-step resize, never bars.
- Docs refreshed for six stale pages, stale text and metadata fixed
  across the pack, the panel-height rule codified in AGENTS.md and the
  brand skill, and ausboss_node_tour.json added - a model-free example
  exercising 17 node types in one graph.

Validated: scripts/validate_nodes.py (24 files), 300 JS tests, all
Python suites under the ComfyUI embedded interpreter.
2026-08-27 13:30:35 -05:00
ausboss a044b0fc84 removing half baked workflows 2026-08-18 17:07:49 -05:00
ausboss c8099952e5 Clear the compare panel, and make the example workflow shippable
Image Compare A/B drew a chip over the top-left of the picture carrying the
resolution and a hint about how to use the panel - covering part of what you
came to look at in order to say something you need once. The resolution moved
to a caption centred under the stage, and when the two sides are different
sizes both are named there: the panel scales them to fit, so nothing else on
screen would reveal the mismatch. The empty and error states still take the
middle of the stage, where there is no picture to hide.

HOLD became an A/B toggle. Press-and-hold meant the comparison only existed
while a mouse button was down, so the two images could never be held side by
side in memory. Each click now swaps the panel and the button names the side
you are looking at; flicking between them in place is how a small difference
actually becomes visible. A workflow saved on "hold" opens on the toggle it
became rather than quietly dropping back to slide.

The example workflow was stale in ways that would have shipped to Civitai:
its overview credited SimpleWatermarkRemover - the deprecated compatibility
id, not the node the graph actually uses - still called the node Refine Mask,
and linked to github.com/auboss, which does not exist. It gained model-setup
and requirements sections, consistent node titles, and the mask settings its
single-frame test was missing: that path shipped with every Mask Refine
control at zero, so the frame it previewed was not the result the full run
would produce, which is the one thing that test exists to show.
2026-08-18 16:59:44 -05:00
ausboss 0e4749db6b Preview each node's own result, and rework Save Video
Five things surfaced by release testing.

Node search: ComfyUI's search dialog cuts at 64 results and ranks by
[match tier, global popularity, name length], where tier 1 needs the name
to START with what was typed. Popularity is a fixed global table in which
every node from a new pack scores zero, so tier is the only lever. As
"Refine Mask" this node came 121st for "mask" and was never on screen.
Renamed to Mask Refine, which is 15th, and kept "refine mask" as an alias.
The mapping key is untouched, so saved workflows are unaffected. Aliases
alone cannot fix this: the frontend indexes them but drops them from the
tier scoring because they are a list rather than a string, so they decide
whether a node is findable, not where it lands.

Previews: Mask Refine, LaMa Inpaint and Select Frame showed whatever fed
their input, which is nothing when a segmentation node is upstream - Mask
Refine's panel was blank however the mask turned out. Each now returns its
result as a preview and the panel shows that, falling back to the input
before the first run. A node does not need to be an OUTPUT_NODE for this;
returning a ui payload is enough. ComfyUI's own preview for these nodes is
stood down so the picture appears once, in the panel, rather than also
underneath the node. That also fixes LaMa finishing a single image with an
empty panel: frame previews were only attached for batches over one frame,
on the assumption that one image would preview through the output path,
which a non-output node does not have.

Mask Refine opens on expand and blur with the other five behind MORE.
Hidden widgets keep their values and their saved positions. AUTO sets both
from the mask's size, scaled off the 8/4 hand-tuned for the watermark
workflow at 576px, because a feather is a fraction of the picture rather
than a fixed pixel count.

Save Video gains nvenc h264/h265, webm av1, ProRes mov, lossless ffv1 mkv,
gif and webp, plus pingpong and save_metadata. Every format is encoded and
read back in the tests rather than trusted from its table row. fps steps in
whole frames but stays FLOAT: an INT would refuse Load Video's fps link and
round 29.97 to 30, drifting picture off audio. mov files now carry the
embedded workflow, which they silently did not. The reload button is gone -
it only re-fetched what was already on screen.

Not done: Select Frame's preview updates on a run, not as the number
changes. Seeking to a frame needs the source fps, which the browser never
learns, so live scrubbing needs a server route - the surface Frame Chooser
was just demoted for.
2026-08-18 16:31:44 -05:00
ausboss 4e435e3013 Trade the display-name suffix for the 🆎 signature and unclip the chat toolbar
Every display name swaps ' (AusBoss)' for ' 🆎' - menus, docs, tooltips,
the README, and the example workflow's notes. Mapping keys never change,
so saved workflows keep loading; 'ausboss' keeps finding everything via
the category, the AUSBOSS_NODES_ prefix, and SEARCH_ALIASES. Python error
messages drop the suffix entirely so exception text stays ASCII for
cp1252 consoles.

The LM Studio endpoint toolbar declared no getMinHeight, so the frontend
gave its wrapper a 12px sliver and the buttons clipped; it now declares
32px through every sizing path, and the buttons breathe at 22px.
2026-08-16 20:29:38 -05:00
ausboss a7aecf8535 Finalize Save Video metadata and workflow wiring 2026-08-11 19:19:05 -05:00
ausboss 873662997e Add Save Video node and cut VHS and Easy-Use from the watermark workflow 2026-08-11 18:49:33 -05:00
ausboss 25d430f036 Rebuild the watermark remover workflow on the new loader and mask nodes 2026-08-11 18:42:30 -05:00
ausboss c3d0a8e8b6 Add LaMa Inpaint and Select Frame nodes with the watermark remover workflow 2026-08-11 18:03:19 -05:00
ausboss 83fae3b36b Build polished transform editors 2026-07-24 20:43:53 -05:00