Simple Readable Metadata MAX-SG
Same metadata reader, but every number gets its own output
- Simple_Readable_Metadata
- image
- mask
- width
- height
- width_ratio
- height_ratio
- Resolution_in_MP
- metadata_raw
- Positive_Prompt
- Negative_Prompt
- seed
- steps
- cfg_scale
- sampler
- scheduler
- file_name_text
If you've seen SimpleReadableMetadataSG, this is its older sibling wearing a toolbelt. SimpleReadableMetadataMAXSG reads image metadata the same way - PNG or WEBP, ComfyUI or A1111/Forge format - but instead of stopping at one readable summary and a few typed outputs, it exposes nearly every value as its own output jack. The name is not false advertising: this is the MAX version.
You'd reach for it when the metadata values need to drive other nodes, not just inform you. Feed its seed into a re-run, use width/height or the width_ratio/height_ratio to compute aspect-ratio-aware conditioning, or read steps/cfg_scale/sampler/scheduler into a logging node. A human doing a one-off "what made this image?" is better served by the base node plus the Text Viewer - the MAX version's 17 outputs are for automation.
The inputs
Same family pattern as the base node:
- image - choose from the input-folder dropdown or drag a file onto the widget.
- show_info - here it's just
on/off, not the base node's four-way toggle. It controls the on-node display. - emoji_in_readable_text (default on) - emoji labels in the readable summary; turn off for clean text output.
The outputs that earn the "MAX" name
The readable text, image and mask pass-throughs, metadata_raw, both prompts, seed, and file_name_text are the same as the base node. What MAX adds:
- width, height (INT) - actual pixel dimensions.
- width_ratio, height_ratio (FLOAT) - aspect-ratio values.
- Resolution_in_MP (FLOAT) - megapixels, handy for sanity-checking against a model's native resolution.
- steps (INT), cfg_scale (FLOAT) - generation parameters pulled from the metadata.
- sampler and scheduler - typed as the full ComfyUI KSampler enumerations (euler, dpmpp_2m, karras, and every other option in the dropdowns), so they wire straight into sampler-config nodes without string-matching.
The mechanism is the same parser as the base node, but the output list is the entire point: if you're building a workflow that reacts to what it reads, you don't want to string-parse the readable summary - you want real INTs and FLOATs on the wire. That's this node.
Installing
Pack-level setup, identical to the rest:
cd ComfyUI/custom_nodes
git clone https://github.com/ShammiG/ComfyUI-Simple_Readable_Metadata-SG.git
cd ComfyUI-Simple_Readable_Metadata-SG
pip install -r requirements.txt # opencv-python
Or Manager → Custom Nodes Manager → search Simple Readable Metadata-SG → install → restart. No model files.
Gotchas
Same caveats as the whole family. Metadata must actually exist in the file - stripped chunks mean nothing to read. The Node 2.0 warning applies on ComfyUI 0.3.76+: keep it OFF or the widget rendering breaks. And a MAX-specific note: an unconnected output is free - ComfyUI only computes what's wired - so leaving half the jacks dangling costs nothing. Don't be shy about only connecting what you need.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png | |
| show_info | COMBO | 2 options: on, off | |
| emoji_in_readable_text | BOOLEAN | true | — |
Outputs (17)
| Name | Type | Description |
|---|---|---|
| Simple_Readable_Metadata | STRING | — |
| image | IMAGE | — |
| mask | MASK | — |
| width | INT | — |
| height | INT | — |
| width_ratio | FLOAT | — |
| height_ratio | FLOAT | — |
| Resolution_in_MP | FLOAT | — |
| metadata_raw | STRING | — |
| Positive_Prompt | STRING | — |
| Negative_Prompt | STRING | — |
| seed | INT | — |
| steps | INT | — |
| cfg_scale | FLOAT | — |
| sampler | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2 | — |
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| file_name_text | STRING | — |