Get Float from Image
Grab the exact denoise value from a saved image
- image
- FLOAT
Some numbers in a workflow are "set and forget" and some are the whole recipe. denoise is the latter - it's the single knob that decides how much of an img2img result is new and how much is the source. When you want to reproduce someone else's look exactly, you need their denoise, not a guess. Get Float from Image reads it straight out of the saved file.
It's one of eight nodes in shinich39's comfyui-get-meta pack, and the float version of the pack's core trick: every ComfyUI image carries its generation graph embedded as metadata, so a float widget's value from the run that made a picture is sitting there in the file, waiting to be queried.
How it works
Don't let the name fool you - it doesn't analyze image brightness or contrast or anything pixel-y. The pack's browser-side extension finds the image loader feeding the image input, has the backend open the file with Pillow, and parses the embedded prompt JSON (JSON5, actually - ComfyUI's metadata format is JSON5, which is why the pack bundles a JSON5 parser). It then looks up the widget your query names and writes its value into the float widget. The Python node itself is just an echo; IS_CHANGED is hardcoded so the node always re-executes on queue, pushing the fresh value downstream.
The inputs and output that matter
- image - wire from a supported loader: core
LoadImage/LoadImageMask, Inspire Pack's "LoadImage //Inspire", Crystools' "Load image with metadata [Crystools]", or WAS Node Suite's "Image Load". - query - the float you want, in
NODE_TYPE.WIDGET_NAMEform (or#NODE_ID.WIDGET_NAMEfor node IDs). The ones you'll actually type:KSampler.denoise- the img2img stapleKSampler.cfg- the CFG value, which lives in a float widget even though you usually think of it as a whole numberKSampler.strengthor any custom node's float parameter
- float - result widget, default
0.0. A run overwrites anything you typed there.
The single FLOAT output feeds denoise, cfg, strength, or any other float input in your graph.
Installing it
ComfyUI Manager → search comfyui-get-meta → Install, then restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/shinich39/comfyui-get-meta
Restart ComfyUI after cloning. That's it: no model files, no requirements.txt, no GPU downloads - Pillow is already a ComfyUI dependency and JSON5 ships bundled with the pack.
Common issues
- Stuck at 0.0 - the image has no embedded metadata (saved with a metadata-stripping node, re-uploaded, screenshot). There's nothing to read. Quick check: drag the image into ComfyUI and see if the workflow reconstructs.
- Unsupported loader - if the
imageinput comes from a video-frame or URL-loader node, the extension can't find a file path and nothing fills. Use one of the supported loaders. - It's UI-side magic - values are injected when the connection changes or you queue a run, so a headless API execution gets the default. If you live in the ComfyUI web UI, no problem.
Where this earns its keep: matching someone's exact img2img denoise to nail their look, or auditing a workflow where cfg was left at a weird value and you want to know before you rerun it. Small node, specific job, does it cleanly.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| query | STRING | — | |
| float | FLOAT | 0.00 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | — |