resolve_lora_path followed links before checking that the file sits in models/loras, so a LoRA kept on another drive and linked into the folder was refused as escaping it and then reported missing, which stops the run when the node is set to stop on a missing LoRA. Containment is now checked on the path as written, with '..' folded but links not followed, the way ComfyUI's own loaders treat linked files.
ComfyUI-AusBoss provides compact image, video, inpaint, and workflow utility nodes. Numeric controls scrub by dragging, click to type, and use Shift for fine steps. Visual tools share the same crop, pad, and rotation controls. The ? in each node's title bar opens a card with its inputs and outputs, and a longer help page for every node opens in ComfyUI's node help panel.
One stack, less clutter. Absorb connected LoRA loaders, scrub strengths with visible feedback, and toggle the stack off and back to your previous selection.
Make room for more. Load Image + Pad prepares the canvas; Krea 2 + AnyPaint generates the extension; Stitch Inpaint brings the original back. Open the outpaint workflow →
Ready-to-run workflows built on these nodes are on Civitai, and I post new ones on X @Zanzibased. If a node saves you time, a ⭐ helps other people find it.
Install
In ComfyUI-Manager, open the Custom Nodes Manager, search for AusBoss and install it; comfy node install ausboss-nodes does the same from the command line. To follow the newest changes, clone the repository instead:
cd ComfyUI/custom_nodes
git clone https://github.com/ausboss/ComfyUI-AusBoss.git
Restart ComfyUI and search the node library for AusBoss. After an update, through Manager or git pull, restart again and hard-refresh the browser with Ctrl+Shift+R: the browser otherwise keeps the old JavaScript, and the pack shows a warning when it does. A new version reaches Manager once the Comfy Registry has reviewed it, so GitHub can be a little ahead.
If Manager can't find AusBoss
The classic ComfyUI-Manager window can answer Install Missing Custom Nodes with Failed to find the following ComfyRegistry list: ausboss-nodes. That comes from a Manager setting, not from the pack: open Manager, and if the Channel box is empty, pick default, then click Install Missing Custom Nodes again. The newer Manager panel (Extensions → Missing Nodes) finds the pack without this step.
Upgrading from 1.x: 2.0 removed LM Studio Chat (use Text for a fixed prompt), Align Image's offset_x/offset_y outputs, and Math Expression's typed a/b/c boxes, which are sockets now: put constants in the expression. 1.2 removed Drop Shadow, Pad Image (use Load Image + Pad) and Frame Chooser. Save Image writes only inside ComfyUI's output folder. The changelog has the details.
The pack uses Pillow, NumPy, Torch, and PyAV supplied by ComfyUI. Model workflows need the weights listed on their Workflow Note cards. LaMa additionally needs big-lama.pt in ComfyUI/models/lama/; it never downloads weights automatically.
| Find a node | What is included |
|---|---|
| Image | Load and transform, resize, align, realign edits, measure, compare, save |
| Video | Load and trim, pick a frame, transform a clip, interpolate, save |
| Mask and inpaint | Refine masks, LaMa removal, crop and stitch |
| Models and conditioning | LoRA stack, Krea 2 prompt and reference conditioning |
| Workflow utilities | Resolution, seed, batch operations, math, text, memory, notes, timer |
| Examples | Twenty-one grouped graphs with setup cards and thumbnails |
| For workflow creators | Setup cards, before and after, repeatable seeds, measured run times |
| Pack-wide tools | Help cards, node colors, recreate and replace, run status, completion sound |
Image nodes
Image Crop + Rotate + Pad 🆎
Load an image and rotate → crop → pad it. Drag cyan crop handles, orange padding diamonds, and the green rotation handle directly on the compact preview, or open the full-screen editor for precise dimensions, zoom, and pan. Choose Crop or Pad below the aspect chips: Crop locks a crop ratio; Pad grows the canvas to the chosen shape. Reset crop restores the full crop, and Align sets the canvas pixel multiple. Feather and output resizing are available on the node and in the editor.
Returns the transformed image, a generated-area mask, a stitcher, the untransformed original, and the output width and height. The mask covers padding, source transparency, and rotation corners. Connect the stitcher to Stitch Inpaint after generation; Load Image + Pad offers additional fill choices and a separate conditioning reference.
Shape it by eye, finish with exact values. The same handles work on the node and in the full-screen editor. Try the image and video transform example →
Load Image + Pad 🆎
Build an outpaint canvas by dragging its edges. The Source list previews the image under the pointer. The card offers solid color, edge-average, edge-pixel, or blurred-image fill, a seam feather, canvas multiple, and megapixel budget. Exact padding opens one scrub control per side. A zero budget keeps the source size; a positive budget resizes the source before padding.
Returns the padded image, padding mask, width, height, a stitcher, and a smaller unpadded reference for conditioning. Connect the stitcher to Stitch Inpaint after generation to preserve the source outside the seam.
Image Resize 🆎
Resize to width × height, longest edge, shortest edge, megapixels, or a scale factor. Fit inside a box, stretch to it, cover and crop, or pad with a chosen color. New nodes start in megapixels mode; saved workflows retain their chosen mode. The card shows the controls relevant to that mode; width and height accept separate links.
An optional mask follows the same geometry. Outputs are image, mask, width, and height. Pad bars become white in the mask; otherwise a missing input mask stays black. divisible_by rounds the dimensions to a chosen multiple, and the interpolation control selects the image filter.
Align Image 🆎
Snap dimensions to a chosen multiple through resize, crop, or pad. Crop and pad have position anchors; padding can use edge pixels or a solid color. Returns the aligned image and its width and height. Use it when a downstream model requires divisible dimensions without retyping a target size.
Image Size 🆎
Read width, height, longest_edge, shortest_edge, and batch count as integers. Wire these into resizing, latent creation, frame-count calculations, or math so the workflow follows its source dimensions.
Color Match 🆎
Match an image to a reference with LAB, RGB, MKL, or histogram transfer. Strength controls the blend; an optional mask and invert control limit the correction. With reference_mode set to first frame, every frame uses the batch's first frame as its reference. This can reduce color drift between frames, but does not stabilize motion.
Realign to Source (EXPERIMENTAL 🧪) 🆎
Undo the zoom and shift an edit model adds to a broad edit. Qwen Image 2.1 draws style changes a few percent taller, up to about 12%, differently for every seed. Wire the edit and the picture it was made from: the node measures the drift and warps the edit back onto the source's frame, at the source's size. It fixes the whole-frame zoom and shift, not shapes a restyle redrew in a new place, so the result lines up closely rather than pixel for pixel.
Fit is zoom + shift (how Qwen edits drift) or affine. The model pushes a thin strip out of view: empty_mask marks it to crop or inpaint, and Empty fill chooses what it shows meanwhile. report gives the measured zoom and shift. A frame it cannot measure passes through at the source's size, and the report says why. Try the Qwen Image 2.1 Edit + Realign example →
Image Compare A/B 🆎
Compare two images with a sliding reveal or a full-image A/B toggle. The picture remains unobstructed, with its resolution below it. The panel grows with the node and passes image A through, so it can sit anywhere along an image wire.
Save Image 🆎
Choose an output folder, browse its subfolders, edit the filename, and check the live path preview. Counter, date, time, size, and batch-number chips build reusable names. Save PNG, lossless WebP, or lossless JPEG XL, with optional embedded workflow metadata.
Link filename to retain an upstream name, or caption_text to write a matching .txt sidecar for each image. The counter selects a free path; turning it off deliberately reuses the chosen path. JPEG XL needs the optional pillow-jxl-plugin extra. See the full naming and compatibility notes.
From final render to organized output. A portrait from the Krea 2 Studio example, saved with its date, dimensions, and workflow.
Video nodes
Give a vertical clip a wider world. This LTX 2.3 example extends the sides and stitches the source frames back in, keeping the clip's audio when it has any (this preview loop is silent). The outpaint LoRA needs a pure black fill; grey or white bands come back flat. With that canvas it works at any aspect ratio and on any side. Open the video outpaint workflow →
Load Video 🆎
Upload a video, or pick one from a Source list that plays the clip under the pointer, and trim it with IN/OUT handles or typed timecodes. The player previews the selected window and can loop it. Width and height can resize during decode; setting only one preserves aspect. every_nth thins frames and adjusts the reported fps to preserve timing; max_frames limits the decode.
Returns frames, lazy audio, frame count, fps, width, height, duration, and a core VIDEO handle. Only the selected window is decoded, with a memory check before a large allocation. Connect its fps downstream when saving the frames.
Video Crop + Rotate + Pad → Frame 🆎
Find one frame in an uploaded or local video, then apply the image transform controls and an optional megapixel resize. A playhead rail on the node scrubs to the frame; the editor adds exact frame stepping and playback. Returns one transformed image, its generated-area mask, a stitcher, the selected original frame, and the output width and height. Use the Clip variant for an entire sequence.
Video Crop + Rotate + Pad → Clip 🆎
Apply one transform to every frame of a trimmed clip. The node combines source selection, a timeline with a playhead and frame-accurate IN/OUT handles, frame thinning, a frame limit, crop/rotate/pad handles, and output resizing. Dragging a trim handle shows the exact first or last frame the run keeps, and the selection's bright part is what reaches the output. Fill, feather and the resize budget sit on the node face, and a new clip keeps them, so the black hard-edged canvas a video outpaint model needs survives a source swap; a fresh Clip node starts with that canvas and the editor’s Reset transform returns to it. Snap trims the tail to an 8n+1 or 4n+1 frame count when the next video model needs it. Choose Crop or Pad beneath the format chips. In Pad mode, tap a format to pad to it and tap again to lock it; Crop mode locks the crop ratio.
Returns frames, mask, audio, frame count, fps, size, duration, a stitcher, and the selected original frames before the spatial transform. Inpaint & Stitch in the editor controls the protected source region and blend preview. Wire that stitcher directly to Stitch Inpaint after a video outpaint; no intermediate Crop For Inpaint is needed. Processing is chunked to limit temporary memory.
Fixed frames selects an exact output length: 120 frames at 24 fps is five seconds. Drag either handle or the highlighted band to move the whole window. Type the count or link a frame-count node to fixed_frames; use 0 for free trim. The existing frame cap remains a maximum limit.
Frame, trim, and prepare the blend in one editor. The timeline and protected-region preview belong to the same Clip node used in the video outpaint above.
Select Frame 🆎
Select one unchanged frame from an image batch: 1 is the first, -1 the last, and -2 the next-to-last. Zero and out-of-range values report the valid range. The preview switch shows the selected frame or hides the picture and skips writing its preview file.
Frame Interpolate 🆎
Retiming uses source and target fps, so 24 → 30 works alongside whole-number multiples. Blend crossfades frames; optical flow uses locally cached RAFT weights. Scene-cut detection holds frames across hard cuts instead of interpolating between unrelated shots. Chunked processing bounds working memory.
Returns the retimed frames and output fps. It does not process audio; carry the source audio separately to Save Video. See weight setup and timing details, or try the slow-motion example →
Save Video 🆎
Save an image batch or a core VIDEO as MP4 H.264/H.265, WebM VP9/AV1, ProRes MOV, lossless FFV1 MKV, GIF, or WebP. Available encoders depend on the local FFmpeg/PyAV build; the H.264/H.265 choices include CPU and NVENC options. Video outputs carry color tags, optional audio, and optional embedded workflow metadata.
Ping-pong runs forward and back without repeating the turnaround frames. A connected VIDEO supplies its own rate; otherwise wire fps from the loader or interpolator. The result player shows the encoded file. Dropping a supported saved video back onto the canvas restores its embedded graph. See format and audio details.
Mask and inpaint nodes
Edit the part that matters. Mask Refine, Crop For Inpaint, and Stitch Inpaint carry a painted region through this Klein 9B edit. Both pictures show the same detail crop. Open the inpaint workflow →
Mask Refine 🆎
Expand or shrink a mask, blur it, fill holes, smooth jagged edges, and adjust black and white points. The compact card starts with Expand and Blur; More opens the remaining controls. AUTO chooses expand and blur values from mask size. The optional preview shows the refined mask.
Returns the refined mask and its inverse. Guided filter and matting use a guide image and require their optional extras; the default off mode has no extra dependency.
LaMa Inpaint 🆎
Replace white mask regions using a local TorchScript LaMa checkpoint. Black-mask pixels are preserved. One mask can serve an entire image batch, and video frames are processed one at a time to bound VRAM. The preview can stream completed frames during execution or be switched off.
Put big-lama.pt in ComfyUI/models/lama/. This is a frame-by-frame remover: difficult video textures may need additional temporal cleanup. The older SimpleWatermarkRemover mapping remains available as a compatibility alias. Try the object removal example →
Crop For Inpaint 🆎
Crop the mask's bounding region with surrounding context, optionally resize it to a target size or megapixel budget, and return the cropped image, sampling mask, and stitcher. The card exposes the common mask and blend settings, with target sizing and canvas extension behind a disclosure.
The sampling mask and stitch blend are separate: mask growth/blur determines what the model can edit, while the blend margin determines how the result joins the original. Increase Context or Extra context when the model needs to see more of the surroundings. The extend_* controls can grow the canvas for outpainting.
Stitch Inpaint 🆎
Paste a generated crop or outpaint back using a stitcher from Crop For Inpaint, Load Image + Pad, or any Crop + Rotate + Pad node. Pixels outside the blend region remain bit-identical to the stitcher's source. Video stitchers carry the per-frame originals.
Tone match reduces color discontinuities at the seam. Fix edge halo corrects a twice-blended rim and uses the optional matting extra; without it, the node warns and performs the normal stitch. See the stitcher and batch contract.
Models and conditioning
LoRA Loader 🆎
Keep a complete stack in one node: enable each row, choose a model from the searchable folder picker, and scrub its strength. The centered strength bars compare enabled rows on one scale; disabling the strongest row rescales the remaining bars. Model and CLIP strengths can be separated, and CLIP input is optional.
One stack, a distinct look. Krea 2 with the Vintage Tarot LoRA enabled; the other rows are parked for later. Try the LoRA stack example →
The toolbar holds the stack toggle, saved templates, reconnect, and settings. Absorb chain LoRAs in the settings menu moves recognized loaders into this stack in application order, retaining repeated LoRAs. It bypasses the originals only when MODEL, CLIP, and auxiliary connections can be preserved. Shared branches and linked stack settings leave the chain untouched. File metadata, a .civitai.info sidecar beside the file, and your saved words populate each LoRA's information card; selected trigger words flow through the triggers output.
Moved files resolve by basename when the match is unambiguous. A missing enabled LoRA stops validation by default. Stop on missing LoRA can be turned off to warn and skip instead. A LoRA that patches nothing on the model reports a warning naming the file.
Krea 2 Encode 🆎
Encode positive and negative prompts in one card. With a VAE and reference images connected, it also attaches reference latents. Reference images are resized for conditioning; VLM reference controls whether the text encoder's vision tower also sees them. Leave the reference inputs empty for text-to-image.
The prompt supports multiline editing and incoming text links. See reference preparation and use the matching example when combining it with an outpaint LoRA.
Krea 2 Outpaint Model Patch 🆎
Register reference tokens at a defined place on the target canvas. Put the patch after LoRAs and before sampling; connect a stitcher and the reference conditioning from Krea 2 Encode.
The card exposes Reference placement and KV cache. Placement must match the adapter:
- Whole canvas + AnyPaint: the padded image is the reference, VLM reference is on, and a masked starting latent protects known pixels. Several sides can extend in one pass. This is the supplied Krea outpaint example.
- Source rectangle + Registered Outpaint: use the unpadded reference with VLM reference off. The source must span one complete canvas axis; extend left/right or top/bottom per pass, including any rounding padding.
The patch depends on ComfyUI's attention internals. Its help page explains both wiring contracts and the behavior without reference conditioning.
Workflow utilities
Small controls you can build a graph around. Set the canvas once and share a seed across samplers. Explore Resolution Master →
Resolution Master 🆎
Choose landscape or portrait, pick a ratio, adjust the megapixel budget, or drag the canvas handles. The orientation toggle remains independent of the ratio, including while square is selected. Typed width and height remain exact; gesture snapping is adjustable.
Returns width, height, and an empty image latent. The gear chooses 4-, 16-, or 128-channel layout and batch size. Latent dimensions use complete downsample cells; choose dimensions compatible with the selected layout when connecting the latent to a sampler. For video, use the width and height outputs with the model's own video latent node.
Seed 🆎
Share one seed across samplers. Random, Fixed, and Step control what happens after generation; switching to Random, or from Fixed to Step, moves the seed right away so the next queue is a new run. New seed rolls and pins a value; Use last run restores the value the backend actually used. The recent-history menu retains eight seeds and saves with the workflow.
Select Every Nth 🆎
Keep every nth image, starting after a zero-based offset. For example, nth 2 with offset 0 keeps frames 1, 3, 5; offset 1 keeps 2, 4, 6. The output retains source order. Wire the batch's fps in, and the fps output divides it by nth so the thinned clip keeps its duration.
Split Batch 🆎
Split after a one-based frame index. Output a includes that frame; b contains the remainder. Both outputs must retain at least one frame, so invalid split points report the valid range.
Merge Batches 🆎
Append batch b after a. Matching sizes remain unchanged. For different resolutions, resize to a's size, resize to b's size, or stop with an error. Channel counts must already agree.
Text 🆎
A growing multiline card that passes its contents unchanged to a STRING wire. Use it for a prompt, caption, path, or other text shared by several nodes. Spaces and line breaks are retained.
Integer 🆎
A scrub control that emits one INT. Share dimensions, counts, or other whole numbers through links.
Float 🆎
A scrub control that emits one FLOAT. Share strengths, scales, frame rates, or durations through links.
Math Expression 🆎
Calculate from linked a, b, and c inputs, each accepting integers or floats. Unwired variables read as zero. Supports arithmetic and min, max, abs, round, floor, ceil, and sqrt through a restricted expression parser.
Returns a float and a rounded integer; integer halves round away from zero. Use expressions such as a * 2 or ceil(a / 32) * 32 to derive values from upstream data.
Show Text 🆎
Display incoming text in a selectable, resizable panel and pass it through unchanged. The last displayed text saves with the workflow. Long displays may be truncated, but the output retains the complete value. Runs as an output node, so no downstream consumer is needed.
Free Memory 🆎
Pass any value through while unloading cached ComfyUI models, collecting Python garbage, and clearing the CUDA allocator cache where available. Put it between heavy stages when the next stage needs memory. It runs when its inputs change, respects graph caching, and may add model reload time downstream.
Workflow Note 🆎
Add a title, Markdown instructions, model download links and destination folders, required node packs, and useful links. Installed models and packs are checked against the current instance. Edit changes the card; Banner makes a compact section title. The note never executes, and its text is not rendered as arbitrary HTML.
Run Timer 🆎
A resizable stopwatch for the whole executing queue, with no wires. It starts when execution begins, holds the elapsed total when the run ends, and saves the last time with the graph. Recent times are available from its context menu. It is a display aid and does not change execution order.
Example workflows
Open the JSON files from example_workflows/, or use the pack's entries in ComfyUI's template browser. Each has a matching thumbnail, numbered groups, and a Workflow Note explaining setup and operation.
Copy the files in example_workflows/inputs/ into ComfyUI/input/ first. The rowboat PNG includes a painted mask. Model paths can include local subfolders: select the corresponding installed file in each loader before running. A green model indicator means the file exists; it does not guarantee the loader has selected that path. Model licenses and any download access requirements remain with their authors.
| Workflow | Purpose | Requirements |
|---|---|---|
| Resolution Master | Orientation, ratios, MP budgeting, and a solid-color preview | Core + this pack; no models |
| Image and Video Transform | Crop/Pad controls, masks, alignment, and comparison against the original source | Core + this pack; included picture and clip |
| Video Node Tour | Trim, split, merge, resize, mask, retime, compare, and save a clip | Core + this pack; included clip |
| Video Reframe and Slow Motion | Crop a vertical clip to a square, double its frames, and save it at half speed | Core + this pack; included clip |
| Dataset Frames from a Clip | Every nth frame at one size, saved as PNGs with caption sidecars | Core + this pack; included clip |
| LaMa Object Removal | Refine a painted mask, remove the object with LaMa, and stitch it back | big-lama.pt; included masked image |
| Krea 2 Studio | LoRA triggers, draft, learned upscale, low-denoise refinement, tone match, compare | Krea 2 Turbo components + a 4× upscaler |
| Krea 2 Text to Image + LoRA Stack | A stacked LoRA prompt with trigger words | Krea 2 Turbo + enabled style LoRAs; anime row is optional |
| Krea 2 Prompt from Image | The Krea text encoder describes a picture, then renders its prompt | Krea 2 components with core Text Generate support |
| Krea 2 Outpaint | Describe the unpadded source, extend several sides, then stitch it back | Krea 2 Turbo + AnyPaint LoRA; reuses its text encoder for captions |
| Qwen Image 2.1 Text to Image | Prompt, optional LoRA stack, visual canvas sizing, and PNG output | Qwen Image 2.1 INT8, Qwen3-VL 8B INT8, and the 2.1 VAE; downloads on the note card |
| Qwen Image 2.1 Edit | Instruction-based editing at a source-derived size, with before/after comparison | Same Qwen 2.1 components + the consistency LoRA; included pier image; supports additional references |
| Qwen Image 2.1 Edit + Realign | A style edit that came back taller, realigned onto its source and compared before and after | Same Qwen 2.1 components; included pier image |
| Klein 9B Edit | Edit a picture at a source-derived working size | Distilled Klein 9B, Qwen encoder, Flux 2 VAE |
| Klein 9B Inpaint | Refine the painted mask, crop, edit, and stitch | Same Klein components; included masked image |
| Klein 9B Outpaint | Source description, padded reference, masked latent, source-preserving stitch | Klein components + PixaOutpaint LoRA + Qwen3-VL 8B INT8 caption model |
| LTX 2.3 Video Outpaint | Extend a clip's canvas while retaining source audio and pixels | LTX 2.3 components, distilled LoRA, outpaint IC-LoRA |
| MiniMax H3 Text to Video | Five-second request rounded to 124 frames, with generated audio | H3 FL2VA components + 4-step turbo LoRA |
| MiniMax H3 Image to Video | Source description plus your motion/audio direction | H3 components + turbo LoRA + Qwen3-VL 8B INT8 caption model; included image |
| MiniMax H3 First + Last Frame | Describe both endpoints, then guide a 20-step base-model transition | H3 FL2VA components + Qwen3-VL 8B INT8 caption model; two included images |
| Simple Video Watermark Remover | Detect and remove an overlay, with a single-frame comparison branch | ComfyUI-RMBG / SAM3 plus big-lama.pt and this pack |
The other twenty examples use core nodes plus this pack. Model-free examples are the quickest installation check. Generation speed and memory depend on the selected weights, dimensions, frame count, and other GPU workloads; the graph settings are reproducible, hardware timing is not.
For workflow creators
Sharing a workflow? A few nodes make it easier for the people who download it:
- Workflow Note puts a setup card on the canvas with each model's download link, folder and size, the node packs it needs, and your links, and checks them against the reader's install.
- Image Compare A/B shows the result against its source with a sliding reveal.
- Seed keeps runs repeatable, and Use last run brings back the seed the backend actually used.
- Run Timer shows how long the whole run took, so speed notes are measured.
- Save Image embeds the workflow in PNG, lossless WebP or JPEG XL files with names you control.
Readers get the nodes through ComfyUI-Manager's missing-node install, like any other pack.
Pack-wide tools
- Help cards: the ? in a node's title bar opens its description, inputs and outputs. Run Timer, which has no title bar, has About this node in its right-click menu.
- Recreate node 🆎 (right-click an AusBoss node) rebuilds a node saved by an older version from the current definition, keeping its values, links, position and colors.
- Replace with AusBoss nodes 🆎 (canvas right-click or the command palette) finds third-party nodes this pack can stand in for, such as VideoHelperSuite's Load Video and Video Combine or KJNodes' Color Match, previews each swap, and replaces the ones you leave ticked.
- Node colors: Settings → 🆎 AusBoss → Appearance sets the scheme for every AusBoss node (AusBoss, Graphite, Slate, Teal, Moss, Plum, Rust, Navy, Custom, or Theme default), and a node's right-click AusBoss color menu recolors one. Hand-colored nodes keep their colors.
- Run status: under Settings → 🆎 AusBoss → Chrome, queue status can appear in the browser tab's title and icon, running nodes get live progress badges, and per-node run times can be shown.
- Completion sound: Settings → 🆎 AusBoss → Notifications plays a short chime when the queue finishes.
Editor controls and settings
- Cyan squares crop, orange diamonds pad, and the green handle rotates. Shift snaps rotation to 15°.
- In the full-screen editor, use the mouse wheel to zoom and middle mouse or Alt-drag to pan. On the compact node stage, wheel and middle mouse continue to control the graph.
- Alt+E opens the selected transform editor; change it in Settings → Keybindings.
- Video editors offer frame stepping, playback, and exact timeline seeking, on the node face as well as in the editor. The Clip node's IN/OUT handles are frames on the source's own grid, so the frame shown for IN is the first frame decoded and the frame shown for OUT is the last.
- Optional aspect presets live in
ausboss_presets.jsonbeside the pack. Copyausboss_presets_example.jsonto start; the user file survives updates.
LoRA Loader and Resolution Master have their own gear menus for per-node preferences.
The video transform nodes' local path mode reads only videos inside ComfyUI's input, output and temp folders, and Save Image writes only inside the output folder: no widget can point the pack anywhere else on the disk; see the video transform help.
Optional extras
Three features need an extra Python package. Install it with the Python that runs ComfyUI; for the Windows portable build that is python_embeded\python.exe -m pip install ... from the portable folder.
python -m pip install opencv-contrib-python # Mask Refine: guided filter
python -m pip install "pymatting>=1.1" # Mask Refine: matting; Stitch Inpaint: edge halo
python -m pip install pillow-jxl-plugin # Save Image: lossless JPEG XL
Default mask operations, ordinary stitching, PNG, and lossless WebP do not need these extras. Optical flow needs cached RAFT weights; model setup is described in the corresponding node help. Codec support depends on the ComfyUI environment.
Compatibility and development
The declared minimum is ComfyUI 0.27.1. Newer model examples require a core that includes their model family; updating only this pack cannot add missing core model support. It is tested with ComfyUI 0.37.0 and frontend 1.53.6. The pack supports classic canvas and Nodes 2.0, and backend execution does not require an editor to be open.
Backend changes need a full ComfyUI restart. Frontend changes need a hard refresh. Use ComfyUI's Python for backend tests:
python scripts/validate_nodes.py
python scripts/release_preflight.py
python scripts/run_python_tests.py
node --test tests/*.test.mjs
Backend tests run in separate processes because their offline ComfyUI stubs must not leak between files. CONTRIBUTING.md covers bug reports and pull requests; docs/live_testing.md covers canvas, mouse-drag, save/reload, and workflow execution checks; docs/adding_a_node.md and AGENTS.md define the public-node and release gates.
Feedback
Bug reports and workflow ideas are welcome in issues. Security problems go through SECURITY.md. Every release is described in the changelog.
License
MIT. See LICENSE.









