Nodes/ComfyUI LC123 Nodes/LC Node Snapshot πŸ“‹
ComfyUI Node

LC Node Snapshot πŸ“‹

Read another node's widgets β€” without reloading the workflow

By lonecatone23Β·Created 2 months agoΒ·Updated 3 days agoΒ· 18
LC Node Snapshot πŸ“‹
  • source
  • selected
  • lines
  • json
β—„widget_nameβ–Ί
β—„targetβ–Ί

Sometimes the value you want is already sitting in a widget on another node - the seed on a sampler, the strength on a LoRA, the preset on a style node - and you'd rather pull it out and use it somewhere else than retype it and risk it drifting out of sync. LC Node Snapshot is the read-head: point it at another node, pick a widget, and it hands you that widget's current value. Three outputs, one for how you want it.

How it works

You identify the target node one of two ways. Preferred: wire any output from the node you want to inspect into source - the wildcard socket accepts anything, and the connection is what marks the target. Fallback: type the node's exact title (or numeric id) into the target text field. Then set widget_name - the name of the parameter widget on that node (like preset or strength). The frontend fills a dropdown of the target's widget names for you, so you pick rather than guess.

The node then outputs:

  • selected - the widget's current value as a string.
  • lines - a dump of node identity plus the value, line-oriented.
  • json - the same information structured as JSON with the widgets object.

It's marked as always-changed, so it re-reads on every queue run rather than caching the value from last time.

The real use case

This is the "grab a value out of the graph" node - snapshot a style node's preset so you can log it, or pipe the current seed into a filename, or pull a strength so another node can compute against it. It also makes a decent poor-man's inspection tool: if you want to know what a node is actually doing mid-pipeline, snapshot its widgets and look at the output.

The details that bite

  • source takes priority over target - if both are connected/typed, the wire wins.
  • target needs the exact title (case-sensitive-ish). Titles are what you see in bold on the node; numeric ids are the way ComfyUI addresses nodes internally.
  • widget_name is a plain string field validated against nothing at load - if you misspell it, you'll get an empty selected. Use the dropdown the frontend fills in.
  • If nothing is identified, you'll get empty outputs rather than an error. Not a crash, but a "did I even point this at anything?" moment.

Install

Part of ComfyUI LC123 Nodes (MIT, 89 nodes). ComfyUI Manager β†’ search "ComfyUI LC123 Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes

Restart. No extra dependencies. On hosted platforms like RunningHub, request the pack and they install it for you.

When not to bother

If you just want one value feeding several places, the cleaner move is converting the source widget to an input and wiring a single primitive to all of them - that's the "one source, many consumers" pattern from the plumbing playbook. Snapshot is for reading values you don't control (someone else's node, a preset you didn't build) or for logging/inspection. Different job, same family.

CategoryLC123/utils

Inputs (3)

NameTypeDefaultDescription
widget_nameSTRINGName of a parameter widget on the target (e.g. preset, strength).
sourceopt*Wire any output from the node you want to inspect. Takes priority over target text.
targetoptSTRINGFallback: node title (exact) or numeric id if source is not connected.

Outputs (3)

NameTypeDescription
selectedSTRINGβ€”
linesSTRINGβ€”
jsonSTRINGβ€”