URN Tabbed Markdown
Documentation that doesn't eat your canvas
Here's a pattern everyone who builds anything non-trivial in ComfyUI runs into: the workflow works, you come back to it in three weeks, and you have no idea why the trim node is set to 42 seconds. So you add a Markdown Note. Then another one. Then six, floating around the canvas, and now the graph you were trying to document is buried under notes about the graph.
URN Tabbed Markdown is the obvious fix: one note node with tabs, up to 40 of them, stored inside the workflow.
How it works
There's no processing here at all. The node is display only - no inputs, no outputs, it never executes, and it can't break a run. Everything you see is drawn by a small frontend extension: a tab strip across the top, a rendered Markdown body below.
State lives in the workflow JSON. Tab names, which tab is active, and the Markdown text for every tab are serialised with the graph and restored on load - the node deliberately excludes that state from the prompt that gets sent to the backend for execution, so it documents without participating.
Rendering hands off to ComfyUI's own Markdown service when the frontend exposes one, which is why the formatting matches a core Markdown Note: headings, bold/italic, strikethrough, nested and numbered lists, blockquotes, inline and fenced code, horizontal rules, links and tables. A built-in fallback renderer covers older frontends. Raw HTML is escaped on purpose, so a shared workflow can't smuggle markup into your viewer.
Using it
There are no widgets to set, which is the whole appeal:
- Click
+to add a tab,-to remove the active one. At least one tab always stays. - Double-click a tab's name to rename it. Long names wrap onto extra rows rather than truncating.
- Double-click the note area to edit the active tab as raw Markdown.
- Press
Ctrl+Enter(Cmd+Enteron macOS) or click outside to go back to the rendered view.
Resize the node when you need more room; the dimensions are saved with the workflow.
Install
It's part of the URN Audio Nodes pack, and this node needs nothing except ComfyUI's frontend:
cd ComfyUI/custom_nodes
git clone https://github.com/Clivey1234/Comfyui_URN_AudioTools
Restart ComfyUI, then hard refresh the browser (Ctrl+F5) if you updated an existing install - the tab UI is a frontend file, and a stale cached copy is the usual reason a node's widgets look wrong. ComfyUI Manager works too (search Comfyui_URN_AudioTools).
Find it under URN Audio Tools as URN Tabbed Markdown. Yes, a Markdown note in an audio pack is a little odd - it's there because the pack itself ships twelve per-node readme files meant to be pasted next to their nodes.
Common issues
I updated the pack and the tabs went blank or the node looks broken. Hard refresh the browser. The node's state is fine; the JavaScript that draws it is coming from a cached copy. If it persists, restart ComfyUI as well.
My HTML table/embed/custom tag renders as literal text. Intentional. HTML is escaped for safer workflow sharing - stick to Markdown syntax.
A tab with my notes didn't come back after reload. Check you saved the workflow after editing. Editing marks the graph dirty immediately, and if serialisation happens mid-edit the live textarea contents are captured, but nothing is written to disk until you save. Browser-refresh-after-unsaved-changes is the one way to lose a tab's text.
Can I use it in a non-audio workflow? Yes. It has no dependencies on the rest of the pack - it's a general-purpose note node that happens to ship here.
Inputs (0)
No inputs
Outputs (0)
No outputs