CivArchive
    Preview 324913


    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.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. 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.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 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, for loops, and while loops.

    • 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 / false dropdowns have been modernized into checkboxes.

    • 14 nodes with limited input slots now support up to 24–26 slots dynamically.

    • Batch nodes now include a count output.

    • 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

    Read the description

    FAQ

    Comments (16)

    pontusMar 25, 2023· 1 reaction
    CivitAI

    File "C:\ComfyUI_windows_portable\ComfyUI\custom_nodes\WAS_Node_Suite.py", line 640

    @classmethod

    IndentationError: unexpected indent

    WAS
    Author
    Mar 25, 2023· 1 reaction

    Thanks for letting me know.

    asdasdadadadadMar 25, 2023

    You have to download the whole repository from GitHub and paste the folder inside customNodes. The .py file is not enough.

    WAS
    Author
    Mar 25, 2023

    @asdasdadadadad Only if you are not using portable (which probably is best to use anyway to prevent dependency conflictions). Sounds like your issue is really manually introduced. No one else has complained about it in thousands of downloads.

    MrHYDMar 26, 2023

    @WAS I just had the same issue. Had to indent the ticks for the block comment above the `@classmethod`

    WAS
    Author
    Mar 26, 2023

    @MrHYD Yeah I forgot to include that code into the commented function I was working on. Lol Oops. It's fixed in 1.2.2

    asdasdadadadadMar 26, 2023· 1 reaction

    @WAS What do you mean by nobody else has complained? The guy right here just did. And the fix I found was to download from github.

    asdasdadadadadMar 26, 2023

    @WAS I mean it works with the patch now, but I couldn't have known it was the files fault.

    WAS
    Author
    Mar 26, 2023

    @asdasdadadadad No. He's talking about an error... Nothing to do with installing. Lol WAS Node Suite has been downloaded thousands of times, with one person having a installation issue, you.

    asdasdadadadadMar 26, 2023

    @WAS I had the same issue and downloading the whole thing from GitHub fixed it for me.
    You made a mistake in your code and uploaded it to one place but not to the other.

    WAS
    Author
    Mar 27, 2023· 1 reaction

    @asdasdadadadad GitHub is updated as a code and make changes. I don't upload all day to civitai AI all the time.

    odanobunaga1111Mar 26, 2023
    CivitAI

    "image blend by mask' doesn't take a mask input

    WAS
    Author
    Mar 26, 2023

    Not a latent mask, no, because it's a "Image" mask, for raster images. You use Image to Latent Mask in /WAS Suite/Latent to transform into a Latent Maskk.

    luciano_a_cirino488Mar 26, 2023
    CivitAI

    I am unable to run the Image Transpose Node without errors. Always returns a "ValueError: bad transparency mask". Not sure what the issue might be...

    Turns out the mask_image in the "base_image.paste(transpose_image, location, mask_image)" needs to be grayscale.

    WAS
    Author
    Mar 29, 2023· 1 reaction

    @luciano.a.cirino488 Actually it should be just converted to RGBA, that line was somehow removed, and not sure where it went from when I wrote it. I did get a PR on it that may been the issue (that's why the function is declaring input types now, VSCode PR).