Nodes/h4_Live/h4 - Smart Console (Debug)
ComfyUI Node

h4 - Smart Console (Debug)

The debug node that tells you what's actually in that wire

By m3rr·Created 9 months ago·Updated 11 days ago· 1
h4 - Smart Console (Debug)
  • Anything In
  • Anything Out
+ULTRAfalse

Every "why is this broken" session starts the same way: staring at a wire and wondering what's actually in it. Is that latent the size you think it is? Is that string empty? Did that node hand you a dict instead of a tensor? H4_SmartConsole is the h4_Live answer to that - a pass-through debugger that dumps what you feed it to your terminal and onto the node itself, then hands the same data straight back out.

It lives in the h4_Live/Debug category and works with anything. Because the input socket is the * wildcard type, you can hang it off an image, a model, a latent, conditioning, a string - whatever. It's the "stick a node in the wire and look" tool.

How it works

Plug anything into Anything In and run. The node inspects the object and prints a timestamped, color-coded block to the ComfyUI console - the cyan --- H4 SMART CONSOLE --- banner is hard to miss - while also pushing the same lines into a text readout on the node itself. Then it passes the original object out of Anything Out untouched, so you can drop it inline without breaking the flow.

What it tells you depends on what you gave it:

  • Tensors (images, latents): shape, dtype, and device. That alone catches most wiring bugs - a [1, 3, 512, 512] vs [1, 512, 512, 3] mismatch is instantly visible.
  • Dicts (like the LATENT structure): keys and, when it spots a samples tensor, the latent shape.
  • Lists / tuples: length and the type of item 0.
  • Strings, ints, floats: the value itself.
  • Anything else: "Object: Complex Object" with a hint to use +ULTRA.

The +ULTRA toggle is the deep-dive mode. Off, it gives you the headline facts. On, it starts "nuclear scanning" - min/max/mean and gradient presence on tensors, key-by-key type dumps on dicts, attribute lists, object IDs, string representations. It's genuinely handy when a model or custom object is misbehaving and you want to know what class you're actually holding. It can also be noisy, so flip it on when you're hunting, off when you just want the shape.

The two inputs that matter

  • Anything In (*) - what to inspect. Optional; leave it empty and the node still runs, but that's not useful.
  • +ULTRA (boolean, default off) - deep introspection mode, as above.

Outputs: Anything Out (*) - the exact object that went in. You can ignore it entirely; this is a debug node, not a processing one.

Installing h4_Live

This ships as part of the h4_Live pack, so installing it installs the whole toolkit. Via ComfyUI Manager: search h4_Live in the Custom Nodes menu and install, then restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/m3rr/h4_Live

Restart ComfyUI. There are no model downloads and no extra pip packages - the pack's manifest declares zero dependencies, and everything it touches (torch, Pillow, numpy, aiohttp) is already part of a stock ComfyUI install. One caveat: this is a one-developer project that's still evolving fast, so update from Manager occasionally and expect things to shift.

Common issues

  • It's an output node, so it always runs. That's by design for a debugger, but it means everything upstream of it recomputes on every queue - don't leave four of them scattered across a workflow you're actually generating with.
  • Console spam. The pack logs loudly - every SmartConsole run prints a banner, and +ULTRA on a big object can dump a lot of lines. Fine when debugging, annoying at 3am. Pull the node out of the wire when you're done; that's the intended workflow.
  • You don't get stack traces. This tells you what the data is, not why it's wrong. If your error is a mismatched tensor shape downstream, this finds it fast. If the problem is logic, reach for the h4 State Monitor and traffic nodes instead.
Categoryh4_Live/Debug

Inputs (2)

NameTypeDefaultDescription
+ULTRABOOLEANfalseEnable nuclear scanning of objects (Attributes, hidden methods, deep introspection).
Anything Inopt*Connect anything here. The node will analyze it.

Outputs (1)

NameTypeDescription
Anything Out*