UI Note
A sticky note that survives the collapse
- note
You know the workflow state: everything works, so you collapse it into a SubGraph, and six months later you're staring at a black box wondering why the upscale pass is there at all. UI Note is the fix. It's a note card - rounded rectangle, background color, wrapped text - that you drop inside a subgraph and promote to the frontside, so your "swap this to SDXL before sharing" reminder rides on the collapsed node's face instead of being buried where nobody looks.
It's the most featureful of the four UI-Decorators nodes, and fittingly it's also the pack's most famous invisible node: it shows up in essentially no search traffic yet. As with the rest of the pack, it's pure decoration - no outputs, returns nothing, doesn't touch your generation. But a note you can actually see is one of those quality-of-life wins that makes big workflows survivable.
How it works
One required input, note, of a custom UI_NOTE widget type. All the drawing is frontend JS in js/simple_ui_decorators.js. The note text is a standard multiline text widget, and around it the JS adds controls to the node face: font_size (default 12), a bold toggle, and two color fields - text_color and bg_color - each with a "pick" button that opens a small HSV popup, or type hex directly.
The clever part is the sizing. The note measures its own text with measureText, word-wraps it to the node width, and then auto-resizes the node to fit - the height follows the content, so a two-line note renders as a compact card and a wall of text grows into a proper block. Background is a rounded rect with a 4px corner radius, drawn with the color you picked (default dark #222222 with light #aaaaaa text - the exact dark-theme defaults you'd expect). Promote the widget to the frontside and the whole card - text, colors, size - mirrors onto the collapsed node.
The one input that matters
note - the text itself, and it's multiline, so newlines are your friend. Two notes I keep coming back to: a version stamp at the top of a section ("v3 - FLUX, 28 steps") and a warning at a swap point ("inputs from external preset - check before queueing"). That's the whole trick: notes are only useful where they're visible, and this node makes the visible part the default.
Installing
Same drill as the rest of the pack: ComfyUI Manager → search "UI-Decorators", or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixelpainter/UI-Decorators
Restart ComfyUI. No pip requirements, no model files - it's frontend JavaScript only, so this install adds essentially nothing to your startup time.
Common issues
- Text overflowing the card? The note auto-sizes, but it measures against the node's current width. If a card looks cramped, drag the node wider and it re-wraps on the next draw.
- Note not showing on the frontside? You have to promote or link the widget to the outer SubGraph node first - inside the subgraph it renders, but the whole point is the face of the collapsed node.
- Odd rendering after an update? This is a canvas-drawn custom widget, the exact category ComfyUI's Nodes 2.0 beta frontend is known to mangle. If the card renders wrong, flip back to the legacy canvas - most custom-node users are running that for precisely this reason.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| note | UI_NOTE | — |
Outputs (0)
No outputs