- 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.
1.4 KiB
1.4 KiB
Free Memory
Passes any wire through unchanged and, on the way, releases what can be released: comfy's cached models are unloaded, Python garbage is collected, and the CUDA allocator cache is emptied. Put it between a heavy stage and the next — after a video decode, before an upscale — so the second stage starts with free VRAM instead of an out-of-memory error.
Controls
- value: Any wire — the node's input and output are wildcard-typed, so
it splices into an
IMAGE,LATENT,MODEL, or any other connection without adapters.
Output
- value: The input, passed through unchanged.
Behavior
- Every release step is best-effort. If ComfyUI moves or renames one of the APIs involved, that step is skipped and the wire still flows; the node never becomes the reason a workflow fails. What was actually freed is printed to the console each run.
- The comfy imports happen when the node runs, not when the pack loads, so a core change surfaces as a skipped step rather than deleting the node from the menu.
- Like any node, it only runs when its input changes — it does not force re-execution, so inserting it never breaks ComfyUI's caching downstream. Freeing happens on the runs where work actually flows through.
- Models unloaded here are reloaded by the next node that needs them; that reload costs time, which is the trade for the freed VRAM.