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 457 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 v3.x.x. This is the recommended route.
Manually, clone into custom_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.gitRequires 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. On the install this was measured on that is 1.4 seconds the first time and around 0.25 seconds on every start after. 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.txtThen set document_export: true under features: in config.yaml. docs/CONFIG.md has every group, what it needs and what it gates.
What Changed in v3
Expanded from 220 to 457 nodes, adding 241 new nodes across the suite.
Zero packages installed by default, down from 20 in v2.
Zero dependencies installed from Git URLs, down from 3 in v2.
No automatic pip installs, downloads, or builds during installation or startup.
216 of the original 220 node IDs remain unchanged, keeping the vast majority of existing workflows compatible.
Replaced dependency-heavy functionality with native Torch implementations running on ComfyUI's own device.
Removed default reliance on OpenCV, numba, rembg, timm, scipy, scikit-image, scikit-learn, and matplotlib.
Added 22 configurable optional node groups through
config.yaml, with 8 disabled by default.Added per-node disable controls for more granular installations.
Third-party resources are now bundled directly in the repository with their licenses, with nothing fetched from Git at runtime.
241 New Nodes
43 Three.js scene nodes — construct 3D scenes from nodes, preview them directly in ComfyUI, render/path trace to image batches, and export standalone browser scenes.
28 file, archive, and document nodes — ZIP archives, folder processing, six document formats, and content viewing.
24 logic and flow nodes — boolean reduction, condition chains, typed switches,
forloops, andwhileloops.20 layer nodes — build and manipulate layer stacks with effects, arrangement tools, and an interactive node canvas.
10 bounds nodes — represent image regions as values, measure them, draw them, crop to them, and paste processed results back.
9 HDR and linear-light nodes — preserve values above white, process HDR data through filters, and read/write EXR and DNG.
107 additional nodes covering image transforms, LUTs and color processing, masks, numbers, text, lists, dictionaries, samplers, LoRA stacks, animation, prompt terminology, and style libraries.
Major Architecture Changes
Face detection now runs through Torch-based implementations instead of requiring OpenCV.
Gradient maps now run natively without OpenCV.
Background removal, frame interpolation, seamless textures, color matching, levels, palettes, masks, and deconvolution have been moved to Torch/ComfyUI-native processing.
Optional functionality is isolated behind feature groups instead of forcing every dependency onto every installation.
Bundled browser libraries, fonts, face cascades, model weights, and networks are stored locally with their respective licenses.
Network access is disabled by default; nodes requiring unavailable weights report what is missing instead of silently downloading files.
Workflow Compatibility
No existing node ID was renamed.
216 of 220 v2 node IDs continue unchanged.
Four retired nodes have direct replacements available through ComfyUI's missing-node replacement system.
Existing saved wiring and settings are migrated where applicable.
36
true/falsedropdowns have been modernized into checkboxes.14 nodes with limited input slots now support up to 24–26 slots dynamically.
Batch nodes now include a
countoutput.Several node display names were clarified to avoid collisions with core ComfyUI nodes while retaining their underlying IDs.
Better In-Node Visualization
188 nodes now visually display their work directly on the graph, including:
Image comparisons
Histograms
File and loader information
Color ramps
3D scene previews
Text editors
Interactive contact sheets
Other task-specific visual interfaces
Description
Updates:
Various patches to nodes.
ASCII is fully deprecated and new
TEXT_TYPEisSTRINGDependency changes, be sure to re-run the requirements.txt with the Python executable that ComfyUI uses (such as the one at
/python_embedded/python.exefor ComfyUI Portable)
New Nodes:
CLIPSeg Masking: Mask a image with CLIPSeg and return a raw mask
CLIPSeg Masking Batch: Create a batch image (from image inputs) and batch mask with CLIPSeg
Diffusers Hub Down-Loader: Download a diffusers model from the HuggingFace Hub and load it
Image Batch: Create one batch out of multiple batched tensors.
Image Crop Square Location: Crop a location by X/Y center, creating a square crop around that point.
Image Displacement Warp: Warp a image by a displacement map image by a given amplitude.
Image Perlin Noise: Generate perlin noise
Image Perlin Power Fractal: Generate a perlin power fractal
Image Paste Face Crop: Paste face crop back on a image at it's original location and size
Image Paste Crop: Paste a crop (such as from Image Crop Location) at it's original location and size utilizing the crop_data node input. This uses a different blending algorithm then Image Paste Face Crop, which may be desired in certain instances.
Image Power Noise: Generate power-law noise
Image Paste Crop by Location: Paste a crop top a custom location. This uses the same blending algorithm as Image Paste Crop.
Image Pixelate: Turn a image into pixel art! Define the max number of colors, the pixelation mode, the random state, and max iterations, and max those sprites shine.
Image Tile: Split a image up into a image batch of tiles. Can be used with Tensor Batch to Image to select a individual tile from the batch.
Image to Noise: Convert a image into noise, useful for init blending or init input to theme a diffusion.
Image to Seed: Convert a image to a reproducible seed
Mask Batch to Mask: Return a single mask from a batch of masks
Mask Invert: Invert a mask.
Mask Add: Add masks together.
Mask Subtract: Subtract from a mask by another.
Mask Ceiling Region": Return only white pixels within a offset range.
Mask Floor Region: Return the lower most pixel values as white (255)
Mask Threshold Region: Apply a thresholded image between a black value and white value
Mask Gaussian Region: Apply a Gaussian blur to the mask
Masks Combine Masks: Combine 2 or more masks into one mask.
Masks Combine Batch: Combine batched masks into one mask.
Text List: Create a list of text strings
Text Concatenate: Merge lists of strings
FAQ
Comments (46)
im planning to start learn using ComfyUI, thanx for the starterpack 😍
It's amazing. I haven't gone back to A1111 except to train TIs. Haha
I ask you. yes, you can use it with the IPAD Tablet??
It has somewhat decent mobile support, but you'll have to run it on a compatible PC and then connect to it over wifi or the internet. A easy way to access it online is run it on a PC and then install ngrok. Then in cmd prompt or terminal you run ngrok http 8188 and it will give you back a public link to use.
I can't install correctly on win10. I had errors with install ffmpy and scikit-image modules
WAS-NS doesn't use ffmpy, it uses opencv-python-headless[ffmpeg] instead. So not sure why you're encountering that.
You have to run the requirements with the correct Python that ComfyUI is running on. So if you downloaded the portable version, you have to run the requirements with the python_embedded/python.exe executable.
Additionally you need cmake on your system and in your PATHS: https://cmake.org/download/
(IMPORT FAILED): D:\ComfyUI-master\custom_nodes\was-node-suite-comfyui
That doesn't help solve any issues. You need to provide the full stack error. Follow the installation instructions closely.
I can't select lbpcascade_animeface.xml nor haarcascade_profileface.xml in the Image Face Crop node. ComfyUI just doesn't see them. Any idea how to fix that?
Something may be wrong with your ComfyUI install possibly. They're hard-coded options for the selection so should be select-able unless something is wrong with the front end.
@WAS Turns out that the ComfyUI Custom Node Manager doesn't cooperate with your suite. After going through the entire "update through PowerShell commands" ordeal, I managed to fix it.
@SeriouslyMike Yeah, WAS-NS requires things that comfyui uses, so can't install properly if ComfyUI is running.
@WAS oh, that explains the update error in the manager.
Anyway, I'm trying to figure out the KSampler Cycle node - you haven't mentioned it in the description of the suite at all, so I have no idea what the controls do.
@SeriouslyMike I thought I pushed to the node descriptions? I did have a PR or two between so maybe it got reverted by accident cause I had a conflict with my own changes.
It's basically an HR pass node. You can put in upscale factor you want, and then how many upscale cycles it takes. Which is how many times it's diffused at incremental steps to final factor.
You can hook up a secondary diffusion model and secondary cycle step that the secondary model is used at. So if you have 2 upscale_cycles you would set secondary cycle to 2. If you had 4 upscale cycles you'd set it to 3 to make it start halfway.
You can scale down the denoising for each step based on the cycle_denoise and enabling scale_noise. So for a fresh diffusion with no unit image you would have starting_denoise at 1.0 and then could use say cycle_denoise 0.5, and with scaling it would decause the denoise each step starting at 0.5 at second cycle step.
You can define use latent upscaling, if enabled it will use selected sampling mode tondo upscaling. This bypasses the VAE input and doesn't decode and encode the image between each pass. This will bypass upscale models and scale sampling FYi though.
You can select a scale sampling mode and use that alone for upscaling, which will supersampler results in raster for better upscaling without a upscale model.
You can hook up a upscale model to use the upscale model for incremental upscaling, scale sampling is used to downscale the result before the next cycle step.
You can hook up a processor model which is just a upscale model that is 1x output, meant for stupp like dejpeg artifacts, or denoising, etc. This will run between each step, and before optional upscale model.
You can add a additive positive and negative prompt and desire strength. It strength scaling is active it will exponentially increase the strength to the cutoff value. Helpful for transitioning to another prompt. It uses the Combine Conditioning (Average) node behind the scenes. This can be used for all sorts of stuff. For example you could have main model be anime model, and secondary be realistic model, then use the additive prompts to describe 3D modifiers and negative stuff like anime, art, oil painting, etc. This will have the effect of transforming the anime image into like a 3D image.
Sorry if any errors. Wrote this on my phone. Not at the computer.
Definitely join the Element community listed on ComfyUI GitHub. I share example workflows and answer support on WAS-NS.
Do you have any instructions on how to use the "KSampler Cycle"? I am guessing it's some kind of all-in-one hires fix + upscaler node, but I need to know what the controls are doing.
How exactly do I uh... 'With system python, run pip install...'? My experience with python ends with installing it for automatic1111, so Im unfamiliar with uh, running it inside a specific folder?
Are you using windows? If so, I'd suggest downloading the portable package, which has the whole environment. Then follow directions for portable install. Clone it to custom_nodes, go into was-node-suite-comfyui folder, and then run `path/to/ComfUI/python_embeded/python.exe -s -m pip install -r requirements.txt` by changing the path/to/ComfyUI/python_embedded to the path to your python_embedded folder in your ComfyUI root.
https://github.com/WASasquatch/was-node-suite-comfyui#recommended-installation
@WAS Thanks for the reply. I've gotten a bit closer; finding out I can run python through command prompt and all that, but now I'm getting a 'Getting requirements to build wheel ... error' whenever I get to 'Collecting scipy', and nothing I've tried seems to fix that. Could I ask you to tell me where I could find a fix for this?
@Heckerman I'd need to see the full error. Maybe cmake isn't available. You can make an issue on GitHub. There's an issues tab on link above.
@WAS Yes I have no luck with this either, I use the Run command and the window errors out and closes so fast there is no way to even see it. I also am a newb with this stuff, but it seems like there should be an easier way. I realize Linux is god to tech bros, but I am not trying to learn a lifetime of IT coding, just wanted to try and get a custom node working on comfyUI. I already found a solution to the problem I had in the first place, so don't need a node for it anyway. I will try some of the other ones on here at a later time just out of curiosity, but this has frustrated me a bit :(
@MysteryWrecked This is usually way with Python in general. ComfyUI Manager will get an update hopefully soon to handle installations better. But I am making a install.bat cause it's frustrating dealing with everyone else's frustrations on a daily. Lol
@WAS I appreciate the effort, if I was a bit more advanced, I'm sure it would be no trouble, but I'm at the edge of my skillset here. I did get a couple custom nodes to install when I restarted ComfyUI again, and then I installed the node manager, which gave me WAS suite in a list to install. I did that installation, but still have to find out if it worked. Thanks for everything!
@MysteryWrecked I have pushed a install.bat that should hopefully solve the issues.
@WAS Sorry to be so late on this, I actually got it to work with the ComfyUI Manager at least, but the .bat is appreciated and will help lots of people!
@MysteryWrecked Not sure if you already know this, but if you click on the folder path in file explorer and type "cmd" (no quotation marks) in the folder you want to run cmd prompt in, it'll just start in that folder, no need to use cd. it saves me a lot of time since i can never remember that i have to use /d if i want to change drives with cd.
@Genie123 That and Right Click -> Open in Terminal
@WAS I was a power user like you guys once, but then I took an arrow to the brain! In other words, I got old. Thanks for the tip!
@MysteryWrecked Yeah, no I hear ya there. Things have changed dramatically. I struggle to keep up, and Web Development, my old field of work, has completely changed pretty much.
I haven't been able to get this to work correctly. Windows 11. I've tried running as an admin, and by setting full permissions to the entire Comfy UI folder. It happens during the script to install the requirements. ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'A:\\comfyUI\\ComfyUI_windows_portable_nvidia_cu118_or_cpu\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\cv2\\cv2.pyd'
Consider using the --user option or check the permissions.
I also never get the .json file referenced
Okay, I did a complete clean install of ComfyUI using the download tar archive, then set permissions, then ran the install requirements per your instructions before ever starting up comfy UI, and it worked out this time. I did also get the json file inside the WAS folder this time. So that part is good, but trying to install some of the other custom node packages using the manager, I get the following error:
ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'A:\\ComfyUI-July23\\python_embeded\\Lib\\site-packages\\cv2\\cv2.pyd'
Consider using the --user option or check the permissions.
So maybe it's the manager? I've set permissions for the entire ComfyUI folder to be able to modify and write so I don't understand the error for the other packages.
@EricRollei21 Node Manger can't really install nodes that do anything involving packages that are running. Numpy, etc. You need to follow my instructions to install. Namely running requirements.txt through your embedded_python/python.exe.
ConfyUI Manager is only going to work for nodes that don't really need dependencies or use totally different dependencies from what ComfyUI has already imported. It's a cool tool but should be a stand alone tool to actually achieve what it advertises.
@WAS Thanks for the reply and of course the custom nodes! So I should run the python.exe install -r requirements.txt for every custom nodes folder that has the requirments.txt file in it? And to do that only when the ComfyUI isn't running right? The embeded-python install requirements only needs to be done once right? I think I've got it all running okay now - except for one minor thing - there is an undefined node (image scale) that has inputs of image, width, and height on left side and output of image on the right side.
@EricRollei21 you need to run through python_embedded/python.exe in root of ConfyUI if you are using portable version
I have this issue, How do i fix it PLS.
Import times for custom nodes:
0.0 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\Pseudo_HDR_ally.py
0.0 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\Pseudo_HDR_ally.py
0.0 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\efficiency-nodes-comfyui
0.0 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\Derfuu_ComfyUI_ModdedNodes
0.0 seconds (IMPORT FAILED): A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\was-node-suite-comfyui-main
0.0 seconds (IMPORT FAILED): A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\was-node-suite-comfyui-main
0.0 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\Derfuu_ComfyUI_ModdedNodes
1.2 seconds: A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\efficiency-nodes-comfyui
83.6 seconds (IMPORT FAILED): A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\ComfyUI-Impact-Pack
88.1 seconds (IMPORT FAILED): A:\AI_Files\ComfyUI_Main\ComfyUI\custom_nodes\ComfyUI-Impact-Pack
ModuleNotFoundError: No module named 'numba'
Install the nodes according to the instructions. You need to run the requirements with ComfyUI's python environment. So for portable you need to run requirements through python_embedded/python.exe
I get intimidated by your node pack. It feels overwhelming just looking at it and most of it I dont need atm. I'm looking for gif maker in comfyui, do you plan in creating/separating things in smaller node packs?
No
Good day to you, thank you for these awesome nodes!
I espacially live the save node. Is there a way we can push the seed/used sampler/steps and so on to the save note so I can have these informations in the name?
There's supposedly a way to capture the widget info and use it elsewhere, but I think there is an issue with custom widgets not being supported.
Is there anyway to get the Seed Node to function with "convert seed to input"? As it currently is, it only seems to connect to the WAS Sampler.
Yeah, that's cause it's very old and before the Utils -> Primitive node. You can just use that and input into a seed input and it'll transform into a seed.
Is there a way to clear custom tokens?
Every time I try to reuse my workflow I get this barrage of custom tokens I don't need anymore. Also no idea why, but for some reason it turns into this:
CheckpointName: checkpoint,
checkpoint: checkpoint,
etc.
So it keeps adding to the already existing custom token, but in a way that seems very weird/wrong to me.
I've integrated this example fileloader and custom token node to load my checkpoints via file easily: https://pastebin.com/HbUeWEYX
Right now it's just stuck and won't update the value anymore, I fixed it before by switching the token name, but that's not great.
Definitely one of the very best node sets for ComfyUI! Thank you very much for these great tools!
Thank you! I appreciate the kind words!
Hi! Could you please explain how to use Prompt Multiple Styles Selector in the workflow?
You've documented that ':' isn't allowed in token names, but is there any list of what's not allowed in token values? For instance '\' tends to throw 're' errors depending on the character that follows it (probably regex alchemy)
Details
Available On (1 platform)
Same model published on other platforms. May have additional downloads or version variants.

