Diagram Viewer URL
The node that doesn't render anything — it hands you a URL to open your diagram in a zoomable viewer
- viewer_url
- viewer_url_iframe
Diagram Viewer URL is the pack's quiet utility node, and it does exactly what the name says: it builds a URL. No rendering, no API calls, no models - you feed it a kroki_url and it hands back viewer links. It exists because UML Render's kroki_url output is a compact deflate-encoded GET URL that a browser can open directly, but raw Kroki URLs render as a bare page with no zoom, no save button, no nothing. This node wraps that URL in the pack's built-in viewer.html page, which gives you fit-to-view, wheel zoom, pan, a Save button, and a copy-link action.
It's a small job, and the node is honest about being a thin utility - probably 300 words of explanation is all it deserves. But it has two outputs that each serve a different purpose, and confusing them is the only real way to misuse it.
The two outputs
viewer_url- the full viewer page. Open it in a new tab or right-click the node → Open in viewer. This is your "look at the diagram properly" link.viewer_url_iframe- the same viewer in embed mode (?embed=1), a stripped-down version with just fit-to-view and zoom, no save or crop chrome. This is the one you hand to an iframe - e.g. a ComfyUI_Viewer node or anything that displays a URL in a frame.
The nicest touch: when kroku_url is connected, the node shows a live preview of the diagram right inside itself after you run. That turns it into a poor man's diagram inspector - you see what UML Render produced without a separate browser tab. Feed it a kroki_url from UML Render, and the wiring is one connection.
It's also more tolerant than you'd expect about what you feed it. _viewer_query sniffs the input: a raw SVG string gets base64'd into a data URL, a local file path from output/uml/ gets converted to ComfyUI's /view? endpoint, and a web URL gets its format guessed from the path. So kroki_url isn't the only thing it accepts - content_for_viewer from UML Render works too. If you leave the input empty, it just returns the bare viewer paths.
When you'd actually use it
Honestly: when you want to look at what you generated, or when you're embedding diagrams into a custom dashboard. If you just want the image in your outputs, you can ignore this node entirely - UML Render's IMAGE output and saved files cover that. It earns its place in the pack's example workflows (uml_single_node.json, uml_mermaid.json, uml_plantuml.json) because those show the rendered diagram in the viewer as a nicer "result" than a silent save to disk.
Installing
It's one of the five nodes in antoinebou12/ComfyUI-UML:
comfy node install comfyui-uml
# or manually:
cd ComfyUI/custom_nodes && git clone https://github.com/antoinebou12/ComfyUI-UML
pip install -r requirements.txt
Restart ComfyUI, and it'll be under the UML category. No extra dependencies, no model files, nothing to configure - about the lowest-friction node in the whole pack. The only way to trip it up is to expect it to do more than build a URL.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| kroki_urlopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| viewer_url | STRING | — |
| viewer_url_iframe | STRING | — |