float
The boring wire that makes your shader tunable
- float
This is the most boring node in the pack, and that's exactly the point. It takes one number and hands it to the next node. No API calls, no hidden state, no model download - you drag it out of the GLSL category, set a value, and wire it somewhere. If you've ever used a plain float node from another utility pack, you already know this shape.
So why does it exist? Because of how this pack feeds numbers into shaders. When you connect a float to a glslViewer node, the viewer's front-end sees a FLOAT connection and quietly names it u_val0 (then u_val1, u_val2…). In your shader you declare uniform float u_val0; and read it in main(). That single trick is what turns a shader from "hardcoded math" into something you can scrub while you watch the preview - brightness, blur radius, mix amount, raymarch step count. The default glslEditor code even ships with a template line for it, commented out.
The input that matters
value - a FLOAT, default 0, step 0.001. That's it. The 0.001 step is nicer than it sounds: you can actually finesse fine values instead of the node snapping around like a core Int widget. Output is a single float.
Two honest caveats. First, don't expect this node to convert or format anything - it's a raw passthrough, so if you feed it a string somewhere upstream, that's on you. Second, a static float is static. If you want a number that moves on its own, the shader already has u_time and u_frame built in, so you rarely need to animate this node from the outside - you use it for the values you want to pin down.
How to install it
Install the pack once (all 13 nodes come from the same repo) and you're done:
cd ComfyUI/custom_nodes
git clone https://github.com/patriciogonzalezvivo/comfyui_glslnodes
Then restart ComfyUI, or skip the terminal and use ComfyUI Manager - search "GLSL Nodes" and hit install. Dependencies (moderngl, numpy, and optionally snowy) are handled by Manager from the pack's requirements.txt; if you cloned manually and the nodes error on load, run pip install -r requirements.txt inside the folder. There are no model files to download - this pack is all code, nothing to fetch from Hugging Face.
Where people get tripped up
The usual confusion is expecting float to be how you type values into the shader code. It isn't - the shader text itself is the glslEditor. The float node is the runtime knob. If your shader ignores the value, check the declaration: you need uniform float u_val0; in the code, and if you've wired multiple floats, make sure you're reading the right index. That mismatch is the #1 "why is nothing changing" report for this pack.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | FLOAT | 0.000-18446744073709550000–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| float | FLOAT | — |