Nodes/Akatz-Loop-Nodes/Debug Print | akatz-loops
ComfyUI Node

Debug Print | akatz-loops

See what's actually flowing through a wire

By akatz-ai·Created about a year ago·Updated 8 months ago· 23
Debug Print | akatz-loops
  • value
  • *
label

When a ComfyUI workflow misbehaves, half the battle is just seeing what a wire is carrying. DebugPrint | akatz-loops is the low-tech answer: you drop it on a wire, it prints a description of the value to the ComfyUI console, and it passes the value straight through so nothing downstream breaks. It's the print() of ComfyUI, and it belongs in every workflow you're actively debugging - even the ones you eventually delete it from.

Inputs and outputs

  • value - a * input; anything at all.
  • label (STRING) - a tag printed before the value so you can tell your debug lines apart when there are several.
  • output - the same * value, untouched, so you can keep the node inline between two other nodes without splicing wires.

The output is a pure passthrough, which is the design that makes it painless: wire it in the middle of an existing connection and the graph keeps working while you look.

What it prints

The node is smart about how it describes values rather than dumping raw reprs. It renders:

  • strings as quoted text
  • numbers and booleans as their literals
  • lists, tuples, and dicts recursively
  • torch tensors as Tensor[shape] - which is the one you'll actually care about, because it tells you the batch/height/width/channel layout at a glance
  • anything else as its type name

So a latent shows up as Tensor[1, 4, 64, 64] instead of five thousand floats. Where does it print? The terminal running ComfyUI - not the browser UI. If you don't see output, check you're looking at the console, not the frontend.

Installing it

Part of the Akatz-Loop-Nodes pack (repo ComfyUI-Execution-Inversion):

cd ComfyUI/custom_nodes
git clone https://github.com/akatz-ai/ComfyUI-Execution-Inversion
# restart ComfyUI

Or ComfyUI Manager → "Akatz-Loop-Nodes". opencv-python is the only dependency; no model files.

Gotchas

The obvious one: it's terminal-only, and plenty of people miss the prints entirely because they're watching the UI. The subtler one is inside loops - a debug node in a loop body prints once per iteration, so a 50-iteration loop buries your terminal in 50 lines (fine, but label well or you can't tell which iteration is which). And don't leave it on the hot path in production workflows; it's cheap, but a debug node you forgot about is how you end up with 200 lines of [label]: Tensor[1,4,64,64] after every batch.

CategoryAkatz Loop Nodes/Debug

Inputs (2)

NameTypeDefaultDescription
value*
labelSTRING

Outputs (1)

NameTypeDescription
**