Extensions/WAS Node Suite v3
ComfyUI Extension Runs on cloud

WAS Node Suite v3

WAS-NS reborn; Tools for image processing, filters, masking, text, logic, numbers, latents, files, 3D scenes, and animation.

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
WASasquatch/was-node-suite-comfyui
Nodes457
On cloudRunnable
CategoryWAS Suite/Latent, WAS Suite/Image/AI
Stars1,844
Updated4 days ago

Nodes (457)

Blend Latents

Mixing two latents is not the same as mixing two images

WAS Suite/Latent
BLIP Analyze Image

Caption or interrogate an image in ComfyUI

WAS Suite/Image/AI
BLIP Model Loader

Load the captioning model that reads your image

WAS Suite/Loaders
VAEEncode (Bundle Latent)

A VAE encode that ships its output inside the workflow file

WAS Suite/Latent
Boolean To Text

See what your logic chain actually decided

WAS Suite/Logic/Boolean
Bounded Image Blend

Paste a processed crop back without a visible seam

WAS Suite/Image/Bound
Bounded Image Blend with Mask

Paste a cropped edit back in, seamlessly

WAS Suite/Image/Bound
Bounded Image Crop

Crop an image to a computed bounding box

WAS Suite/Image/Bound
Bounded Image Crop with Mask

Crop to whatever your mask covers

WAS Suite/Image/Bound
Bus Node

Bundle model, clip, VAE and conditioning into one wire

WAS Suite/Utilities
Checkpoint Loader (Advanced)

The standard loader, plus a filename you can actually use

WAS Suite/Loaders
Checkpoint Loader (Simple, Advanced)

A checkpoint loader that also hands you the model name

WAS Suite/Loaders
CLIP Input Switch

Pick between two CLIP inputs with a boolean

WAS Suite/Logic/Switch
CLIPSeg Batch Masking

Mask a whole folder of images with one text prompt

WAS Suite/Image/Masking
CLIPSeg Masking

Describe what you want masked, in plain English

WAS Suite/Image/Masking
CLIPSeg Model Loader

The model behind WAS's text-prompted masking

WAS Suite/Loaders
CLIP Text Encode Sequence (Advanced)

A prompt schedule for KSampler Sequence

WAS Suite/Conditioning
CLIPTextEncode (NSP)

A drop-in text encoder that also rolls the dice

WAS Suite/Conditioning
CLIP Text Encode Sequence (v2)

Eased prompt schedules for KSampler Sequence v2

WAS Suite/Conditioning
CLIP Vision Input Switch

One checkbox instead of two workflows

WAS Suite/Logic/Switch
Conditioning (Blend)

Mixing two prompts into one without re-encoding

WAS Suite/Conditioning
Conditioning Input Switch

Toggle between two prompts in one graph

WAS Suite/Logic/Switch
Constant Number

Hold one value in one place

WAS Suite/Number
Control Net Model Input Switch

Toggle between two ControlNet models with one boolean

WAS Suite/Logic/Switch
Convert Masks to Images

The batch version of a conversion you need constantly

WAS Suite/Image/Masking
Create Grid Image

Turn a folder of outputs into one contact sheet

WAS Suite/Image/Process
Create Grid Image from Batch

Tile a batch into one contact sheet

WAS Suite/Image/Process
Create Morph Image

Crossfade two images into a GIF

WAS Suite/Animation
Create Morph Image from Path

Crossfade a folder of images into a GIF/APNG

WAS Suite/Animation
Create Video from Path

Turn a folder of frames into a video (Windows, experimental)

WAS Suite/Animation
Debug Input

Print whatever's flowing through a wire to the console

WAS Suite/Debug
Debug Number to Console

Catch a bad number before it becomes a bad seed

WAS Suite/Debug
Dictionary to Console

The debug tap for WAS's dictionary tools

WAS Suite/Debug
Diffusers Hub Model Down-Loader

Pull a HuggingFace diffusers model straight into your graph

WAS Suite/Loaders
Diffusers Model Loader

Load a HuggingFace diffusers model you've already downloaded

WAS Suite/Loaders
Hex to HSL

Turn a picked color into numbers WAS's other color nodes can use

WAS Suite/Utilities
HSL to Hex

Turn computed color math back into something you can actually use

WAS Suite/Utilities
Image Histogram Chart

A histogram, wired straight into your graph

WAS Suite/Image/Analyze
Image Aspect Ratio

Read a picture's shape and branch a workflow on it

WAS Suite/Number/Operations
Image Batch

Merge multiple image batches into one

WAS Suite/Image
Image Blank

Make a solid-color image in ComfyUI

WAS Suite/Image/Generate
Image Blend

Fade one image into another by opacity, no mask needed

WAS Suite/Image
Image Blend by Mask

Composite two images using a mask as the seam

WAS Suite/Image
Image Blending Mode

Photoshop blend modes inside ComfyUI

WAS Suite/Image
Image Bloom Filter

That soft glow around bright highlights, straight from game/photo post-processing

WAS Suite/Image/Filter
Image Bounds

The bounding box behind WAS's crop-and-paste-back pipeline

WAS Suite/Image/Bound
Image Bounds to Console

Print your crop coordinates so you're not guessing

WAS Suite/Debug
Image Canny Filter

An edge map without installing a second pack

WAS Suite/Image/Filter
Image Chromatic Aberration

The RGB-split lens effect for a sci-fi/VHS look

WAS Suite/Image/Filter
Image Color Match

Match a whole batch to one frame's look — flicker-free

WAS Suite/Image/Adjustment
Image Color Palette

Extract a palette from an image in ComfyUI

WAS Suite/Image/Analyze
Image Crop Location

Crop to exact pixel coordinates

WAS Suite/Image/Process
Image Crop Square Location

Crop a perfect square around a center point

WAS Suite/Image/Process
Image Displacement Warp

Push pixels around using a second image as a map

WAS Suite/Image/Transform
Image Dragan Photography Filter

The hyper-contrast portrait look in one node

WAS Suite/Image/Filter
Image Edge Detection Filter

A quick outline pass without reaching for Canny

WAS Suite/Image/Filter
Image fDOF Filter

Fake a shallow depth of field on a flat AI image

WAS Suite/Image/Filter
Image Film Grain

The post-process that makes AI images look shot, not rendered

WAS Suite/Image/Filter
Image Filter Adjustments

Brightness/contrast/saturation in one node

WAS Suite/Image/Filter
Image Flip

Mirror an image horizontally or vertically

WAS Suite/Image/Transform
Image Generate Gradient

Build a custom gradient image in ComfyUI

WAS Suite/Image/Generate
Image High Pass Filter

Pull the fine detail out of an image, Photoshop-sharpen style

WAS Suite/Image/Filter
Image History Loader

Pull a recently-loaded image back out of history

WAS Suite/History
Image Input Switch

