Workflow Widget To Any Ovum
Pull a widget out of a workflow blob and keep its real type
- PROMPT&WORKFLOW
- *
Its sibling, Widget To String Ovum, is the one you reach for when you want text for filenames and prompts. This node is for when you want the number - a genuine INT, FLOAT or BOOLEAN - because feeding a string into a math node or a comparison quietly breaks things. Workflow Widget To Any reads a widget value out of a PROMPT&WORKFLOW dict and hands it back in its original type, not as a stringified guess.
Both nodes live in comfy-ovum, sfinktah's utility pack. The difference between them is more than the output type, though. Where the STRING version pokes at the live graph, this one takes an explicit PROMPT&WORKFLOW input - a DICT containing workflow and prompt keys, the same structure that gets embedded in saved PNGs. You wire that in from whichever node is carrying a workflow blob, and the node extracts the widget you asked for.
How it works
The node parses the dict and locates the target node by id or node_title - there's no any_input fallback here, so you identify it the old-fashioned way. Then it reads the widget and returns it as *, whatever the native type is. Two flags decide exactly what you get:
from_prompt(default false) - which half of the blob to read. Theworkflowis the serialized graph, widgets as you see them in the editor; thepromptis the execution-time input values actually passed to node functions. If something's overriding a value at runtime,from_prompt=truereads the real thing.return_all(default false) - instead of one value, return a dict of the target node's entire input set, in native types. Good for inspecting what a workflow blob actually contains.
Required inputs are id, widget_name, from_prompt, return_all, and PROMPT&WORKFLOW (DICT); optional is node_title. Single output of type *.
When to reach for it
This is the right tool when you're processing a saved or piped workflow rather than touching live graph widgets - pulling a seed or CFG out of a loaded workflow's metadata, or driving a comparison with a real number that other nodes can compute on. If you just want a display string, use the STRING version; if you want to compute with the value, use this one.
Installing it
Same pack, same steps - ComfyUI Manager, search comfy-ovum, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
No model downloads. The pack's dependencies (requests, aiohttp, pillow, numpy, plus a few small extras) install quietly.
Gotchas
It only works if a real PROMPT&WORKFLOW is wired in - no input, no value, and the node needs an id or an edited title to find its target. And remember node IDs are per-workflow: recreate the graph and the ID you typed is stale. Neither failure mode is fatal, but both read as "my node returns nothing," which is a confusing 20 minutes you can skip by double-checking the ID string.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| id | STRING | — | |
| widget_name | STRING | — | |
| return_all | BOOLEAN | false | — |
| from_prompt | BOOLEAN | false | prompt is used instead of workflow |
| PROMPT&WORKFLOW | DICT | — | |
| node_titleopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |