Floor
Round any number down to the next whole integer
- input1
- INT
Floor is math.floor() as a node - the mirror image of this same pack's Ceil. Give it a number and it hands back the largest integer that's less than or equal to it: 3.9 becomes 3, -3.1 becomes -4. That's the entire job.
It shows up in the same spots Ceil does: any graph that computes a size or an offset as a float - dividing one dimension by another, scaling by a ratio - and then hits a node that only accepts whole numbers. The choice between Floor and Ceil is really "do I want to be conservative and round down, or generous and round up," and for things like tile counts or safe crop margins, rounding down is usually the one that doesn't accidentally run off the edge of the image.
How it works
It's math.floor(input1). No clamping, no minimum, and negatives round down (further from zero), not toward it - that trips people up more than the positive case ever does.
The inputs and outputs that matter
Just the two:
- input1 - accepts anything (
*), which in practice is an INT or FLOAT fed from an upstream math node. No usable default; it's built to be wired. - Output - INT. As with Ceil, this makes the node a convenient float→int converter even when you don't strictly need the rounding.
How to install it
It ships as part of the full pack - install once and every LogicUtils node, Floor included, shows up. In ComfyUI Manager, search ComfyUI-LogicUtils and install. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/aria1th/ComfyUI-LogicUtils
Restart afterward. There's nothing to download and nothing heavy to build - pure Python math and string ops, so the restart is the whole install.
A little context on who wrote this: aria1th, aka AngelBottomless, is the trainer behind Illustrious XL, the SDXL anime finetune that took over from Pony Diffusion v6 in the open-source scene. LogicUtils is a side project - small utility nodes he needed for his own graphs, released with almost no writeup. The README's own line on this is "Proper documentation is being prepared, however there are too many nodes," and that's been the state of things since the repo's last push in early 2026. It's genuinely used - it turns up as a listed dependency in complex published workflows alongside packs like rgthree-comfy and KJNodes - it just relies entirely on the class names and default values to explain themselves, which is what this article is filling in.
Common issues & troubleshooting
Can't find the node in the search. Confirm the pack folder under custom_nodes is named ComfyUI-LogicUtils exactly - a browser zip download sometimes lands as ComfyUI-LogicUtils-main - then restart ComfyUI fully.
Negative input "floored the wrong direction." math.floor(-3.1) really is -4. Floor always moves toward negative infinity; if you wanted it to move toward zero instead, that's truncation, not flooring, and this node doesn't do that - you'd combine it with Abs from the same pack for that behavior on a value you know is negative.
Result is off by exactly one from what you expected. Classic floor/ceil confusion - check whether the downstream node actually wanted the value rounded up, not down, and swap for Ceil.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input1 | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| INT | INT | — |