Flip between two images with a boolean

WAS Suite/Logic/Switch
Image Levels Adjustment

Contrast and tone control in ComfyUI

WAS Suite/Image/Adjustment
Image Load

Load an image from any path or URL, not just ComfyUI's input folder

WAS Suite/IO
Image Lucy Sharpen

Deconvolution sharpening, not a plain unsharp mask

WAS Suite/Image/Filter
Image Median Filter

Smooth out surface noise without melting your edges

WAS Suite/Image/Filter
Image Mix RGB Channels

Rebuild an image from its red, green and blue

WAS Suite/Image/Process
Image Monitor Effects Filter

CRT scanlines and signal-glitch looks in one node

WAS Suite/Image/Filter
Image Nova Filter

Split an image into rippling RGB waves

WAS Suite/Image/Filter
Image Padding

Add breathing room around an image (and get it back cleanly)

WAS Suite/Image/Transform
Image Paste Crop

Put your edited patch back exactly where it came from

WAS Suite/Image/Process
Image Paste Crop by Location

Paste a crop at custom coordinates in ComfyUI

WAS Suite/Image/Process
Image Paste Face

Stitch a fixed-up face crop back into the original image

WAS Suite/Image/Process
Image Perlin Noise

Procedural noise textures without a diffusion model

WAS Suite/Image/Generate
Image Perlin Power Fractal

Layered Perlin noise for richer procedural textures

WAS Suite/Image/Generate
Image Pixelate

Turn a render into pixel art

WAS Suite/Image/Process
Image Power Noise

Procedural white/pink/blue noise textures, not the diffusion kind

WAS Suite/Image/Generate
Image Remove Background

One-node background removal with u2net

WAS Suite/Image/AI
Image Remove Background (Threshold)

The threshold cutter, not an AI matte

WAS Suite/Image/Process
Image Remove Color

Swap one color for another in ComfyUI

WAS Suite/Image/Process
Image Resize

Plain, predictable resizing (no upscale model)

WAS Suite/Image/Transform
Image Rotate (Advanced)

Turn an image without cropping the corners off

WAS Suite/Image/Transform
Image Rotate Hue

Shift every color in an image around the color wheel

WAS Suite/Image/Adjustment
Image Save

The save node with formats, paths, and filename tokens

WAS Suite/IO
Image Seamless Texture

Make an image tile without visible seams

WAS Suite/Image/Process
Image Select Channel

Pull one RGB channel out as its own image

WAS Suite/Image/Process
Image Select Color

Isolate one color, black out everything else

WAS Suite/Image/Process
Image Shadows and Highlights

Lift shadows, tame highlights in ComfyUI

WAS Suite/Image/Adjustment
Image Size to Number

Read an image's width and height as numbers

WAS Suite/Number/Operations
Image SSAO (Ambient Occlusion)

Fake 3D shading from a flat image and a depth map

WAS Suite/Image/Filter
Image SSDO (Direct Occlusion)

A game-engine lighting trick faked from a flat 2D image

WAS Suite/Image/Filter
Image Stitch (Advanced)

Glue two images together with a feathered seam

WAS Suite/Image/Transform
Images to Linear

WAS's node for converting a batch of images to grayscale

WAS Suite/Image
Images to RGB

Fix RGBA/mode mismatches in ComfyUI

WAS Suite/Image
Image Style Filter

Instagram-style presets for ComfyUI, via Pilgram

WAS Suite/Image/Filter
Image Threshold

Turn an image into hard black-and-white for masks and stencils

WAS Suite/Image/Process
Image Tiled

Split one image into a batch of tiles

WAS Suite/Image/Process
Image to Latent Mask

Turn a picture into a mask for inpainting

WAS Suite/Image/Masking
Image to Noise

Turn a real photo into noise you can seed a diffusion with

WAS Suite/Image/Filter
Image to Seed

Turn a picture into a repeatable seed number

WAS Suite/Number/Operations
Image Transpose

Flip an image across its diagonal, not its axis

WAS Suite/Image/Transform
Image Voronoi Noise Filter

Cellular noise, not the smooth Perlin kind

WAS Suite/Image/Generate
Inset Image Bounds

Pad or shrink a bounding box before you crop

WAS Suite/Image/Bound
Integer Place Counter

Pad a number with leading zeros for filenames

WAS Suite/Number/Operations
KSampler Cycle

Automated hi-res-fix loops in one node

WAS Suite/Sampling
KSampler Sequence

Looping KSampler passes for prompt-progression generations

WAS Suite/Sampling
KSampler Sequence (v2)

Sine-modulated denoise and seed keying for prompt progression

WAS Suite/Sampling
KSampler (Seed Socket)

The normal KSampler, but seed is a wire you can plug into

WAS Suite/Sampling
Latent Batch (Advanced)

Merge two latents into one batch before the expensive part

WAS Suite/Latent
Latent Input Switch

Route between two latents with a boolean

WAS Suite/Logic/Switch
Latent Noise Injection

Add noise back into a latent in ComfyUI

WAS Suite/Latent/Generate
Latent Size to Number

Read a latent's width and height as usable numbers

WAS Suite/Number/Operations
Latent Upscale by Factor

Scale a latent by a multiplier in ComfyUI

WAS Suite/Latent/Transform
Load Image Batch

Step through a folder one image per run

WAS Suite/IO
Load Text File

Read a whole text file into your graph

WAS Suite/IO
Logic Boolean

WAS's own 1-or-0 switch, from before ComfyUI had native booleans

WAS Suite/Logic/Boolean
Logic Boolean Primitive

A true/false source for ComfyUI logic

WAS Suite/Logic/Boolean
Logic Comparison AND

WAS's boolean AND gate for its own 1/0 logic system

WAS Suite/Logic/Boolean
Logic Comparison OR

WAS's boolean OR gate for its own 1/0 logic system

WAS Suite/Logic/Boolean
Logic Comparison XOR

WAS's 'exactly one but not both' logic gate

WAS Suite/Logic/Boolean
Logic NOT

Flip a WAS boolean without wiring two extra gates

WAS Suite/Logic/Boolean
Lora Input Switch

Toggle between two LoRAs in ComfyUI

WAS Suite/Logic/Switch
Lora Loader (Advanced)

WAS's version of the standard LoRA loader

WAS Suite/Loaders
Mask Arbitrary Region

Grab the mask blob closest to a size you pick

WAS Suite/Image/Masking
Mask Batch

Stack separate masks into one batched MASK

WAS Suite/Image/Masking
Mask Batch to Mask

Pull one mask out of a batch

WAS Suite/Image/Masking
Mask Ceiling Region

Isolate the brightest band of a graded mask

WAS Suite/Image/Masking
Mask Crop Dominant Region

Crop straight to a mask's biggest blob

WAS Suite/Image/Masking
Mask Crop Minority Region

Crop straight to a mask's smallest blob

WAS Suite/Image/Masking
Mask Crop Region

Crop to the masked area and get crop_data to paste it back

WAS Suite/Image/Masking
Mask Dilate Region

Grow a mask's edges outward so inpaints don't leave a seam

WAS Suite/Image/Masking
Mask Dominant Region

Keep only the largest blob in a messy mask

WAS Suite/Image/Masking
Mask Erode Region

Shrink a mask's edges inward

WAS Suite/Image/Masking
Mask Fill Holes

Close the gaps a segmentation mask left behind

WAS Suite/Image/Masking
Mask Floor Region

Pull out the darkest band of a graded mask

WAS Suite/Image/Masking
Mask Gaussian Region

Blur a mask's edges so composites don't seam

WAS Suite/Image/Masking
Mask Invert

Flip a mask, flip what it means

WAS Suite/Image/Masking
Mask Minority Region

Keep only the smallest blob in a mask

WAS Suite/Image/Masking
Mask Paste Region

Paste a cropped mask region back where it came from

WAS Suite/Image/Masking
Mask Rect Area

A rectangular mask defined by percentages, not pixels

WAS Suite/Image/Masking
Mask Rect Area (Advanced)

A rectangular mask defined in exact pixels

WAS Suite/Image/Masking
Masks Add

Merge two masks into one

WAS Suite/Image/Masking
Masks Combine Batch

Flatten a batch of masks into one

WAS Suite/Image/Masking
Masks Combine Regions

Merge several masks into one

WAS Suite/Image/Masking
Mask Smooth Region

Soften jagged mask edges in ComfyUI

WAS Suite/Image/Masking
Masks Subtract

Cut one mask out of another in ComfyUI

WAS Suite/Image/Masking
Mask Threshold Region

Clamp a soft mask into a clean black-and-white one

WAS Suite/Image/Masking
MiDaS Depth Approximation

The OG depth map node, and when it's still the right call

WAS Suite/Image/AI
MiDaS Model Loader

Load the depth model that feeds WAS's SSAO and depth nodes

WAS Suite/Loaders
Model Input Switch

Flip between two checkpoints with a boolean

WAS Suite/Logic/Switch
Number Counter

The stateful counter that remembers between runs

WAS Suite/Number
Number Input Condition

Compare two numbers to drive logic in ComfyUI

WAS Suite/Logic/Switch
Number Input Switch

Pick between two numbers with a boolean

WAS Suite/Logic/Switch
Number Multiple Of

Snap a number to a valid latent size before it breaks your run

WAS Suite/Number/Operations
Number Operation

Do math on numbers inside your graph

WAS Suite/Number/Operations
Number PI

The constant π, ready-wired, no typos

WAS Suite/Number
Number to Float

Coerce a WAS number into a strict FLOAT

WAS Suite/Number/Operations
Number to Int

Coerce a WAS number into a whole number

WAS Suite/Number/Operations
Number to Seed

Hand a KSampler a seed by wire, not by widget

WAS Suite/Number/Operations
Number to String

Turn a number into text you can save, print, or splice into a filename

WAS Suite/Number/Operations
Prompt Multiple Styles Selector

Pull A1111 styles into ComfyUI

WAS Suite/Text/Styles
Prompt Styles Selector

Bring your A1111 style presets into ComfyUI

WAS Suite/Text/Styles
Random Number

A general-purpose dice roll for your graph

WAS Suite/Number
SAM Image Mask

Point at an object and let Segment Anything mask it

WAS Suite/Image/Masking
SAM Model Loader

Load Segment Anything for targeted masking

WAS Suite/Loaders
SAM Parameters

The config node behind WAS's Segment Anything pipeline

WAS Suite/Image/Masking
SAM Parameters Combine

Merge multiple SAM point sets into one request

WAS Suite/Image/Masking
Save Text File

Write a string to disk from ComfyUI

WAS Suite/IO
Seed (Number Outputs)

A seed you can wire into multiple nodes in ComfyUI

WAS Suite/Number
String to Text

Bridge a plain STRING into WAS's text tooling

WAS Suite/Text/Operations
Tensor Batch to Image

Pull one image out of a batch by index

WAS Suite/Image
Text Add Token by Input

Define your own [token] for filenames, driven by graph inputs

WAS Suite/Text/Tokens
Text Add Tokens

Define your own [tokens] for filenames and saved text

WAS Suite/Text/Tokens
Text Compare

Check if two strings match, and how closely

WAS Suite/Text/Search
Text Concatenate

Glue prompt fragments together with a delimiter

WAS Suite/Text
Text Contains

Does this string hold that substring?

WAS Suite/Logic/Boolean
Text Dictionary Convert

Turn formatted text into a dictionary object

WAS Suite/Text/Dictionary
Text Dictionary Get

Pull one value out of a dictionary as a string

WAS Suite/Text/Dictionary
Text Dictionary Keys

See what's actually inside a WAS dictionary

WAS Suite/Text/Dictionary
Text Dictionary New

The node that starts WAS's whole dictionary family

WAS Suite/Text/Dictionary
Text Dictionary To Text

Dump a dictionary back out as plain text

WAS Suite/Text/Dictionary
Text Dictionary Update

Merge two WAS dictionaries into one

WAS Suite/Text/Dictionary
Text File History Loader

Reopen a text file you loaded before

WAS Suite/History
Text Find

Turn a substring check into a boolean you can branch on

WAS Suite/Text/Search
Text Find and Replace

Swap a substring in your prompt mid-graph

WAS Suite/Text/Search
Text Find and Replace by Dictionary

Templated prompts with random fills

WAS Suite/Text/Search
Text Find and Replace Input

Find/replace terms wired in, not typed

WAS Suite/Text/Search
Text Input Switch

Toggle between two text inputs in ComfyUI

WAS Suite/Logic/Switch
Text List

Bundle multiple strings into one list output

WAS Suite/Text/List
Text List Concatenate

Merge two text lists into one, in order

WAS Suite/Text/List
Text List to Text

Flatten a list of strings into one block of text

WAS Suite/Text/List
Text Load Line From File

Feed prompts from a text file, one per run

WAS Suite/Text
Text Multiline

A resizable text box you can wire anywhere

WAS Suite/Text
Text Multiline (Code Compatible)

A text box that won't mangle your syntax

WAS Suite/Text
Text Parse A1111 Embeddings

Port Automatic1111-style embedding references into ComfyUI syntax

WAS Suite/Text/Parse
Text Parse Noodle Soup Prompts

Expand WAS's own wildcard word bank in any text

WAS Suite/Text/Parse
Text Parse Tokens

Stamp live values into any string

WAS Suite/Text/Tokens
Text Random Line

Pick a random line of text each run

WAS Suite/Text
Text Shuffle

Reorder your prompt's tags without changing what's in it

WAS Suite/Text/Operations
Text Sort

