<=
The <= node nobody searches for, and the whole workflow it unlocks
- value1
- value2
- result
Comparisons are the boring glue that makes a ComfyUI graph feel like a program instead of a one-shot pipeline. The <= node from the Basic data handling pack takes two numbers and returns a plain True or False - nothing fancier than that. But wire that boolean into an if/else or a disable-flow node and suddenly your workflow can make decisions: skip an upscale pass when the image is already small, stop a batch when a counter crosses a threshold, only run the heavy refiner for images under a certain resolution. That's the whole game here.
How it works
The node is a one-line wrapper around Python: it returns True when value1 is less than or equal to value2, and False otherwise. So 5 <= 5 is True. If you're used to the < version, that's the trap - people wire in < thinking they've handled the boundary case, then spend an hour wondering why their exactly-at-limit image got the wrong path. This node does what it says on the tin.
Both inputs accept an integer or a float (the schema type is FLOAT,INT, and the widget shows as a float field), so you can compare a count against a percentage without casting anything first. The output is a single BOOLEAN named result, which feeds straight into the same pack's if/else, switch/case, or disable flow nodes.
Where it earns its keep
The practical pattern is "compute something, compare it, branch on it." For example:
ListLengthof a batch →<=some cap → only run the second pass if the batch fits in VRAM.- A float from a
create FLOAT→<=a cutoff → choose a cheaper sampler for fast frames. TimeToUnixoutputs →<=a deadline → stop generating.
It's also just nice for sanity checks: wire the boolean into a to STRING node and you can eyeball the result right in the UI while you debug. The pack ships the whole comparison family - ==, !=, >, >=, <, and this one - so you get them all when you install the pack.
Installing
This is part of the "Basic data handling" pack by StableLlama. Easiest route is ComfyUI Manager: search for "Basic data handling", install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/StableLlama/ComfyUI-basic_data_handling
Then restart ComfyUI. The whole pack is pure Python with zero extra dependencies - no model downloads, no requirements.txt step, nothing. It's one of the safest things you can install, which given the ecosystem's dependency horror stories is a real selling point.
Common issues
The classic failure isn't the node, it's the downstream conditional. There's been at least one report on r/comfyui of the pack's if/else always picking the false branch no matter the condition - the community's first suspect was ComfyUI's newer node runtime ("Nodes 2.0"), not the comparison itself. If your branch looks inverted, check two things: first, that the boolean feeding the conditional is actually what you think it is (use a to STRING node to inspect it), and second, whether you're running the new node system where these nodes can behave differently. Ninety percent of the time the comparison was fine and the routing was the problem.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| value1 | FLOAT,INT | — | |
| value2 | FLOAT,INT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| result | BOOLEAN | — |