WebuiMonacoPromptFind
Search every prompt in your ComfyUI workflow at once
You know the moment. Forty nodes deep, you typed school uniform into six different prompt boxes - and now you want to see every one of them, in place, before you decide whether to change anything. Clicking through CLIPTextEncode nodes one by one is how you normally do it. WebuiMonacoPromptFind is the Ctrl+Shift+F your whole workflow never had.
It comes from the WebUI Monaco Prompt pack by Taremin, the extension that swaps ComfyUI's cramped little prompt textareas for the Monaco editor - the same editor VSCode is built on. Find is the pack's graph-wide search tool, and it's a strange thing at first glance: a node with no inputs, no outputs, and no wires. Drop it on the canvas and you get a search box with a results table instead. That's the whole point. It never runs during generation, it doesn't feed anything into the sampler, and it has nothing to do with your image. It's a workflow-editing tool, like the search in your text editor but scoped to every prompt in the graph.
How it works
Here's the honest mechanic, because it explains a lot of the pack's behavior. The Python class WebuiMonacoPromptFind is an empty shell - INPUT_TYPES returns nothing, process returns nothing. The real work is frontend: the pack ships a prebuilt bundle (comfy/main.bundle.js) that hijacks the node on creation and replaces it with a live search widget.
Type something into the Find box and hit Enter, and it runs Monaco's findMatches across every prompt editor the pack manages - not just plain CLIPTextEncode boxes, but every tab and file inside its WebuiMonacoPromptMultiText nodes too. Matches get highlighted inline in each editor, and a table lists them with the node's title, the file path if it's a MultiText tab, and the exact line and column. Click a row and ComfyUI pans the canvas to that node, focuses its editor, and jumps to the match. Regex works, and matching is case-insensitive by default.
The controls that matter
- Find - the text to search for.
- Case-sensitive and Whole word toggles - for when a tag shows up inside another tag.
- Regex toggle - search like
(masterpiece|best quality)and see every hit in one table. - The results table itself - click a row to jump to that match.
That's it. No hidden parameters, nothing to wire up.
Installing it
This is the whole pack, not just the node - you can't get Find without the editor.
cd ComfyUI/custom_nodes
git clone https://github.com/Taremin/webui-monaco-prompt
Restart ComfyUI, then look in the WebuiMonacoPrompt category. Or use ComfyUI Manager (search "webui-monaco-prompt") and skip the terminal. There are no Python dependencies, no model downloads, and no build step - the frontend ships prebuilt, with the Danbooru and quality-tag CSVs bundled in. One caveat from the README: ComfyUI support is labeled Experimental, and the author is a solo maintainer whose main audience is still the A1111 side. If a feature is missing, file an issue; don't hold your breath for a roadmap.
Troubleshooting
The first thing people hit: Find only searches editors the pack actually replaced. The "Replace Textarea" setting (WebuiMonacoPrompt.ReplaceTextarea) defaults to on, which is what gives you Monaco everywhere. Turn it off and the search has nothing to look in. If your results table stays empty, check that setting first.
Second, this is a frontend-only node, and frontend-only nodes are the first casualties of ComfyUI's own UI updates. The widget hooks it leans on - addDOMWidget, canvas panning, draw-overlay callbacks - are classic LiteGraph stuff, and the same dependency is what broke rgthree's DOM-widget nodes during the Nodes 2.0 rollout. If a ComfyUI update leaves the Find node rendering as an empty box, that's the known failure mode, not a misconfiguration.
Otherwise it just works, and it's one of those nodes you forget you have until the day you need to find a tag you've used in eleven places. Then it pays for itself in one search.
Inputs (0)
No inputs
Outputs (0)
No outputs