Alphabetize a list of lines inside the graph

WAS Suite/Text/Operations
Text String

A one-line reusable text constant for your graph

WAS Suite/Text
Text String Truncate

Chop a string down to size, from either end

WAS Suite/Text/Operations
Text to Conditioning

Turn a text wire into a sampler-ready prompt

WAS Suite/Text/Operations
Text to Console

The cheapest way to see what your prompt actually became

WAS Suite/Debug
Text to Number

Parse a string into a number you can actually math with

WAS Suite/Text/Operations
Text to String

The WAS node that bridges its old text output to a real STRING socket

WAS Suite/Text/Operations
unCLIP Checkpoint Loader (Advanced)

Loading image-conditioned SD checkpoints, plus a name string

WAS Suite/Loaders
Upscale Model Loader (Advanced)

Load an ESRGAN model and get its name too

WAS Suite/Loaders
Upscale Model Switch

Pick between two upscale models with a boolean toggle

WAS Suite/Logic/Switch
Inpainting VAE Encode

The core inpaint encode, plus a mask-offset knob

WAS Suite/Latent
VAE Input Switch

Flip between two VAEs with a boolean

WAS Suite/Logic/Switch
Video Dump Frames

Pull a video apart into individual frames

WAS Suite/Animation
Vivid Sharpen

The Photoshop high-pass sharpen trick as a ComfyUI node

WAS Suite/Image/Filter
Vivid Sharpen (V2)

The fine-tunable version of the high-pass sharpen trick

WAS Suite/Image/Filter
WAS Adaptive Difference Latent Upscale (Damped)

A latent upscale that dodges ringing at edges

WAS Suite/Latent/Transform
Affine Options

26 masks, one settings drawer, and why nothing happens when you run it

WAS Suite/Latent/Transform
Affine Pattern Noise

Stop starting every image from the same random static

WAS Suite/Sampling
Affine Sampler

Texture pushed into the latent while the sampler is still running

WAS Suite/Sampling
Affine Schedule

The curve that decides when the affine hits hard, drawn where you can see it

WAS Suite/Sampling
Any Switch (First Connected)

Muting a branch just falls through

WAS Suite/Logic/Switch
Any Gate

The node that stops a branch from running at all

WAS Suite/Logic/Boolean
Any Index Switch

Pick one of many inputs with a number

WAS Suite/Logic/Switch
Any Input Switch

The boring A/B valve that handles any type

WAS Suite/Logic/Switch
Any Is Empty

Ask 'did that stage actually produce anything?'

WAS Suite/Logic/Boolean
Apply LUT

Color grading inside the graph instead of round-tripping to Resolve

WAS Suite/Image/LUT
Apply Reweighted LoRA

Per-block LoRA strength for WAN, Qwen, Flux and friends

WAS Suite/LoRA
App Workflow

Reuse a whole saved graph as a single node

WAS Suite/Workflow
Audio Metadata

How long is the music, and is it even loud enough?

WAS Suite/IO
Boolean Reduce

All, any, none, exactly one, or majority

WAS Suite/Logic/Boolean
Bounding Boxes Filter

Turn a detector's 'everything' into a shortlist

WAS Suite/Image/Bound
Bounding Boxes to Bounds

Get detector regions into WAS's crop & mask nodes

WAS Suite/Image/Bound
Bounds to Bounding Boxes

Send WAS-measured regions back to ComfyUI core

WAS Suite/Image/Bound
Bounds to Crop Data

Close the crop-and-paste loop

WAS Suite/Image/Bound
Bounds to Mask

A measured region becomes a mask you can work with

WAS Suite/Image/Bound
Bounds to Numbers

Open a rectangle into x, y, width, height

WAS Suite/Image/Bound
Bus Node (Dynamic)

One wire for model, clip, vae, conditioning — and extras

WAS Suite/Utilities
Camera Motion Trajectory from Images

Ken Burns effects with a keyframed JSON spec

WAS Suite/Animation
CV Canvas Compose Batch

The unglamorous padding node that makes batches stack

WAS Suite/View
Image Waveform

A colorist's exposure scope, inside ComfyUI

WAS Suite/Image/Analyze
Collect to List

Gather a fan-out back onto one wire

WAS Suite/Logic/Loop
LUT Blender

Build one grade out of two, apply it once

WAS Suite/Image/LUT
Combo Selector

Drive one node's dropdown from another

WAS Suite/Logic
Content Viewer

The any-type output inspector that renders almost everything

WAS Suite/View
Compare

The '10 > 9' node that doesn't sort your text wrong

WAS Suite/Logic/Boolean
Condition Chain

If / else if / else, the legible way

WAS Suite/Logic/Boolean
Convert DOC to HTML

The DOC is a zip full of HTML — this puts the markup on a string

WAS Suite/Document
Convert DOC to Plaintext

Documents are formatted; prompts are not — strip the markup, keep the shape

WAS Suite/Document
Crop Data to Bounds

Crop windows and bounds rows are different units — convert between them here

WAS Suite/Image/Bound
Crop Data to Numbers

A crop window, opened up into plain pixel numbers

WAS Suite/Image/Bound
Curve to Numbers

Bend a curve by hand, then drive a denoise ramp or camera move with it

WAS Suite/Number/Operations
Custom Sampler Affine Advanced

The affine for people who already build their own sampler stack

WAS Suite/Sampling
Directory Listing

Put a folder on the wire so a loop can eat it one file at a time

WAS Suite/IO
Display Any

Look at what's on any wire without breaking the chain

WAS Suite/Utilities
DNG Save

Save a raw you can actually grade — write DNG from linear light

WAS Suite/Image/HDR
Draw Image Bounds

See what a bounds row actually points at — and get the region as a mask

WAS Suite/Image/Bound
EMA-VFI Frame Interpolation

Invent frames between frames with motion, not crossfades

WAS Suite/Animation
EMA-VFI Model Loader

The half of EMA-VFI you always forget — the weights loader

WAS Suite/Loaders
Execution Gate

The node that stops a branch from running at all, not just from being used

WAS Suite/Logic
EXR Load

Bring a 32-bit plate back into ComfyUI at its real brightness

WAS Suite/Image/HDR
EXR Save

Ship a plate to Nuke or Resolve — EXR with the headroom intact

WAS Suite/Image/HDR
Fast Groups

Mute or bypass whole groups from one node — no marquee selection required

WAS Suite/Utilities
For Loop Close

Close the loop, carry the state, and know why it stopped

WAS Suite/Logic/Loop
For Loop Open

An actual loop — repeat a slice of the graph N times

WAS Suite/Logic/Loop
Free Memory

Out of VRAM on the last stage? Free memory partway through the run

WAS Suite/Utilities
HDR Reconstruct

Put the light back into a blown highlight

WAS Suite/Image/HDR
HDR VAE Decode

Decode past white — keep the values VAE Decode throws away

WAS Suite/Image/HDR
Image Auto Levels

The one-click contrast fix — levels that measure themselves

WAS Suite/Image/Adjustment
Image Batch Advanced

The image batching node that stops yelling at you about sizes

WAS Suite/Image
Image Batch Ends

Grab the last frame, drop the duplicate

WAS Suite/Image
Image Batch Repeat

Pad a short clip out to exactly 81 frames

WAS Suite/Image
Image Batch Reverse

Play a clip backwards, or make it a seamless ping-pong loop

WAS Suite/Image
Image Batch Split

Cut a batch of frames at exactly the right spot

WAS Suite/Image
Image Color Balance

A film grade in one node

WAS Suite/Image/Adjustment
Image Compare (Advanced)

An A/B slider for pitting two images against each other

WAS Suite/Image/Analyze
Image Composite Masked

Lay one image on another exactly where you want it — with a mask

WAS Suite/Image/Process
Image Crop by Mask

Crop to exactly what a mask marks — and get told how to paste it back

WAS Suite/Image/Masking
Image Crop Face

Find a face, square-crop it, and know where to put it back

WAS Suite/Image/Process
Image Crop Face (YuNet)

A face crop that tells you how sure it is

WAS Suite/Image/Process
Image Crop Region

Crop by the numbers — no dragging, no guessing

WAS Suite/Image/Process
Image Curves

Photoshop curves you drag right on the node

WAS Suite/Image/Adjustment
Image Dequantise

Kill the banding in a sky before you grade it

WAS Suite/Image/HDR
Image Directional Blur

Motion blur with a direction — or a spin, or a zoom

WAS Suite/Image/Filter
Image Draw Text

Burn captions, watermarks and timestamps onto frames

WAS Suite/Image/Process
Image Frame Sample

Thin a long clip down to the frames that matter

WAS Suite/Animation
Image Frequency Blend

Keep the steady, take the sharp

WAS Suite/Image/Process
Image Gradient Map

Recolor an image by its brightness

WAS Suite/Image/Filter
Image Guided Filter

Edge-preserving blur that doesn't halo

WAS Suite/Image/Filter
Image Lens Distortion

Barrel, pincushion, and chromatic aberration in one bend

WAS Suite/Image/Transform
Image Matte

Turn a hard mask into a matte that keeps the hair

WAS Suite/Image/Process
Image Pad for Outpaint

Outpaint padding and the mask that goes with it

WAS Suite/Image/Process
Image Palette Map

Posterize, colourise, and screen-print your renders

WAS Suite/Image/Adjustment
Image Perspective

Pin your corners, get the perspective for free

WAS Suite/Image/Transform
Image Preview

A preview that knows when your image is linear light

WAS Suite/Image/HDR
Image Statistics

Measure a render before you trust it

WAS Suite/Image/Analyze
Image Temporal Equalize

Even out flicker across a batch of frames

WAS Suite/Image/Adjustment
Image Tile Extract (Quadrants)

Split an image into four quadrants, each on its own wire

WAS Suite/Image/Transform
Image Tile Extract (Grid)

Cut a picture into tiles, one output each

WAS Suite/Image/Transform
Image Tile Shuffle

Scramble an image into tiles and reassemble it

WAS Suite/Image/Transform
Image Tone Map

Roll those >1.0 highlights down before they hit an 8-bit save

WAS Suite/Image/HDR
Image Vignette

Darken corners, or lift them

WAS Suite/Image/Filter
Image White Balance

Take the colour cast out by guessing the light

WAS Suite/Image/Adjustment
KSampler Affine Advanced

The affine sampler to try first (one node, no plumbing)

WAS Suite/Sampling
Latent Affine

The one dial that runs the whole WAS Affine pack

WAS Suite/Latent/Transform
WAS Latent Detail Boost

A high-pass sharpen that runs before you decode

WAS Suite/Latent
Latent Power Spectrum

The two numbers SPEED Sampler schedules by

WAS Suite/Latent
Scale Latent to Max Dimension

Cap a latent at a longest side, in latent space

WAS Suite/Latent/Transform
Latent Statistics

Know whether that latent is broken before you decode it

WAS Suite/Latent
Latent Hybrid Upscale

Latent upscaling that protects edges instead of smearing them

WAS Suite/Latent/Transform
Layer Align

Put a layer where you mean it, by naming a corner

WAS Suite/Image/Layers
Layer Bevel

Give a title or badge a physical edge without any 3D

WAS Suite/Image/Layers
Layer Duplicate

Copy a layer and nudge the copy — start of every drop shadow

WAS Suite/Image/Layers
Layer Edit

Change one thing about a layer, leave the rest alone

WAS Suite/Image/Layers
Layer Fit

Scale a layer to cover, fit, or match another

WAS Suite/Image/Layers
Layer Glow

That halo behind cut-outs and titles, without leaving ComfyUI

WAS Suite/Image/Layers
Layer Mask

The only way to cut a layer to shape once it's in the stack

WAS Suite/Image/Layers
Layer Order

Reshuffle your stack without rebuilding it

WAS Suite/Image/Layers
Layer Overlay

Fill a cut-out with flat colour or a gradient, clipped to its shape

WAS Suite/Image/Layers
Layer Remove

Thin a stack down before it flattens

WAS Suite/Image/Layers
Layer Replace Image

The way back into a stack

WAS Suite/Image/Layers
Layers Arrange

Position your stack by hand, in JSON, without flattening

WAS Suite/Image/Layers
Layers Canvas

Keep your composite at the size it's supposed to be

WAS Suite/Image/Layers
Layer Select

Keep only the layers that match

WAS Suite/Image/Layers
Layers from Image Batch

Turn frames into a stack, each in its own place

WAS Suite/Image/Layers
Layer Shadow

Cast a shadow off a cut-out without leaving the stack

WAS Suite/Image/Layers
Layers Info

Read your whole stack out as numbers and names

WAS Suite/Image/Layers
Layers Load

Get a layered PSD into ComfyUI without flattening it first

WAS Suite/Image/Layers
Layers Merge

Flatten a run of layers with all their settings baked in

WAS Suite/Image/Layers
Layers Save

Hand the composite over with the layers still inside

WAS Suite/Image/Layers
Layers to Image Batch

Take a stack apart so you can filter it

WAS Suite/Image/Process
Layer Stroke

An outline that follows the subject, not its box

WAS Suite/Image/Layers
Layer Trim

Cut the empty band off a cut-out so effects stop wasting radius on it

WAS Suite/Image/Layers
Linear Light

The two nodes that make your EXR saves physically honest

WAS Suite/Image/HDR
Load Document

Open .wasdoc, .docx and .odt into your graph

WAS Suite/Document
Load Documents from ZIP

Read a whole archive of documents as one flow

WAS Suite/Archive
Load Image Sequence

