Prompt Search List
Batch-generate from every prompt you've already saved
- prompts
- preview
- count
Your prompt library, as a batch job
The two text nodes build the library; this one spends it. Prompt Search List is the read-only half of the pack - it queries the same SQLite database and hands you a list of matching prompts so each one can be processed as a separate batch item. If you've been running everything through Prompt Manager or Prompt Manager Text, you've been silently collecting a searchable history, and this is the node that turns "all my portraits category prompts rated 4+" into an actual generation queue.
It's deliberately a search node, not an encoder, so you'll wire its output onward. The prompts output is a true list (declared OUTPUT_IS_LIST), which is ComfyUI's native batch-compatibility signal, so it plugs straight into batch nodes - the README's canonical example is String OutputList. From there, each matched prompt flows downstream as its own item. This is the node the rest of the pack exists to feed.
How it works
Every run, it calls the database search with your filters, using partial tag matching so anime finds prompts tagged in ways you didn't exactly type. It then does housekeeping that matters more than it looks:
skip_multipart(on by default) drops prompts containingClip_1/Clip_2-style markers - leftovers from old multi-CLIP workflows that would wreck a batch.- Newlines are collapsed, so downstream nodes that split on
\nsee each database row as exactly one prompt. - Prompts that are only
<lora:...>tags with no real text are filtered out.
The node is also set to always re-execute, so it reads the database fresh every time instead of caching - edits you make in the dashboard show up on the next run. One quirk to know: when nothing matches, the list output returns a single empty string rather than an empty list, because ComfyUI's list handling crashes on empty lists. Don't read that as a bug.
Inputs worth setting: text (substring match against prompt content), category, tags, min_rating (0–5), limit (1–1000, default 50), and skip_multipart. Note that min_rating only bites if you actually rate prompts - ratings are set in the web dashboard, not on the nodes.
Outputs: prompts (STRING list), preview (a single numbered, truncated text block - feed it to a display node for a readable result summary), and count (INT - how many matched).
Installing it
Same pack as the rest - one install gives you all three nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/ComfyAssets/ComfyUI_PromptManager
cd ComfyUI_PromptManager
pip install -r requirements.txt
or ComfyUI Manager → "Prompt Manager", then restart. It's read-only, so it never writes to the database - safe to leave in any workflow without polluting your library.
The trap
Empty results. This node searches only what the pack has saved - if you've never run the text nodes, scanned images, or imported LoRA data from the dashboard, count will be 0 no matter what you type. Populate the library first, and check you're searching the same database (default prompts.db in the extension folder) if you've moved it via config.json.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| textopt | STRING | Search text to match against prompt content | |
| categoryopt | STRING | Filter by specific category | |
| tagsopt | STRING | Comma-separated list of tags to filter by (partial match) | |
| min_ratingopt | INT | 00–5 | Minimum rating (0-5) to include in results |
| limitopt | INT | 501–1000 | Maximum number of results to return |
| skip_multipartopt | BOOLEAN | true | Skip prompts containing Clip_1/Clip_2/etc. multi-part markers |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| prompts | STRING | List of prompt texts matching the search criteria. |
| preview | STRING | Preview of all found prompts (for display). |
| count | INT | Number of prompts found. |