Extensions/was-node-suite-comfyui
ComfyUI Extension Runs on cloud

was-node-suite-comfyui

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

By WASasquatch·Created 4 years ago·Updated a day ago· 1,864
WASasquatch/was-node-suite-comfyui
Nodes506
On cloudRunnable
CategoryWAS Suite/Latent, WAS Suite/Image/AI
Stars1,864
Updateda day ago

Nodes (506)

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
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
CLIPTextEncode (NSP)

A drop-in text encoder that also rolls the dice

WAS Suite/Conditioning
CLIP Vision Input Switch

One checkbox instead of two workflows

WAS Suite/Logic/Switch
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 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 (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
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
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
App Workflow

Reuse a whole saved graph as a single node

WAS Suite/Workflow
Audio Beats

Stop guessing where the drop is

WAS Suite/Animation
Audio Metadata

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

WAS Suite/IO
VAEEncode (Bundle Latent)

The workflow that carries its own starting image

WAS Suite/Latent
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
CV Canvas Compose Batch

The unglamorous padding node that makes batches stack

WAS Suite/View
CLIP Text Encode Sequence (Advanced)

Prompt schedules you type by hand

WAS Suite/Conditioning
CLIP Text Encode Sequence (v2)

The prompt list without hand-typed frame numbers

WAS Suite/Conditioning
CNS Model Patch

Put the sampler's noise where the picture isn't finished yet

WAS Suite/Sampling
Collect to List

Gather a fan-out back onto one wire

WAS Suite/Logic/Loop
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
Conditioning (Blend)

One subject that's genuinely between two prompts

WAS Suite/Conditioning
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
Debug Input

The node that tells you what's actually on that wire

WAS Suite/Debug
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 Video Model Loader

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

WAS Suite/Loaders
Empty Kandinsky 6 Latent

An empty video latent with the soundtrack already in it

WAS Suite/Latent/Video
Execution Gate

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

WAS Suite/Logic
Execution Gate Controlboard

One Switchboard for Every Branch You Keep Turning Off by Hand

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 Generate Text

Your Text Encoder Is Already an LLM. Use It.

WAS Suite/Text
Fast Groups

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

WAS Suite/Utilities
Fast KSampler

The same latent, without the preview tax

WAS Suite/Sampling
Fast Save Animated WEBP

Every frame encoded at once, no dead cores

WAS Suite/IO
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
H3 Control

Drive every segment of an extend loop from one control video

WAS Suite/Latent/Video
H3 Decode Video

Decoding a 60-second MiniMax H3 run without eating your RAM

WAS Suite/Latent/Video
H3 De-RoPE Recover

Putting the pieces back on the clock

WAS Suite/Latent/Video
H3 De-RoPE Stretch

Give fast motion more frames to live in

WAS Suite/Latent/Video
H3 Extend Append

Joining the segment back onto the clip without a seam

WAS Suite/Latent/Video
H3 Extend Window

Opening the next segment of a long H3 take

WAS Suite/Latent/Video
H3 Load Clip

Fix scene 7 and restart the loop at scene 7

WAS Suite/Latent/Video
H3 Low VRAM

One node, long clips on the card you already own

WAS Suite/Sampling
MiniMax H3 Plan Transitions

Let a language model pick your cuts

WAS Suite/Latent/Video
MiniMax H3 Prompt Rewrite

A language model that knows H3's prompt dialect

WAS Suite/Latent/Video
H3 Repair Splice

Put the repaired stretch back without disturbing a single other frame

WAS Suite/Latent/Video
H3 Repair Window

Redraw one bad stretch of a finished clip

WAS Suite/Latent/Video
H3 Save Clip

A checkpoint for a video, not a video you can only watch

WAS Suite/Latent/Video
MiniMax H3 Scene Writer

One idea in, a whole shot list out

WAS Suite/Latent/Video
H3 Soundtrack

One music bed under a video that was stitched together from scenes

WAS Suite/Latent/Video
H3 Tiled Sampler

Refine a whole clip in one pass, in pieces

WAS Suite/Sampling
H3 Tiled Sampler [WIP]

The version with the anchor dial

WAS Suite/Sampling
H3 Tiles

Make any sampler fit a long H3 clip in your VRAM

WAS Suite/Sampling
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 Morphology

Erode, dilate, and the shape operators you'll actually use

WAS Suite/Image/Filter
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 Quantize

The palette step your pixel art was missing

WAS Suite/Image/Filter
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 (Grid)

Cut a picture into tiles, one output each

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
Kandinsky 6 Audio VAE Loader

The file that turns the sound half into actual sound

WAS Suite/Loaders
Kandinsky 6 Image To Video

Start the clip on a picture, keep the sound

WAS Suite/Latent/Video
Kandinsky 6 Text Encode

Two prompt boxes, because this model writes dialogue too

WAS Suite/Latent/Video
KSampler Affine Advanced

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

WAS Suite/Sampling
KSampler Sequence

A sampler that carries each frame into the next

WAS Suite/Sampling
KSampler Sequence (v2)

Keyframe-driven, with the anti-stall knobs

WAS Suite/Sampling
Latent Affine

The one dial that runs the whole WAS Affine pack

WAS Suite/Latent/Transform
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
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 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 Cache

Your clip is still there after the restart

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
MiniMax H3 Asset

Casting a scene with a file, a frame number and one wire

WAS Suite/Latent/Video
MiniMax H3 Clip Select

One clip at a time, out of a prompt bundle

WAS Suite/Latent/Video
MiniMax H3 Conditioning

Write a whole multi-shot video as rows of prompts

WAS Suite/Latent/Video
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
WAS Adaptive Difference Latent Upscale (Damped)

Blocky where it's flat, smooth where it isn't

WAS Suite/Latent/Transform
Apply LUT

A film look in one node, and why a LUT beats a re-gen

WAS Suite/Image/LUT
Apply Reweighted LoRA

Turn one down without turning it off

WAS Suite/LoRA
Camera Motion Trajectory from Images

A parallax camera move over one still

WAS Suite/Animation
Image Waveform

The scope that tells you why your grade went wrong

WAS Suite/Image/Analyze
LUT Blender

Dial a look back, or stack two grades into one table

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

Cut a frame into four, on four wires

WAS Suite/Image/Transform
Image Tile Shuffle

A scrambled picture with a seed, and one sharp edge case

WAS Suite/Image/Transform
WAS Latent Detail Boost

Sharpening a latent without the embossed look

WAS Suite/Latent
Latent Hybrid Upscale

Smooth the edges, leave the flat bits alone

WAS Suite/Latent/Transform
Load LUT

Get a film look without opening a grading app

WAS Suite/Image/LUT
Power LoRA Merger

Bake your LoRA stack into one file

WAS Suite/LoRA
Power LoRA Merger Options

The dial box behind a merge

WAS Suite/LoRA
Save LUT (.cube)

Grade in ComfyUI, finish in Resolve

WAS Suite/Image/LUT
Tiled Image Upscale (With Model)

4x a 4K frame on a 12GB card

WAS Suite/Image/Upscaling
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 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 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
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
Inpainting VAE Encode

Grow the mask before the sampler sees it

WAS Suite/Latent
Video Cache

Stop holding a 400-frame render in RAM

WAS Suite/IO
Video Camera Shake

Proof that a tripod looks fake

WAS Suite/Animation
Compare Video

Drag a divider across two renders and actually see what changed

WAS Suite/Animation
Video Datamosh

The glitch that made 2009 look like this

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
Video Motion

Measure the movement once, reuse it everywhere

WAS Suite/Animation
Video Motion Blur

The blur your video model forgot to render

WAS Suite/Animation
Video Motion Mask

Isolate what moves, ignore the camera

WAS Suite/Animation
Video Motion Model Loader

SEA-RAFT weights when texture matching isn't enough

WAS Suite/Loaders
Video Motion Trails

Light trails without the after-effects

WAS Suite/Animation
Video Reframe

9:16 without cropping the actor's face off

WAS Suite/Animation
Video Retime

Slow motion with frames that were never there

WAS Suite/Animation
Video Seamless Loop

Find the loop hiding in your clip

WAS Suite/Animation
Video Split Scenes

Let the clip tell you where its cuts are

WAS Suite/Animation
Video Stabilize

Fix the wobble, keep the move

WAS Suite/Animation
Video Temporal Consistency

Stop per-frame effects from flickering

WAS Suite/Animation
Video Temporal Upscale

Upscale a clip without the wallpaper crawling

WAS Suite/Animation
View DOC Metadata

Read everything a document says about itself

WAS Suite/Document
Vivid Sharpen

Detail that doesn't look like a filter

WAS Suite/Image/Filter
Vivid Sharpen (V2)

The same idea, with halo control and video in mind

WAS Suite/Image/Filter
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 513 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

513 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 | 513 | | 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 | 143 files: browser libraries, fonts, eight face cascades, three sets of weights and two networks, 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.

299 new nodes

| Area | New | Area | New | |---|--:|---|--:| | Three.js scenes | 43 | HDR and linear light | 9 | | Files, archives and documents | 28 | Affine sampling | 7 | | Logic and flow | 26 | Everything else | 164 | | 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. Five 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 Custom Material takes a module file. Its javascript box is gone. The node now picks a .js or .txt module from ComfyUI's input folder or a folder under paths.allow_read, and the module's header names the textures it wants, which the node's slots then read as. A body typed into an older workflow is dropped rather than read onto the menu, so open one, put the body in a file and pick it. Code no longer travels inside a workflow, so a graph from someone else cannot bring javascript with it. docs/CONFIG.md has the setting that permits a module to run at all.

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

513 nodes across 48 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, Kandinsky 6 video with sound, 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, and Three Texture URL takes only data: addresses and the pack's own assets.

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 143 third-party files: three.js and three-gpu-pathtracer, HugeRTE, Prism.js, KaTeX and Mermaid, the EMA-VFI and Kandinsky 6 networks, the DejaVu and Liberation fonts, eight face cascades and three 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>