A numbered folder of frames, loaded as one batch

WAS Suite/IO
Load Images from ZIP

The zip you never have to unzip

WAS Suite/Archive
Load LUT

Build or load a color-grading LUT without leaving ComfyUI

WAS Suite/Image/LUT
Load Text Files from ZIP

Batch-prompt from captions locked inside a zip

WAS Suite/Archive
Load Text Line

Prompts without a picker

WAS Suite/IO
Load Video (Advanced)

A clip becomes frames, audio, and metadata in one pull

WAS Suite/IO
Load Video (Upload)

Same loader, but the clip can live on the internet

WAS Suite/IO
Logic Compare Numbers

The if/else your graphs have been missing

WAS Suite/Logic/Boolean
Loop Metadata

See inside your loop without sprinkling debug nodes

WAS Suite/Logic/Loop
LUT from Reference

Bottle a look, pour it on anything

WAS Suite/Image/LUT
Mask Feather

Soften a mask's edges the controlled way

WAS Suite/Image/Masking
Mask Grow

Push a mask around without wrecking its soft edges

WAS Suite/Image/Masking
Mask Guided Filter

Make a sloppy mask actually hug the subject

WAS Suite/Image/Masking
Mask Statistics

The node that catches when your detector found nothing

WAS Suite/Image/Masking
Mask to Bounds

Turn a mask into a crop window

WAS Suite/Image/Bound
Model Index Switch

Twenty-six model slots, and only the one you pick loads

WAS Suite/Logic/Switch
Model Info

Read a model like a label before you render

WAS Suite/Utilities
Model Switch

An A/B switch for anything a loader answers

WAS Suite/Logic/Switch
Noodle Soup Pantry Export

Back up your word pantry — or hand it to a friend

WAS Suite/Text/Terminology
Noodle Soup Pantry Import

Someone sent you a pantry file — here's how you take it in

WAS Suite/Text/Terminology
Noodle Soup Pick

The pantry browser behind your __wildcard__ prompts

WAS Suite/Text/Terminology
Noodle Soup Term Edit

Make the __wildcard__ pantry your own, one term at a time

WAS Suite/Text/Terminology
Number Easing

The easing node behind smooth camera moves

WAS Suite/Number/Operations
Number Expression

A real calculator node, no Python sandbox required

WAS Suite/Number/Operations
Number List Statistics

Read a whole list of numbers back — mean, min, max, and why it matters

WAS Suite/Number/Operations
Number Range

The node that makes ComfyUI run a graph once per number

WAS Suite/Number/Operations
Path Exists

Skip renders that already exist

WAS Suite/IO
Pause

Stop the run mid-graph, inspect, tweak, and resume — without losing a thing

WAS Suite/Logic
Power LoRA Loader

Stack 26 LoRAs in one node, each with its own switch and strength

WAS Suite/LoRA
Power LoRA Merger

Bake several LoRAs into one file instead of stacking loaders

WAS Suite/LoRA
Power LoRA Merger Options

The tuning knobs behind WAS Power LoRA Merger

WAS Suite/LoRA
Power Preprocessor

Depth, pose, edges, or what a ControlNet needs

WAS Suite/Image/Preprocess
Prompt Parse

Expand wildcards, groups and variables before the prompt hits the encoder

WAS Suite/Text/Parse
Prompt Style Save

Save a prompt pair by name so you stop retyping your best negative

WAS Suite/Text/Styles
Prompt Styles Export

Back up your style library, or hand it to someone on an A1111 setup

WAS Suite/Text/Styles
Prompt Styles Import

Bring a style library in — including your old A1111 styles.csv

WAS Suite/Text/Styles
Prompt Tag Cleanup

Tidy a prompt's tags — dedupe, sort, cap — without mangling emphasis

WAS Suite/Text/Operations
Image Remove Background Model Loader

Load a BiRefNet cutout model once and feed every Remove Background node

WAS Suite/Loaders
Resolution Selector (Advanced)

Pick an aspect, get clean pixel sizes

WAS Suite/Number
Rich Text Editor

A rich text editor drawn on the node that hands you clean HTML

WAS Suite/Text
Save DOC

Save a document to disk — from .wasdoc to .pdf, from one node

WAS Suite/Document
Save LUT (.cube)

Export a ComfyUI-built color grade to a standard .cube file

WAS Suite/Image/LUT
Save Video (Advanced)

Save video with an audio track — the option core ComfyUI's node lacks

WAS Suite/IO
Save ZIP

Bundle a workflow's output into an archive and know where it went

WAS Suite/Archive
Sleep

The node that slows your workflow down on purpose

WAS Suite/Utilities
SPEED Sampler

Most of the image, most of the steps, at half the price

WAS Suite/Sampling
Temporal Noise Hold

The starting noise that decides how much scene your video gets

WAS Suite/Sampling
Tensor Index Switch

Pick one picture from a stack by number

WAS Suite/Logic/Switch
Tensor Switch

The A/B valve for images, masks and latents

WAS Suite/Logic/Switch
Text Dictionary Items

Unpick a dictionary onto parallel wires

WAS Suite/Text/Dictionary
Text List Get

Pull one entry out of a list by position

WAS Suite/Text/List
Text List Length

Count your list before you loop over it

WAS Suite/Text/List
Text List Slice

Cut a range out of a list, both ends included

WAS Suite/Text/List
Text List to Numbers

Read a list as numbers and let the graph fan out

WAS Suite/Text/List
Text List to Strings

The bridge between lists and everything else

WAS Suite/Text/List
Text Split to List

Turn one big string into a list of pieces

WAS Suite/Text/List
Text to Combo

Drive a dropdown from a wire instead of your mouse

WAS Suite/Logic
Text to DOC

Build a real document on the wire, metadata and all

WAS Suite/Document
Three Animate Transform

Make your Three.js object spin, bob and breathe — no JavaScript required

WAS Suite/Three
Three Antialias

The effect that puts the smooth edges back (put it last)

WAS Suite/Three
Three App

The render-settings node your whole scene funnels into

WAS Suite/Three
Three Area Light

Soft shadows and window highlights, no path tracing needed

WAS Suite/Three
Three Basic Material

The flat, unlit surface for UI panels and clean textures

WAS Suite/Three
Three Bloom

Making bright things glow so emissives actually look lit

WAS Suite/Three
Three Box Geometry

The unit cube your first 3D scene starts from

WAS Suite/Three
Three Compile

Ship your whole 3D scene as a webpage anyone can open

WAS Suite/Three
Three Custom Geometry

Any Three.js shape the pack forgot, in one line of JS

WAS Suite/Three
Three Custom Material

Toon, matcap and every other shader, via a return statement

WAS Suite/Three
Three Custom Object

A hundred instanced meshes, or anything wiring can't say

WAS Suite/Three
Three Custom Update

Per-frame JavaScript when an animation node isn't enough

