ComfyUI Node

Image Metadata Core

Read the generation story back out of any image

By sickollie·Created 2 months ago·Updated 7 days ago· 19
Image Metadata Core
  • images
  • images
  • final_prompt
  • source_prompt
  • seed
  • generation_settings
  • models
  • resolved_inputs
  • full_report
  • metadata_json
  • has_metadata
image_file[None]
status
final_prompt_display
source_prompt_display
generation_display
models_display
prompt_log_display
outfit_a_display
outfit_b_display
outfit_c_display
scene_display
substitutions_display

In this ecosystem the image is the project file. SickOllie's Output Core writes its structured metadata into every PNG it saves, and Studio Image Metadata Core (SOImageMetadataCoreStudio) is the node that reads it back out. Drop in a PNG, JPG, or WebP - or connect an IMAGE - and it extracts the resolved prompt, seed, generation settings, models, LoRAs, and resolved inputs, shows them in readable sections with copy controls, and exposes the same data as typed outputs you can wire into anything else.

How it works

The node prefers structured SICK OLLIE metadata when it's present, then falls back through the usual suspects: ComfyUI workflow/prompt chunks, and A1111/Civitai-style parameters text. It handles PNG, JPG, and WebP, and the README is explicit that JPG/WebP metadata is useful for inspection while PNG is the reliable ComfyUI workflow container. Under the hood, uploads use a private temp token instead of dumping files into ComfyUI/input, so inspecting images won't pollute your input folder.

Inputs: image_file (a file picker, default [None]), an optional connected images, and a wall of read-only display fields - status, final_prompt_display, source_prompt_display, generation_display, models_display, prompt_log_display, outfit_a_display/outfit_b_display/outfit_c_display, scene_display, and substitutions_display. Those mirror exactly what Prompt Core assembled, which is the point: this is how you verify that a saved image used the outfit and scene you thought it did.

The outputs that matter

Ten of them: images (passthrough), final_prompt, source_prompt, seed (INT), generation_settings, models, resolved_inputs, full_report, metadata_json, and has_metadata (BOOLEAN). For beginners, final_prompt and seed are the workhorses - wire them into a text/seed display or a save recipe. has_metadata is handy for branching: it tells you whether the file carried any recognized generation data at all, which a lot of scraped or re-encoded images won't.

Installing it

Part of the SickOllie pack:

cd ComfyUI/custom_nodes
git clone https://github.com/sickollie/SickOllie

or ComfyUI Manager → "SickOllie". Restart, Ctrl+F5. No extra dependencies.

Where people get burned

The metadata has to be there in the first place. If the image was re-encoded by a host, screenshotted, or saved as JPEG, there's no graph to recover - this node can only read what survived, and the README's own rule is "PNG with prompt and workflow metadata enabled" for round-trip. Second, Civitai matching is hash-based and exact: a converted or retrained file won't match its published page even when the name looks right, so models may resolve a name but not a Civitai ID. And don't expect has_metadata to be true for images from sources that strip chunks - false isn't a bug, it's the honest answer.

CategorySick Ollie/Studio

Inputs (13)

NameTypeDefaultDescription
image_fileSTRING[None]
statusSTRING
final_prompt_displaySTRING
source_prompt_displaySTRING
generation_displaySTRING
models_displaySTRING
prompt_log_displaySTRING
outfit_a_displaySTRING
outfit_b_displaySTRING
outfit_c_displaySTRING
scene_displaySTRING
substitutions_displaySTRING
imagesoptIMAGE

Outputs (10)

NameTypeDescription
imagesIMAGE
final_promptSTRING
source_promptSTRING
seedINT
generation_settingsSTRING
modelsSTRING
resolved_inputsSTRING
full_reportSTRING
metadata_jsonSTRING
has_metadataBOOLEAN