🫳 MURMUR Picker
Press Tab, color your ComfyUI graph, and get back to work
- hex
Here's the honest thing about MurmurPicker: the registered node is a decoy. It exists so the pack shows up in your node list, but the actual product is a floating color picker that pops up when you hit Tab over the canvas. Select a node (or a group), press Tab, and you're tinting the graph with your other hand still on the mouse. No 80-node utility pack, no model downloads, no pip dependencies - one tiny package whose entire job is making a big workflow less miserable to read.
If you've ever loaded a shared workflow and spent ten minutes squinting at a wall of identical gray boxes, you're the target audience. ComfyUI's usual answer to that problem is installing more tooling - rgthree, WAS Node Suite, and friends - which works, but it's a heavy buy-in when all you want is color. MurMur makes the opposite trade: it does one thing and stops. That's exactly the niche the pack's author pitched when he shipped it to r/comfyui, and the "exact use node" reception suggests he wasn't the only one who wanted it.
How it actually works
The magic lives in JavaScript. MurMur registers as a front-end extension (WEB_DIRECTORY = "js"), so on startup it attaches a global keydown listener. Press Tab and it looks at the canvas selection - selected nodes or the active group - and raises a floating panel with an SV + hue canvas, a row of preset swatches, and an emoji strip.
Drag inside the color field and it live-writes color and bgcolor onto the selected nodes (or the group), then pokes the canvas to redraw immediately. The last-used color gets a quick-access swatch, the panel's position is remembered in localStorage, and a reset swatch deletes the color entirely so the node falls back to your theme default. Clicking an emoji prefixes the selected node titles - groups get colored but don't take emoji. Click anywhere outside the panel and it closes.
So why does a registered node exist at all? Because a pack with zero nodes is invisible, and the stub also hands you the one real input/output this package has.
The input and output
- hex (STRING, default
#4F86F7) - the only input. Drop in a color like#ff4fa3. - hex (STRING) - the only output. The same value, normalized: missing
#gets added, empty input falls back to the default.
That's the whole wiring. The node's pass_hex just sanitizes the string and returns it, and IS_CHANGED returns the hex so ComfyUI only re-runs it when the value actually changes. It's a utility node for feeding a color into anything that consumes one - it doesn't drive the picker. The hotkey does.
Installing it
Easiest path: ComfyUI Manager → search MurMur (the pack title is "🦄 MurMur"). Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/vladgohn/ComfyUI-MurMur
Then restart ComfyUI. That's the entire install - no requirements.txt, no model files, nothing to download, which puts it on the pleasant end of ComfyUI's usual install grind. The pack declares it needs ComfyUI 1.0+, which you almost certainly have.
Where people get burned
- Tab does nothing? You don't have a selection. The picker silently refuses to open when nothing's selected - highlight a node or a group first.
- Tab now belongs to MurMur. The extension intercepts Tab in the capture phase and swallows it, so another addon or browser shortcut that uses Tab can clash. It politely skips typing inside inputs and textareas, so your prompt fields are safe.
- Front-end extensions break with frontend rewrites. All the real work here is JS poking at canvas internals, and ComfyUI's frontend has been in flux - Nodes 2.0 famously broke several popular UI packs. If a future update makes the panel stop appearing, that's why; the Python node keeps working, the picker doesn't.
One last thing: the name isn't cat noises. MurMur is a demon from the Goetia Codex, straight from the author's own launch thread. For a tool whose only ambition is "select, Tab, color, continue," that's honestly a perfect name.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| hex | STRING | #4F86F7 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| hex | STRING | — |