WAS Suite/Three
Three Cylinder Geometry

A cone is just one number set to zero

WAS Suite/Three
Three Depth Of Field

Real lens blur on a 3D render, tuned in scene units

WAS Suite/Three
Three Environment

The thing metal and glass reflect (yes, you need one)

WAS Suite/Three
Three Grid Helper

The ground plane that tells you where the camera is

WAS Suite/Three
Three Group

How you get more than one object into a scene

WAS Suite/Three
Three Import Geometry

Pull one named shape out of a Script Module

WAS Suite/Three
Three Import Material

Hand out module-built surfaces without the code sprawl

WAS Suite/Three
Three Import Object

Pull pre-built rigs and objects out of a Script Module

WAS Suite/Three
Three Light

Nothing renders until you add one

WAS Suite/Three
Three Load Model

Drop a real 3D model into your ComfyUI scene

WAS Suite/Three
Three Material Mix

Stack two materials under one mask

WAS Suite/Three
Three Mesh

The node that actually puts your object in the scene

WAS Suite/Three
Three Orthographic Camera

Blueprint view, no vanishing lines

WAS Suite/Three
Three Path Trace Render

Physically-correct renders, one bouncing photon at a time

WAS Suite/Three
Three Path Trace Viewer

Clean-up-in-place preview before you commit to the slow render

WAS Suite/Three
Three Perspective Camera

Point the camera, tell it where to look

WAS Suite/Three
Three Physical Material

Glass, car paint and soap bubbles without a texture artist

WAS Suite/Three
Three Plane Geometry

The flat rectangle that carries your textures

WAS Suite/Three
Three Play Animation

Make that rigged character actually walk

WAS Suite/Three
Three Render

Turn the 3D scene into an image batch ComfyUI can use

WAS Suite/Three
Three Scene

The container that decides what's drawn and what's behind it

WAS Suite/Three
Three Script Module

Write JavaScript for your scene, share it across nodes

WAS Suite/Three
Three Shader Material

Hand-rolled GLSL, right inside the graph

WAS Suite/Three
Three Sphere Geometry

Spheres, domes and partial shells

WAS Suite/Three
Three Standard Material

The workhorse PBR surface — start here

WAS Suite/Three
Three Texture From Image

Turn a ComfyUI image into a material texture

WAS Suite/Three
Three Texture URL

Grab a texture straight from the internet

WAS Suite/Three
Three Torus Geometry

Donuts, hoops and horseshoes

WAS Suite/Three
Three Track

Point a camera at a moving object and stop hand-keying it

WAS Suite/Three
Three Transform Object

Put the same mesh in three places at once

WAS Suite/Three
Three Viewer

The 3D preview that lives right on the node

WAS Suite/Three
Tiled Image Upscale (With Model)

Run any upscale model on huge images without OOMing

WAS Suite/Image/Upscaling
To Boolean

Turn anything into a true or false

WAS Suite/Logic/Boolean
To Number

One wire to feed the arithmetic chain

WAS Suite/Number/Operations
Type Of

Read what's really on a wire

WAS Suite/Logic/Boolean
Compare Video

Drag a divider across two renders and actually see what changed

WAS Suite/Animation
Video Frame Sample (Advanced)

Keep the frames you actually want

WAS Suite/Animation
Video Info

Measure a clip without decoding a single frame

WAS Suite/IO
Video Metadata

Open the figures a video load measured

WAS Suite/IO
View DOC Metadata

Read everything a document says about itself

WAS Suite/Document
While Loop Close

Where a ComfyUI while loop actually decides to stop

WAS Suite/Logic/Loop
While Loop Open

Loop until the graph says stop

WAS Suite/Logic/Loop
Widget to String

Steal any node's widget value into text

WAS Suite/Utilities
YuNet Model Loader

A face detector you never have to download

WAS Suite/Loaders
ZIP Add

Build a zip one render at a time, on the wire

WAS Suite/Archive
Zip Extract

Unpack a zip to a folder, then process each file

WAS Suite/Archive
ZIP Manage

Trim a zip to just the entries you want

WAS Suite/Archive
Open ZIP

Peek inside a zip without unpacking a thing

WAS Suite/Archive
Zip Save

Zip up the files your run just made

WAS Suite/Archive
Write to GIF

Build an animation one generated frame at a time

WAS Suite/Animation
Write to Video

Stream frames to a video file as you generate them

WAS Suite/Animation
Readme

WAS Node Suite v3   ComfyUI Open Manager License Donate

<img src="was-node-suite-v3.png" width="600">

WAS Node Suite has been going since 2023 on Civitai and on GitHub, and was among the first packs to put hundreds of nodes into users' hands. WAS-NS has over a million downloads, and is used by thousands of users daily. It has been MIT since the first commit: use it, change it, teach with it, or run it in paid services.

The pack contains 464 nodes for ComfyUI, across images, filters and colour, masking, text and prompts, logic and flow, numbers, latents and sampling, files, animation and video.

See NODES.md for reference.

Consider donating to the project to help me afford caffeine.


Installation

ComfyUI Manager, search for WAS Node Suite v3 and install. This is the recommended route.

Manually, clone into custom_nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

Requires ComfyUI 0.14.0 or newer and Python 3.10+.

That is the whole install. Nothing is installed, downloaded or built, now or on any later start. The pack never runs pip on its own.

The first start takes a second or two longer than the rest. Your config.yaml, the state database and the wildcard, LUT and view-extension folders are written under <ComfyUI user dir>/was-node-suite/, and python compiles the pack to bytecode. An update recompiles, so it happens once more each time you pull.

One optional group wants packages and ships off: document_export, which lets Save DOC write .docx, .odt and .pdf.

# portable ComfyUI, from the ComfyUI_windows_portable directory
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\was-node-suite-comfyui\requirements\document_export.txt

Then set document_export: true under features: in config.yaml. docs/CONFIG.md has every group, what it needs and what it gates.


What changed since v2

464 nodes across a package of source files. The pack itself needs no packages, and nothing is fetched from a git URL. What it bundles ships in the repository with its licence beside it, listed in docs/THIRD_PARTY.md.

| | v2 | v3 | |---|---|---| | Nodes | 220 | 464 | | Default packages installed | 20 | 0 | | Installed from a git URL | 3 | 0 | | Third-party carried in the repository | SAM and BLIP, 75 files of python | 128 files: browser libraries, fonts, eight face cascades, two sets of weights and one network, each with its licence | | Optional node groups | none | 22 keys in config.yaml, 8 of them off out of the box. Per-node disable group. |

213 of the 220 node ids are unchanged. Four are retired onto replacements, three are removed outright, and the section below says what opens in their place. Face detection, gradient maps, background removal, frame interpolation, seamless textures, colour matching, levels, palettes, masks and deconvolution all run on torch, on ComfyUI's own device, so OpenCV, numba, rembg, timm, scipy, scikit-image, scikit-learn and matplotlib are not installed. Everything else a node reaches for either ships with ComfyUI or belongs to an optional group.

