ComfyUI Node

Prompt Browser

Browse, edit, and roll your saved prompts

By FranckyB·Created 11 months ago·Updated 15 days ago· 148
Prompt Browser
    • prompt
    sourceSystem Prompts
    categoryAudio
    name_prompt_prefix_
    selected_prompts[]
    use_prompt_inputfalse
    text
    prompt

    The Prompt Browser is the retrieval side of FranckyB's Prompt Manager: the part that turns "I know I saved a good one for this" into an actual prompt on your KSampler. You save prompts with the Prompt Manager nodes, and this node is the drawer you pull them out of. It also does something the README is quietly proud of - it's the one place where you can edit all three of the pack's prompt libraries from a single UI, so it works as your library manager too.

    What it actually does

    Behind the scenes the node reads three different stores and lets you browse whichever one you point source at:

    • Prompt Data - your saved user prompts, the ones the Prompt Manager (Advanced/Basic) nodes write.
    • Compose Data - fragments from the newer Prompt Compose system (the pack's replacement for Expression Selector).
    • System Prompts - the instruction prompts that steer the Prompt Generator's LLM.

    Everything is organized into categories with named entries - that's where the big 500+-entry name dropdown comes from. Pick a category, pick a name, and the node resolves the stored text and hands you a single prompt STRING output. Wire that into a CLIPTextEncode positive input (or anywhere a prompt string goes) and you're done.

    The inputs that matter

    • source - which of the three libraries you're browsing. Defaults to System Prompts, which is a mildly weird default for first-time users; you'll usually flip to Prompt Data.
    • category / name - your browsing path into the library. The category list is built from the union of all three stores, so don't be confused if you see categories from libraries you don't use.
    • selected_prompts - the multi-select secret. The browser's UI lets you multi-select entries, stored here as an internal JSON list; when more than one is selected the node picks one at random. You don't hand-edit this, it's "Internal: JSON list of selected prompts" per the author.
    • use_prompt_input + prompt - the pass-through switch. Flip it on and connect a prompt string and the browser steps aside, passing your text through unchanged. Handy for A/B testing a library entry against your own prompt.
    • text - the raw text field, also the edit surface. When the library entry you picked has no stored text, this is what comes out instead.

    One output, prompt (STRING). That's it. It's flagged as an output node, but don't read anything into that - it's really a text source you wire forward.

    Random roll, and the reproducibility trap

    The multi-select random pick is seeded by a hidden seed input, and here's the gotcha: with multiple selections selected, the node re-rolls on every execution (its change detection deliberately includes the wall clock), so two runs give you two different prompts. If you want the roll to be reproducible - which you do the moment you like what you got - the workflow's save metadata bakes the resolved text in, but for live runs you'll want to pin things down or lock to a single selection.

    Install and requirements

    Install is the standard dance: ComfyUI Manager → search "ComfyUI-Prompt-Manager", or

    cd ComfyUI/custom_nodes
    git clone https://github.com/FranckyB/ComfyUI-Prompt-Manager.git
    cd ComfyUI-Prompt-Manager && pip install -r requirements.txt
    

    then restart. Good news for this specific node: the pack's llama.cpp/Ollama and Qwen model downloads are all Prompt Generator business. The browser itself is pure UI plus JSON on disk - the only real dependencies are the pack's usual requests, huggingface_hub, Pillow and friends, which the README lists and pyproject.toml confirms.

    Where people get burned

    The biggest footgun: the name dropdown is one giant union of all three libraries, but resolution happens against the single store your source points at. Pick a name that lives in a different library than your source and the lookup silently comes up empty and the node falls back to the text field. If your browser "returns nothing," check that category + name actually exist in the source you selected - it's almost always a source/category mismatch, not a bug. And if a library looks empty, remember it only shows categories that already have entries; you may simply not have saved anything there yet.

    CategoryPrompt Manager

    Inputs (7)

    NameTypeDefaultDescription
    sourceCOMBOSystem Prompts3 options: Compose Data, Prompt Data, System Prompts
    categoryCOMBOAudio21 options: Audio, Camera Values, Clothing, Color Grading, Composition, Environment, +15
    nameCOMBO_prompt_prefix_538 options: 24mm Dynamic, 35mm Natural, 50mm Portrait, 85mm Compression, _prompt_prefix_, _prompt_prefix_, +532
    selected_promptsSTRING[]Internal: JSON list of selected prompts
    use_prompt_inputBOOLEANfalseToggle to use connected prompt input instead of internal text
    textSTRINGEnter prompt fragment text directly
    promptoptSTRINGConnect a prompt input to pass through

    Outputs (1)

    NameTypeDescription
    promptSTRING