Print Value to log
The debug node that tells you what's actually flowing through your wires
- value
- value
You have a workflow that silently produces garbage and you have no idea which intermediate value is the culprit. Print Value to log is the node that ends that guessing: drop it on a wire, give it a label, and it prints whatever is flowing through to comfyui.log - then hands the exact same value out the other side so your graph keeps working while you spy on it. It's the ComfyUI equivalent of a print() in a debugger, and for a platform where intermediate tensors are black boxes, that's more useful than it sounds.
How it works
Two inputs, one output. value is typed * - any type - so it accepts images, latents, strings, numbers, audio, whatever the wire carries. label is a STRING (default mylog) that prefixes the output line so you can tell your debug prints apart in a busy log. On execution it does exactly one thing: print(f"[{label}] : {value}") to the server log. The value passes through untouched on the output socket, which is what makes it safe to splice into the middle of a graph - you're observing, not transforming.
For tensors (images, latents), the print shows the tensor object - shape, dtype, device - which is usually exactly the diagnostic you need (is this a [1, 3, 512, 512] or a [24, 3, 512, 512]? Why is this a CPU tensor?). For strings and numbers it shows the actual value, which is how you check what a math node or a list index actually produced.
When you'd reach for it
- Checking types/shapes. The most common failure mode in ComfyUI is a shape mismatch a couple nodes upstream. Print mid-chain and the tensor shapes tell you where the batch got wrong.
- Confirming list/wrapper contents. Pack-defined types like
TK_IMAGE_PROMPT_LISTare opaque; printing the list shows you the dicts inside. - Status reporting. The node is marked
OUTPUT_NODE, so you can leave it dangling at the end of a branch and ComfyUI treats it as a legitimate terminal node - a cheap way to log "we got here" with a value.
Where to find the output
It prints to the server-side log (comfyui.log / the console you launched ComfyUI from), not to the node or a UI panel. If you're running ComfyUI as a service or in Docker, check the container logs - a common stumble is hunting for the output in the browser when it's sitting in the terminal window two rooms away. And because the print happens server-side, it's not affected by the frontend at all; the value passes through regardless of what the UI shows.
Installing it
Part of trashkollector/TKNodes ("ComfyUI Handy Nodes"). Install via ComfyUI Manager (search "Handy Nodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/trashkollector/TKNodes
Restart, and it's under the debug category. Zero dependencies.
Common issues
The label defaulting to mylog means every unedited instance prints [mylog] - if you drop several in a graph and forget to rename them, you can't tell which is which in the log. Cheap fix, easy to forget. And one honest caveat: printing big lists or image batches floods the log fast; for per-frame debugging you'll want it on a single value, not a 100-frame tensor, or you'll be scrolling for minutes. For that job, this node + TKAudioUnwrap-style access to raw values is the right toolbox.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| value | * | Value to be printed to comfyui.log | |
| label | STRING | mylog | Label for your log |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |