- 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.
33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
# 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.
|