KfDebug_Cond
Peek inside a conditioning without breaking the wire
- item
- CONDITIONING
ComfyUI conditionings are opaque. You wire one out of a text encoder or out of this pack's schedule nodes, and all you can see is a wire - no batch size, no shape, no idea what's actually in there. KfDebug_Cond is the pack's answer: a passthrough node that logs everything it can learn about a CONDITIONING to the console and hands the same object back out the other side, untouched.
The trick that makes it painless is that it's a passthrough. You don't rewire anything to debug - you insert it in the middle of an existing wire, read the console output, and either leave it (it costs almost nothing) or delete it. The output is the identical CONDITIONING, so the graph below the node never notices it was there.
How it works
It's one of a family of debug passthroughs in this pack, all sharing the same inspection routine. On the CONDITIONING variant, it logs the type, then walks the structure: tensors get their dtype and shape printed, dicts get their keys and values walked recursively, lists get their length and each entry inspected. For a conditioning that means you'll see the cross-attention tensor's shape - the [batch, tokens, embed_dim] layout that tells you at a glance whether your schedule evaluated to a single conditioning or a per-frame batch - and the contents of the conditioning dict, including whether a pooled output is present. All of that lands in the ComfyUI console, which is where the real information lives.
The inputs
item(required) - the CONDITIONING to inspect.label(default "debugging passthrough") - a text tag printed with the log, so when you have several debug nodes in one graph you can tell which console block came from which node. Renaming it is the first thing you should do.
The output
CONDITIONING - the identical object, passed through. This node is marked as an output node, so it works fine as a terminus, but its real value is mid-wire.
How to install it
Part of ComfyUI-Keyframed: ComfyUI Manager → search ComfyUI-Keyframed, or
cd ComfyUI/custom_nodes
git clone https://github.com/dmarx/ComfyUI-Keyframed
then restart ComfyUI. No models; dependency is keyframed (plus toolz), auto-installed on first import.
Troubleshooting
The classic beginner move: watch the wrong place and think it's broken. The log goes to the ComfyUI console (the terminal where you launched it), not the UI - if you're staring at the node waiting for a tooltip, you're looking in the wrong spot. Second, because it logs the full nested structure, a batched conditioning with many frames will dump a lot of output; that's fine, just scroll past the tensor shapes to the dict keys you care about. And if you expected to see the prompt text in there, you won't - conditionings store tensors and metadata, not the strings that made them. For that, check the node upstream.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| item | CONDITIONING | — | |
| label | STRING | debugging passthrough | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |