Load Image and view Properties-SG
Load an image and read its specs before you ever run the workflow
- image
- mask
- width
- height
- width_ratio
- height_ratio
- Resolution_in_MP
The stock Load Image node is quiet. It dumps the image on your canvas and makes you go hunting elsewhere for what it actually is. This node is Load Image with a report card attached: drag an image in and it tells you the dimensions, megapixels, aspect ratio, and file size without running anything. Run the workflow once and it adds the good stuff - model, seed, steps, CFG, sampler, scheduler - pulled straight from the image's own metadata.
So when do you reach for it? Whenever "what am I actually working with here" matters. You got an image from a friend or a model card and want to know if it's already the resolution you're targeting before you feed it to an upscaler. You downloaded a PNG and want to know what model and seed produced it without opening a separate metadata viewer. You're matching input resolution to your output target and just want the numbers sitting on the node. It's a diagnostic tool more than a loader, and it's the node people actually use from this pack.
How it gets the numbers
Two halves. The dimension display works client-side: the pack ships a small JS extension that loads the image, reads its natural width and height, computes megapixels and the GCD-reduced aspect ratio, and paints the lines right onto the node canvas. That's why you see specs before anything has executed - no server-side run involved.
The metadata half is server-side. When you do run the node (or the whole workflow), it re-opens the file with PIL and digs through the PNG text chunks. It knows the ComfyUI format - the prompt and workflow chunks, where it hunts for a CheckpointLoader, UNETLoader, or KSampler - and it also understands Automatic1111-style parameters text, so images from A1111 or Forge get parsed too. Whatever it can't find comes back as N/A rather than crashing.
The inputs and outputs that matter
There's exactly one input, image - the standard upload/drag-and-drop file picker. The outputs are the useful part:
imageandmask- the loaded image tensor plus a mask built from the alpha channel if the file has one (otherwise all-zero/fully opaque). Wire these downstream exactly as you would from the normal Load Image.width,height- the pixel dimensions, handy to feed straight into a resize or conditioning node.width_ratio,height_ratio- the simplified aspect ratio as two floats (a 1920×1080 image gives 16.0 and 9.0).Resolution_in_MP- the megapixel count.
So it's a genuine Load Image replacement, not just a display: everything the stock node passes through, plus numbers you can actually wire into logic.
Installing it
No dependencies beyond what ComfyUI already bundles - there's no requirements.txt, no models to download, no API keys. The whole pack is torch, PIL, and numpy, all of which ship with ComfyUI. Install via Manager: Manager → Custom Nodes Manager → search "ComfyUI-Image_Properties_SG" (or the author, ShammiG) → Install, then restart. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/ShammiG/ComfyUI-Image_Properties_SG
Restart ComfyUI and add "Load Image and view Properties-SG" to your canvas.
Where people get burned
The big one is the frontend. On ComfyUI 0.3.76 or newer, turn Node 2.0 off - the README says it in all caps for a reason. ComfyUI's newer Vue-based Node 2.0 frontend breaks this pack's JS rendering, and the author has said porting it is a ~2000-line rewrite he isn't committing to. If your node loads but shows no property text, that's your problem.
Second: the metadata (model, seed, etc.) only appears after the node actually runs. If you expected it instantly like the dimensions, that's not a bug - the parsing happens on execution. And it only works when the metadata is there to be read; a PNG exported without its text chunks just shows N/A across the board.
It's a small one-person hobby pack - the author posts as Shroom_SG on r/comfyui, where the announcement thread pulled over a hundred upvotes - so it's not rewritten with every ComfyUI release. Fine for a tool that does one thing well; just don't be surprised when a frontend update needs a pin.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| width | INT | — |
| height | INT | — |
| width_ratio | FLOAT | — |
| height_ratio | FLOAT | — |
| Resolution_in_MP | FLOAT | — |