Nodes/PROJECT-MAD-NODES/Visual Prompt Gallery (EXIF)
ComfyUI Node

Visual Prompt Gallery (EXIF)

Turn your reference folder into a prompt library — Visual Prompt Gallery (EXIF), explained

By PROJECTMAD·Created 9 months ago·Updated 5 months ago· 5
Visual Prompt Gallery (EXIF)
    • IMAGE
    • positive_prompt
    • negative_prompt
    positive_prompt
    negative_prompt
    image_list[]
    current_image
    gallery_settings

    You know that folder of images you love - the ones with the exact lighting or character design you keep meaning to imitate - and how you copy their prompts out of a viewer by hand? The Visual Prompt Gallery (EXIF) from PROJECT-MAD-NODES is a reference-image browser that lives inside your graph instead. Drag an image in, click it, and the positive and negative prompts it was generated with come out the other side as strings you can wire straight into your text encoders. One click swaps your whole workflow to a different style, which beats scrolling a file explorer.

    How it works

    Images you drop on the node get copied into ComfyUI/input/visual_gallery/, so they survive restarts. The node hashes each file (a SHA-256 of the bytes plus a pixel-level hash) into a SQLite index to catch duplicates, and thumbnails build a grid you click through. When you select an image, metadata extraction runs in the browser: it reads ComfyUI's own PNG workflow chunks, the standard A1111/Forge "Negative prompt:" text format, CivitAI's extraMetadata JSON, EXIF UserComment, and sd-metadata. Whatever it finds populates the prompt fields, which you can edit before you run.

    The clever part is that the prompts are state, not just output: positive_prompt, negative_prompt, image_list, current_image, and gallery_settings are all inputs holding the node's state, so the whole thing serializes into your workflow JSON. Save the workflow after adding images and the gallery list comes back with it.

    The outputs you'll use

    • IMAGE - the currently selected image as a tensor, ready to feed an img2img, ControlNet, or upscale reference. Nothing selected? You get a 64×64 black tensor so the workflow still runs instead of erroring.
    • positive_prompt and negative_prompt - the extracted prompts, straight into your CLIP Text Encode nodes.

    Install

    ComfyUI Manager → search PROJECT-MAD-NODES, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PROJECTMAD/PROJECT-MAD-NODES.git
    

    Restart ComfyUI. No heavy dependencies, no model downloads.

    Gotchas (there's a big one)

    The big one: this node does not work with ComfyUI's experimental "Nodes 2.0" frontend. It relies on the old LiteGraph renderer, so if you've enabled the new Vue-based interface in settings, the gallery simply doesn't appear. Disable Nodes 2.0 and it comes back. The pack's other node (Multi Scheduled Lora Loader) is unaffected - it's only the gallery.

    Two quieter traps. First, the gallery list lives in node state, while the image files live in input/visual_gallery/ - save your workflow or your list vanishes even though the files are still on disk. Second, metadata extraction is only as good as the image: JPEGs often lose their prompt data, so PNG is your friend, and if fields come back empty, verify with a tool like ExifTool before assuming the node is broken. And don't cram hundreds of images in - thumbnails get sluggish past roughly fifty.

    Honest verdict

    This is a small pack with almost no community footprint as of mid-2026 - no reddit chatter, no crowdsourced war stories - so you're leaning on the repo's own (decent) docs. It earns its keep if you iterate heavily over a fixed set of reference styles and hate prompt archaeology. If you work from two or three prompts, it's overkill and you can skip it.

    Categoryutils

    Inputs (5)

    NameTypeDefaultDescription
    positive_promptSTRING
    negative_promptSTRING
    image_listSTRING[]
    current_imageSTRING
    gallery_settingsSTRING

    Outputs (3)

    NameTypeDescription
    IMAGEIMAGE
    positive_promptSTRING
    negative_promptSTRING