ComfyUI-KJNodes: What the Node Pack Actually Adds, and Where It Gets Thin
Various custom nodes for ComfyUI
At a glance
- What is it?
- KJNodes is a grab-bag of ComfyUI utility nodes whose documentation lives in tooltips, not in the README. The Set/Get rewrite is the part with real substance; the rest is a mixed bag you install and inspect node by node.
- Who is it for?
- Adopt ComfyUI-KJNodes if you already run ComfyUI and want the Set/Get workflow improvements, particularly the subgraph support and link conversion shortcuts, since those are the parts with a documented design. Skip it if you need a documented API surface or a node pack with per-node reference pages, because the README states documentation is mostly in node descriptions and tooltips.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 18 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The Problem KJNodes Solves Is Graph Clutter, Not Missing Capability
ComfyUI graphs get messy. Long links cross the canvas, reroutes multiply, and a value produced once at the top of a workflow has to be dragged to three places at the bottom. KJNodes exists to reduce that friction. The README describes it as a "pretty random collection of utility, model optimization and QoL nodes, while keeping dependencies at minimum." That self-description is accurate and worth taking at face value: this is not a coherent framework with a single purpose. It is a pack that grew by accretion.
The audience is people who already run ComfyUI and have hit the point where graph maintenance costs more than the generation itself. The Set/Get node pair is the clearest example. Instead of drawing a link across the canvas, you place a Set node at the producer and a Get node at each consumer. The connection becomes a name rather than a line. Everything else in the pack, from image resizing to color matching, is a separate utility that happens to ship in the same repository.
That bundling is a trade-off. You get one install for many small tools. You also get a pack where the README cannot describe every node, which the project acknowledges directly.
How Set/Get Works After the March 19th 2026 Rewrite
The README calls the March 19th 2026 Set/Get release a "complete (backwards compatible as far as I'm aware currently) rewrite." The hedge in that sentence is the author's own, and it is the right thing to flag: backwards compatibility is asserted, not guaranteed.
The mechanism is name-based indirection. A Set node stores a value under a name; a Get node retrieves it. The rewrite adds subgraph awareness. According to the changelog, a Set in a parent graph is visible to all child subgraphs, and Get nodes search upward through ancestors, with cross-graph connections resolved during prompt execution. That is a genuine architectural change, not a cosmetic one, because it means the lookup is no longer scoped to a single graph.
Type handling has a fallback path worth knowing about. If a Set node's input is unconnected but its output feeds a typed input, the Set adopts that type and recolors. This is inference, not declaration, so a graph that relies on it will change color and type when you rewire the downstream end.
Naming has its own rules. The changelog states that validateName no longer strips intentional `_N` suffixes from user-typed names and only strips during paste, to avoid `FOO_0_1_2` accumulation. If you name nodes with numeric suffixes deliberately, that fix is the reason they survive now.
Installing ComfyUI-KJNodes and Wiring Your First Set/Get Pair
The README gives two install paths. The first is the standard one: clone the repository into the `custom_nodes` folder of your ComfyUI install, then install dependencies.
pip install -r requirements.txtThe README notes that the portable Windows build needs a different invocation, run from the `ComfyUI_windows_portable` folder, so that pip targets the bundled interpreter rather than a system Python.
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-KJNodes\requirements.txtThe declared dependencies are short. requirements.txt lists `pillow>=10.3.0`, `color-matcher`, `matplotlib`, `mss` and `opencv-python-headless`. Note that pyproject.toml declares only three of those (`pillow>=10.3.0`, `color-matcher`, `matplotlib`), so the two files disagree. If you install through the Comfy Registry path rather than requirements.txt, you may end up without `mss` or `opencv-python-headless`.
For a first real use, the README documents the manual route: right-click any link midpoint to convert it into a Set/Get pair. The keyboard shortcuts are listed as Ctrl+Shift+S to add a Set to the selection or at the cursor, Ctrl+Shift+G to add a Get at the cursor, and Ctrl+Shift+L to force-show all connections. Shift+middle-click on an output slot creates a connected SetNode; on an input slot it creates a connected GetNode. Double-clicking a GetNode centers and selects its paired SetNode, which is the fastest way to confirm the pairing survived a paste.
Documentation Lives in Tooltips, and That Is a Real Cost
The README states plainly that "Documentation is mostly in the node descriptions and tooltips." There is no per-node reference in the README, and no retrieved release notes to fall back on. The repository does contain a `docs/` directory and `example_workflows/`, so some material exists beyond the tooltips, but the README does not describe what is in either.
For a pack this size, that is a meaningful limitation. You cannot evaluate whether a given node does what you need without loading ComfyUI and hovering over it. There is no way to check, from the repository alone, what a node named in a search result actually does. The README does not document rollback for the Set/Get rewrite either, so if the backwards-compatibility hedge turns out to be wrong for your graph, the README gives you no stated path back.
The dependency split between requirements.txt and pyproject.toml compounds this. Two files in the same repository declare different dependency sets, and neither the README nor the changelog explains which is authoritative for which install method.
When KJNodes Is the Wrong Tool
If your ComfyUI graphs are small, the Set/Get indirection adds a layer you do not need. A direct link is visible on the canvas; a Set/Get pair is visible only when you enable link drawing, and the README describes a combo setting with never, selected and always modes precisely because the links are hidden by default. Debugging a value that flows through a name instead of a line is harder, not easier, until the graph is large enough that the lines were the problem.
If you need a stable, documented API surface, this is the wrong pack. The README does not commit to node stability, and the Set/Get rewrite itself is evidence that nodes can change substantially between versions. Anything you build that depends on specific node behavior should be pinned.
The pack is also the wrong choice if you want a focused tool. It bundles image utilities, model optimization nodes and graph ergonomics into one install. You cannot take only the parts you want without reading through the rest.
Alternatives and the Difference in Approach
The honest alternative is ComfyUI's built-in reroute nodes. A reroute does not name a value; it extends a link. The difference matters at scale. Reroutes keep the data flow visible as a continuous line, which is easier to trace but harder to reorganize, because moving a producer means redrawing every reroute downstream. Set/Get trades visibility for decoupling: the producer and consumer no longer need to be near each other or connected by a path. If your graph is wide rather than deep, reroutes are usually the simpler answer.
A second comparison point is ComfyUI-VideoHelperSuite, which appears in the related searches alongside KJNodes. It is a different kind of pack: video-focused rather than general utility. The two are not substitutes. If your problem is video loading and frame handling, KJNodes is not the tool for it, and the README makes no claim otherwise.
The related searches also surface ComfyUI-KJNodes alongside SageAttention, but the README and the dependency files make no mention of SageAttention at all. Do not assume the pack installs or configures it. Nothing in the repository supports that.
Licence and Upgrade Cost
The repository is GPL-3.0, declared in pyproject.toml as `license = {file = "LICENSE"}` and confirmed by the LICENSE file at the repository root. GPL-3.0 is a copyleft licence. If you distribute a modified version of this pack, or distribute a larger work that incorporates it, the licence's terms apply to that distribution. That is a statement about what the licence says, not legal advice; if you ship anything built on this, read the LICENSE file and get your own counsel.
Upgrade cost is the more practical concern. The version in pyproject.toml is 1.5.2. The Set/Get rewrite landed with a changelog entry dated March 19th 2026, and the last push to the repository was on 2026-09-13, so the pack has seen changes since. The README does not describe a deprecation policy or a migration guide for node behavior changes. The changelog for the Set/Get rewrite lists fixes for paste rename coordination, type and color reset on disconnect, and suffix stripping, all of which are behavioral details that could affect an existing graph.
There is no retrieved release history, so you cannot see how often breaking changes ship. Pin a commit if you depend on specific behavior.
Editorial conclusion
Adopt ComfyUI-KJNodes if you already run ComfyUI and want the Set/Get workflow improvements, particularly the subgraph support and link conversion shortcuts, since those are the parts with a documented design. Skip it if you need a documented API surface or a node pack with per-node reference pages, because the README states documentation is mostly in node descriptions and tooltips. Before installing, check that your ComfyUI supports the Nodes 2.0 interface that the March 19th 2026 Set/Get rewrite targets, and verify the GPL-3.0 licence against how you distribute anything built on top of it. The dependency list is short, so the real cost is not installation but the time spent reading tooltips to learn what each node does.
Frequently asked questions
How do I install ComfyUI-KJNodes?
Clone the repository into your ComfyUI `custom_nodes` folder, then run `pip install -r requirements.txt`. The README gives a separate command for the portable Windows build, run from the `ComfyUI_windows_portable` folder using `python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-KJNodes\requirements.txt`.
How do I add a GetNode and a SetNode in ComfyUI?
The README lists several routes: right-click any link midpoint to convert it into a Set/Get pair, press Ctrl+Shift+S to add a Set to the selection or at the cursor, or Ctrl+Shift+G to add a Get at the cursor. Shift+middle-click on an output slot creates a connected SetNode, and on an input slot creates a connected GetNode.
Is ComfyUI-KJNodes safe to install?
The repository is licensed GPL-3.0 and its declared dependencies are pillow, color-matcher, matplotlib, mss and opencv-python-headless. The README contains no security review, so this cannot be answered from the repository beyond noting the licence and the dependency list.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kijai-comfyui-kjnodes)