253 new nodes

| Area | New | Area | New | |---|--:|---|--:| | Three.js scenes | 43 | HDR and linear light | 9 | | Files, archives and documents | 28 | Affine sampling | 8 | | Logic and flow | 25 | Everything else | 108 | | Layers | 22 | | | | Bounds | 10 | | |

What each area does: FEATURES.md.


Opening a workflow saved before v3

No node id is renamed. Two nodes are now a different node under the same menu name, two ids are gone and another node does the job of each, and ComfyUI offers to swap all four in. Three ids are removed with nothing in their place. Widgets, slot counts, three menu labels and four results changed, and a workflow saved before v3 is carried across as it loads.

Four retired ids. Each one opens listed in ComfyUI's missing-node dialog. Tick it, press the replace button, and the node comes back in place. Leave the dialog and it stays missing. The old name still finds its replacement in the Add Node search.

| Saved as | Comes back as | With | |---|---|---| | Image Crop Face | the same name, on a replacement running the same eight cascades | wiring, crop padding, cascade choice, flip setting | | Image Gradient Map | the same name, on a replacement running the same gradients | wiring and settings | | Load Lora | Lora Loader (Advanced), same five inputs and three outputs | model and CLIP wired, all three outputs wired, LoRA choice, both strengths | | Number to Text | Number to String, same NUMBER, INT and FLOAT input, same STRING output | both wires. Neither node has a widget, so nothing is retyped |

The two face and gradient nodes ran through OpenCV, which the pack no longer installs. Their replacements run on ComfyUI's own device and need nothing installed.

Five removed ids. Each opens as a red box where it stood, with its links dropped. There is no replacement for any of them; delete the node.

| Saved as | What it did | What to do | |---|---|---| | Image Send HTTP | Posted an image batch to an address | Write the batch with Image Save | | Text Random Prompt | Read a prompt from lexica.art | Write the prompt, or use Prompt Library | | True Random.org Number Generator | Drew a seed from RANDOM.ORG | Use Random Number or Seed | | WASDownloadImage | Read an image from a web address | Save the file, then use Load Image | | WASNoodleSoupPantryRefresh | Downloaded the Noodle Soup pantry | Nothing. The pantry ships with the pack and seeds the database on first start |

The pack now makes no outbound request of its own from any node.

Widgets and slots, carried across for you. Thirty-six dropdowns reading true and false are now checkboxes, and fourteen nodes that stopped at four to eight slots now declare twenty-four or twenty-six, drawing one empty slot below the last one filled. Saved settings are read back onto the new widgets and everything wired stays wired. The three batchers each gain a count output below the one they had. Image Save's prefix_as_filename is now overwrite_mode, ticked where it read true.

Three renamed labels. KSampler is now KSampler (Seed Socket), Seed is Seed (Number Outputs) and Save Video is Save Video (Advanced), so none shares a name with a core ComfyUI node. Only the label changed, and the old names still find them in search.

Four changed results.

| Node | What changed | What to do | |---|---|---| | Image Blending Mode | 26 blend modes instead of 14, in linear light on the GPU, keeping values above white. add now adds the two layers rather than painting image_b over image_a | A graph using add comes out brighter. Switch it to normal for what it did before | | Image Style Filter | 37 looks, every graded one finished with a halation. The 26 period looks keep the colour their name has always meant | Nothing. A saved workflow opens on the same style | | Mask Erode Region | Holds the frame edge instead of treating outside the frame as unset | A mask that touched an edge comes out wider. One with a clear margin is unchanged | | Image SSAO (Ambient Occlusion) | Traces rays across the map as real relief instead of averaging neighbouring pixels, so the shading follows the surface and no longer reacts to the image's own colour. The depth_images input is now height_maps, tile_size is gone, and height_scale, ray_count, step_count and angle_bias set the relief and the tracing. The whole body is float now, so linear light above 1.0 is shaded rather than clipped, and a precision widget writes 8, 16 or 32 bit for EXR Save | Re-wire the depth map into height_maps, which opens unconnected. The other settings are read back onto the new widgets. Highlight masking now starts off, so the node shades as soon as it is dropped, and strength at 0 leaves the image untouched rather than black |


Nodes

464 nodes across 47 categories. NODES.md carries every input, output and tooltip, and groups them by the config.yaml switch that gates them: feature gates.

28 are deprecated, which ComfyUI marks in the Add Node menu, and each names its replacement. They sit in the nine legacy groups in config.yaml, four of which start off: docs/CONFIG.md.


Features

FEATURES.md covers what the pack does, by area: masking, layers, bounds, filters and optics, transforms, colour and LUTs, HDR, instruments, logic and flow, numbers, text and dictionaries, prompt terminology and styles, files and archives, animation, models and LoRA, the affine transform, noise shaping, video comparison, execution gating, the Content Viewer, Three.js scenes and graph plumbing.


Model weights

Nothing is downloaded unless you ask for it. features.network is false out of the box, so a node needing weights it cannot find says so and names the key rather than reaching for the network.

Let it download. Set network: true under features: in config.yaml.

See docs/MODELS.md for more information.


Configuration

Written for you on first start at <ComfyUI user dir>/was-node-suite/config.yaml, as a copy of config.example.yaml with every key at its default and the comment that explains it. Edit it there as it will survive updates.

docs/CONFIG.md


Third-party code in the pack

The suite is MIT, see LICENSE. It bundles 128 third-party files: three.js and three-gpu-pathtracer, HugeRTE, Prism.js, KaTeX and Mermaid, the EMA-VFI network, the DejaVu and Liberation fonts, eight face cascades and two sets of weights. Each keeps its own licence text in the folder it ships in, and none of it is ever fetched. Every licence permits redistribution.

Versions, copyright lines, which licence covers what and a byte-level account of every bundled copy: docs/THIRD_PARTY.md.

The software licences place no conditions on what you make with the suite: documents, captions and images you produce are yours. Open RAIL++-M, covering one 8 KB embedding, is the exception. It claims no rights in output but its use restrictions reach any use of that output, including the intrinsic maps Power Preprocessor answers with.


Security

Outbound requests are off out of the box, nothing starts a process or installs a package, and a node input naming a file is resolved against an allowlist before the filesystem is touched. What the pack does and does not do, and how to report a vulnerability: SECURITY.md.


Contributing

Bug reports and feature requests are welcome as issues. For a change to a node, open an issue first, so its inputs and outputs are settled before the code is written. See docs/CONTRIBUTING.md.

<a href="https://github.com/WASasquatch/was-node-suite-comfyui/graphs/contributors"> <img src="https://contrib.rocks/image?repo=WASasquatch/was-node-suite-comfyui" /> </a>