Prompt Reader Pixaroma
Pull the prompt back out of any generated PNG
- text
Prompt Reader Pixaroma recovers the positive prompt saved inside a generated PNG's metadata - no image preview, just the text - and hands it to you as a STRING output you can wire straight back into a CLIPTextEncode. It's the answer to the oldest question in the game: "I made something great three weeks ago, what did I prompt?" If the image was made in ComfyUI, Automatic1111, or Forge, the answer is buried in the file, and this node digs it out.
The whole "workflow included" culture of ComfyUI is built on that embedded metadata - the graph is saved into the PNG so dragging it back into ComfyUI rebuilds the pipeline. This node reads the prompt half of that, and it's the piece people forget exists when they're staring at a great image they can't reproduce.
Using it
Drop a PNG onto the node, click Upload Image, or pick from the file combo. The readout updates the moment you choose a file - you see the prompt before you even run the workflow. One orange Copy button puts it on your clipboard. The text output wires into CLIPTextEncode or any text input, so you can re-use the prompt without retyping a character.
The hard part of prompt recovery is that real workflows don't have a single text string - they chain ConditioningCombine, StringConcatenate, SDXL's dual-text encoders - so the prompt is scattered. This node reconstructs it, and it also handles the Automatic1111 / Forge parameters format, which is a different metadata scheme entirely. Both covered, which is more than most reader nodes bother with.
There's also an optional filename input: wire in a filename (for example Load Image Pixaroma's filename output) and it reads that image's prompt automatically, ignoring its own picker. If you pick, upload, or drop a file on the node, it takes over and disconnects the wire - so it never gets stuck in a mode you didn't ask for.
What happens when there's no prompt
This is where the node shows its design sense. A JPG, a screenshot, or a PNG whose metadata was stripped has no prompt to find. Instead of failing silently - or worse, outputting garbage - the readout shows a short explanation, and the text output carries the same explanatory message. That second part is deliberate: downstream wiring doesn't break with a None, it just receives a message you'll notice. It's the "fail soft, but visibly" pattern, and it's the right call for a node that lives mid-graph.
Installing it
It's in the ComfyUI-Pixaroma pack - ComfyUI Manager search Pixaroma, Install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma
No dependencies, no models.
Gotchas
Two worth remembering. First, it reads the positive prompt - if you're after the negative, this isn't the node (and honestly, negative prompts get stripped from metadata more often anyway). Second, the pack's own loop recommendation: Pair it with Prompt Pixaroma - build your prompts with @tags there, and when you lose a recipe, drop the finished PNG back into this node to recover the full expanded text. Metadata is a superpower, but only if you remember to use it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | The image to read the prompt from. Upload, drag-drop, or pick a PNG made with ComfyUI / Automatic1111 / Forge so its embedded prompt can be recovered. The readout updates as soon as you pick a file. | |
| filenameopt | STRING | Optional. Wire an image's filename here (for example Load Image Pixaroma's 'filename' output) to read that image's prompt automatically. While connected, the node ignores its own picker. Pick, upload, or drop a file on the node to take over and disconnect the wire. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | The prompt recovered from the image's metadata, or an explanatory message if none was found. |