π OVERTLI Prompt Library
A prompt library that saves itself to disk, run from the canvas
- prompt_text
You know how prompt management usually works in ComfyUI? A text file you keep open in another window, or a browser tab full of saved prompts you copy-paste from. GZ_PromptLibraryNode is the Overtli Studio Suite's answer to that: a small CRUD store that lives on your canvas, saves prompts to disk, and hands them back as a STRING you can wire straight into any text input - including the pack's own enhancer nodes.
What it does
It's an action node. The action dropdown picks the operation:
save_prompt- storesprompt_textunder aprompt_name, optionally with acategory,tags_csvandnotes.load_prompt- pulls a saved entry (choose it fromsaved_prompt) and emits it.view_library- lists what you've got, useful for eyeballing before you load.delete_prompt- removes an entry.refresh_cache- re-reads the JSON file, which matters if you edit it by hand or other workflows have written to it.
Storage is a JSON file at ComfyUI/user/overtli_prompt_library.json in your ComfyUI user directory - plain, portable, and editable outside the node if you ever need to bulk-import. It's the same shape as the settings file the pack's GZ_ProviderSettings node writes, just for prompts instead of keys.
Inputs worth knowing
prompt_textandprompt_name- what you're saving and what to call it.prompt_namedoubles as the search term on loads.saved_prompt- the dropdown of everything in the library. It starts as a single "(none)" option and fills in after a save or refresh, so if the library looks empty, hitrefresh_cacheor run any action once.category,tags_csv,notes- metadata for organizing.category_pickandcategory_filterlet you filter by category, andsearch_queryfilters by text.sort_mode- order results by most recent, name, most used, category, etc. Loads incrementincrement_use_on_load(on by default), somost_usedsorting actually learns what you reach for.allow_overwrite- on by default, meaning saving the sameprompt_nametwice overwrites instead of erroring. Turn it off if you want save collisions to fail loudly.max_items- caps list output (default 100).refresh_before_action- re-reads the file before each action, default on; leave it unless you're chasing a performance issue on a huge library.
Output and wiring
One prompt_text STRING output, holding whatever the action produced - the loaded prompt, the saved prompt's text, or the library listing. Chain it into an enhancer's prompt input or straight into a CLIP Text Encode. Because it's a plain string, it plays fine with any node that takes text, not just Overtli ones.
Install and gotchas
Standard pack install: search "Overtli" in ComfyUI Manager, or clone into custom_nodes and pip install -r requirements.txt, then restart. Two habits to build early. First, the dropdown of saved_prompt doesn't watch the file - after editing the JSON by hand or saving from another workflow, run refresh_cache (or set refresh_before_action on) before you expect to see the new entries. Second, this stores text in plain JSON in your user directory; it's local and free, but it's not a team server, so if two people edit the same file you'll get last-writer-wins. For a single machine it's exactly the right size for the job.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| action | COMBO | save_prompt | 5 options: save_prompt, load_prompt, view_library, delete_prompt, refresh_cache |
| prompt_text | STRING | β | |
| prompt_nameopt | STRING | β | |
| saved_promptopt | COMBO | (none) | 1 options: (none) |
| categoryopt | STRING | β | |
| category_pickopt | COMBO | All | 2 options: All, General |
| tags_csvopt | STRING | β | |
| notesopt | STRING | β | |
| sort_modeopt | COMBO | most_recent | 6 options: most_recent, name_az, name_za, oldest_first, most_used, category_az |
| category_filteropt | COMBO | All | 2 options: All, General |
| search_queryopt | STRING | β | |
| max_itemsopt | INT | 1001β1000 | β |
| allow_overwriteopt | BOOLEAN | true | β |
| increment_use_on_loadopt | BOOLEAN | true | β |
| refresh_before_actionopt | BOOLEAN | true | β |
| show_library_snapshotopt | BOOLEAN | true | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt_text | STRING | β |