Nodes/ComfyUI-Logic/👁️ Preview Type
ComfyUI Node

👁️ Preview Type

The 'what am I actually holding?' debug node

By playboy-dongan·Created 6 months ago·Updated 6 months ago· 0
👁️ Preview Type
  • any

    Half of ComfyUI debugging is just figuring out what a socket is actually carrying. You connected a node, it errored with a type mismatch, and the error message might as well be in Klingon. The 👁️ Preview Type node is the "put a label on it" tool: wire anything into its single any input and it tells you, in plain words, what type of thing arrived and a bit of detail about it. That's all it does, and it's remarkably handy for it.

    What you get in the node's display is a type name and a detail line. The type detection is thorough - the source walks Python types and ComfyUI conventions:

    • IMAGEbatch: 4 size: 512×512 ch: 3 (a 4D tensor, dims decoded)
    • MASK → batch and size (3D tensor, no channel)
    • LATENT → batch, spatial size, and channels (a dict with a samples key)
    • STRING / INT / FLOAT / BOOLEAN → value or length
    • DICT → key count plus a few keys
    • LIST → it inspects the first element, so you get STRING_LIST, IMAGE_LIST, MASK_LIST, BOOLEAN_LIST, and even CONDITIONING (a list of tensor+dict pairs - the classic positive/negative prompt structure)

    The conditioning detection is the sleeper here. CONDITIONING objects are the least intuitive thing in a ComfyUI graph, and this node will tell you "yes, that's a conditioning list, count: 2" instead of you guessing from the wire color.

    It has no outputs. None. It's a pure terminal node (marked OUTPUT_NODE = True), which means two things: it's meant to sit at the end of a wire and look, and - because it's an output node - it forces the chain upstream of it to execute. Same as a Preview Image node. So it's a live inspection point, not a passive one; if the thing feeding it isn't running, the type preview won't update either.

    That last point is the thing to internalize, because it's both a feature and a trap. Feature: drop PreviewType mid-graph and the upstream chain runs on demand, so you can inspect intermediate values that would otherwise be cached away. Trap: it's always dirty (IS_CHANGED → NaN, like the rest of this pack), so it'll keep that upstream chain running on every queue - if you park it in front of a heavy node and forget it, you've turned on the "always compute" switch for that whole branch. When you're done inspecting, disconnect it rather than leaving it as a permanent witness.

    The obvious comparison is the pack's other preview node, 🖥️ Universal Preview. They overlap, but they're different tools: Universal Preview renders images to the screen and plays audio inline - it's for seeing the data. Preview Type doesn't render anything; it just tells you the type and shape. If you're debugging "why won't these connect," Preview Type is the sharper instrument; if you want to look at the actual pixels, use Universal Preview. For troubleshooting type mismatches specifically, this one is faster - the answer is in the node title, not in a rendered image.

    Installation is pack-level and boring:

    cd ComfyUI/custom_nodes
    git clone https://github.com/playboy-dongan/ComfyUI-Logic-nodes
    

    or ComfyUI Manager → search "ComfyUI-Logic-nodes" → restart. No models, no dependencies.

    Every workflow builder ends up with a "what is this" habit. This node makes that habit one drag-and-drop instead of a trip to the console.

    Category⚡ Logic

    Inputs (1)

    NameTypeDefaultDescription
    any*

    Outputs (0)

    No outputs