π οΈ Print to Console
Seeing what a string actually contains
The most common bug in string plumbing isn't a bug in a node, it's that you don't know what the string actually is. It looks right in a widget and behaves wrong downstream - because there's a trailing newline, because it's 4000 characters of JSON, because the thing you thought was a filename is a full path. Print to Console puts the value in the terminal where ComfyUI is running, which is the one place you can read it verbatim.
How it works
It prints. That's it: print(f"[Honda] {label}: {value}") when a label is set, or print(f"[Honda] {value}") when it isn't, and nothing at all when it's disabled. The [Honda] prefix is fixed, which is genuinely useful - grep your console for it and you've filtered out every sampler progress line in the log.
The interesting part is caching, and it's where this node gets the plumbing right. ComfyUI caches node results aggressively: unchanged inputs mean the node doesn't re-run, which for a print node means the value you're debugging never appears on the second run and you conclude the node is broken. So it overrides IS_CHANGED to return float("NaN"), the standard idiom for "always dirty" (NaN != NaN, so the cache comparison always fails and it always executes).
That has a cost you should know about, because it's the documented footgun of the whole technique: a node that's permanently dirty defeats caching for everything behind it. On a long chain this can turn a cached re-run into a full re-run. The node ships with an Enabled toggle precisely so you can switch it off when you're done and stop paying for it - use it, rather than deleting the node and then needing it again five minutes later.
The inputs and outputs that matter
Three inputs, no outputs. It's an output node in the execution sense - something has to be the end of the wire - but it produces nothing for the graph.
- Value - the text to print, multiline, and a forced input: wire a STRING into it, you can't type. That's correct behaviour for a debugging node; the interesting values come from elsewhere.
- Label - optional, prepended as
[Honda] POSTPROMPT: .... Worth using when you've got three debug prints in one workflow. - Enabled - leave it on while debugging, turn it off when you're done.
No outputs means it terminates a branch, which is exactly what you want for a throwaway probe: Image β Text Preview, Prompt string β Print to Console. Nothing downstream is affected, because there is no downstream.
Where it beats Text Preview: when the value is too big or too ugly to read on a node body (a whole metadata blob), when you want to timestamp the order things executed in, or when the graph is enormous and you don't want to add more nodes to the canvas. Where Text Preview beats it: you don't have to switch windows, and you get the value in colour on the canvas.
How to install it
Part of Avaray/honda-nodes - ComfyUI Manager β Node Pack β search Honda Nodes β Install β restart. Manual:
cd ComfyUI/custom_nodes
git clone --depth 1 https://github.com/Avaray/honda-nodes.git
cd honda-nodes
python install.py
No dependencies for this node specifically; install.py exists for the pack's jq and ime binaries. Requires ComfyUI 0.38.0 or newer, since it's written against the V3 schema API.
Common issues
Nothing appears. You're probably looking in the browser console. This prints to the server console - the terminal window or Docker log where ComfyUI's own startup banner appeared. (If you're on a hosted or containerised ComfyUI you may have no access to it at all, and Text Preview is your only option.)
It printed once and then stopped. It shouldn't - that's the NaN in IS_CHANGED doing its job - so if it does, the node downstream of it was cached and never asked it to run. Check what's actually wired up to Value and whether that branch is reachable from an output node.
The whole workflow got slower after I added it. Yes. Always-dirty node, full re-run behind it. Toggle Enabled off.
Multiline values print as one blob. Expected - it's a plain print. If you need to count lines or see structure, Print the value through JSON Preview or Text Preview instead.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| value | STRING | The text to print to the server console. | |
| label | STRING | Optional label prepended to the output, e.g. '[DEBUG]'. | |
| enabled | BOOLEAN | true | When disabled, this node does nothing. |
Outputs (0)
No outputs