πΌοΈπ Metadata Extractor (List)
Metadata Extractor (List) β ComfyUI Node Guide
- image_input
- image
- positive_prompt
- negative_prompt
- parsed_params_json
- filtered_params_grouped
- raw_metadata_json
Every image ComfyUI (or A1111, or this same pack's own Save Image With Metadata node) saves out carries its full generation recipe embedded right in the PNG - prompt, sampler, steps, seed, the works. That's genuinely useful right up until you have a folder of a few hundred of them and want to know, in bulk, what settings actually made what. This node is the bulk-read side of that: point it at a folder (or a batch of images already in your graph) and it walks through them extracting whatever metadata is baked into each file.
For most of the SD 1.5 and SDXL era, A1111 was the dominant tool, and most CivitAI showcase images you'll find carry A1111-style metadata rather than ComfyUI's own workflow-JSON format - which is exactly the kind of thing this node is built to read back out, whether you're auditing a folder of your own past generations, mining a set of reference images for their original prompts, or just trying to figure out what settings someone actually used on a CivitAI download.
How you feed it images: input_path takes a folder or single file path; image_input takes an actual IMAGE batch or list from elsewhere in your graph and, if both are wired, takes priority over the path - worth remembering, because if you've pointed input_path at a folder and nothing seems to change when you edit it, check whether something's still connected to image_input. filter_params lets you request just the fields you care about - a comma-separated list like steps, sampler, seed - instead of pulling the entire metadata blob every time. max_file_count caps how many items come back (0 means no cap).
The seed input is the pack's recurring "increment as cursor" trick, also used in this pack's Audio Visualizer node: set it to 0 and set ComfyUI's Control After Generate to Increment, and each queue run walks one further into the list - useful for stepping through a folder one image at a time rather than processing the whole thing in one shot.
Outputs: image passes the current item through, positive_prompt and negative_prompt split out just those two fields if the source metadata has them, parsed_params_json gives you the structured version of everything the node recognized, filtered_params_grouped returns only what you asked for via filter_params, and raw_metadata_json hands back the entire unprocessed blob for anything the parser didn't specifically account for.
Installing it: ComfyUI Manager, search "ComfyUI-mnemic-nodes," or git clone https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes into custom_nodes, restart. No models or API keys involved - it's reading file metadata that's already sitting on disk.
Where this actually fails: any image that's been re-saved by a normal image editor, screenshotted, converted, or run through a pipeline that doesn't preserve PNG metadata chunks will come back with empty fields - there's no metadata to recover once it's been stripped, and this node can't reconstruct what was never written to the file in the first place. If you're building a dataset from downloaded reference images and getting nothing back, that's usually the reason: check the source image is an untouched original, not a re-compressed copy.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00β18446744073709550000 | Determines the starting point in the list. Set to 'increment' to cycle through. |
| input_pathopt | STRING | Path to a folder of images or a single image file. Used if image_input is not connected. | |
| image_inputopt | IMAGE | A list/batch of images. This has priority over input_path. | |
| filter_paramsopt | STRING | Comma-separated list of keys to extract (e.g., steps, sampler, seed). | |
| max_file_countopt | INT | 00β10000 | Max number of items to return. 0 for all. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| positive_prompt | STRING | β |
| negative_prompt | STRING | β |
| parsed_params_json | STRING | β |
| filtered_params_grouped | STRING | β |
| raw_metadata_json | STRING | β |