KfDebug_Float
The debug node that prints to your terminal, not your canvas
- FLOAT
First gotcha, so you don't sit there confused for ten minutes: KfDebug_Float does not show you anything on the ComfyUI canvas. Nothing pops up, no preview appears, the node just sits there looking smug. The inspection lands in your terminal - the console window where ComfyUI logs its startup. That's the whole trick of this node, and half the people who install it assume it's broken because they're watching the wrong screen.
What it actually is: a passthrough that logs what it sees. Feed it a float, and it prints the type, then the value, then hands the exact same float back out the other side so your workflow keeps running. You wire it inline - KfEvaluateCurveAtT output → this node → wherever the number was going - and you get a running commentary on what that number actually is as the graph executes.
Why you'd reach for it
This pack is all about parameter curves driving things over time: a CFG value that ramps, a prompt weight that sweeps, a LoRA strength that breathes. Floats are the atoms of that. When your animation's easing curve isn't doing what you think - the value at frame 40 isn't where it should be - the fastest fix is to drop a KfDebug_Float on the wire and watch what the curve actually evaluates to at that point. It's also just handy for confirming you're getting the float you expected out of a node before you feed it somewhere it can quietly corrupt things.
The inputs that matter
item- the float you want to inspect. It's force-input, so you can't type a value; it has to come off a wire, which is the point.label- a multiline string that defaults to"debugging passthrough". This is your finder: it gets logged right before the inspection, so if you have six debug nodes in one graph you can grep the console for "label: frame 40 CFG" and land on the right block of output.
Output is a single FLOAT, which is the same value you put in. It's marked as an output node, but don't expect it to render anything - its only "output" is log lines.
How it works under the hood
Every KfDebug_* node is the same class with a different type label - KfDebug_Float is just KfDebug_Passthrough with RETURN_TYPES = ("FLOAT",). The inspection helper logs type, then digs for dtype and shape if they exist, and finally prints the value. For a plain float you get something like type: <class 'float'> followed by item: 0.7321. The label line comes first so you can find it.
Installing it
This ships in ComfyUI-Keyframed, dmarx's pack that wraps his own keyframed Python library. Easiest is ComfyUI Manager - search "Keyframed" and hit install. Manual route, same as anything else:
cd ComfyUI/custom_nodes
git clone https://github.com/dmarx/ComfyUI-Keyframed
Restart ComfyUI after. On first load the pack auto-installs keyframed and toolz via pip (the install sequence is literally borrowed from FizzNodes, which the README lists as a related project). No model files to download - this pack is pure code, which is refreshing.
Troubleshooting
The one real gotcha is the canvas-versus-terminal thing above. If you're staring at the node and seeing nothing, your inspection is sitting in stdout - go look. Second, if the console floods, remember the label is the only thing that makes lines searchable; give every debug node a distinct one. And if you're debugging a curve value mid-animation, know that this pack's README admits curve division is currently broken upstream in keyframed - a float that's the result of a divide may not be what you think.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| item | FLOAT | — | |
| label | STRING | debugging passthrough | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | — |