Nodes/CMK Flow/CMK Summary
ComfyUI Node

CMK Summary

Turning CMK's diagnostic payloads into something you can actually read

By CMKFlow·Created 3 months ago·Updated 2 days ago· 6
CMK Summary
  • diagnostic
  • STRING
  • diagnostic

Every CMK module can emit a CMK_DIAGNOSTIC - a structured payload containing a title, a human summary, metadata, metrics, warnings and preview images. That's great plumbing and terrible ergonomics: a dictionary flowing down a wire is invisible. CMK Summary is the node that decodes one and puts the text where you can read it, as both a rendered panel and a real STRING you can wire onward.

It sits in CMK/Toolbox/Diagnostics, and it's part of the reason the pack's developer-facing side is bearable. CMK's architecture is explicit that diagnostics are supposed to carry the preview and the numbers for a module, rather than dumping everything into the console - this node is the consumer of that contract.

How it works

One input, one job. The node normalises the incoming payload, takes summary (falling back to details), and if neither exists it builds text out of the structured fields instead: metadata keys title-cased into a label block, then metrics, then a bulleted warnings list. Failing all of that you get the literal string "No summary available." rather than a crash.

It then renders that text into a PNG panel via the pack's preview renderer, saves it as a preview image (CMK_summary), and returns the text both as a UI element and as the output string. If the payload is malformed it doesn't throw - it catches, sets the text to Invalid diagnostic input: <reason> and titles the panel "CMK Summary". That defensiveness is deliberate: a diagnostics node that breaks your run is worse than no diagnostics node.

Inputs and outputs

  • diagnostic (CMK_DIAGNOSTIC, required) - wire this from any CMK node that exposes a diagnostic output. Most modules do: the ControlNet prepares, the video nodes, the sampler and boundary caches.
  • STRING (STRING) - the extracted text, with normalised newlines. This is the output people underestimate. Wire it into a Show Text node to keep a live readout on canvas, or into a string-concat if you're assembling a run report.
  • diagnostic - the same payload, passed through unchanged, so you can chain several summaries off one payload or keep the run going.

The node is also an OUTPUT_NODE, meaning ComfyUI will execute it as a terminal even if nothing consumes it - so you can park one at the end of a graph purely as a readout.

Worth knowing: CMK has companion nodes in the same family for aggregating diagnostics (CMK Diagnostic Concat takes up to 32 of them) and for turning previews into images. Summary is the text-only slice. The payload's own preview images are not re-rendered here.

Install

Manager → search CMK Flow → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/CMKFlow/cmk_nodes
python3 custom_nodes/cmk_nodes/scripts/install_cmk_requirements.py

Wait for CMK dependency check: OK, and restart ComfyUI after that, not before. No model files are involved for this node, so the resource checker has nothing to say about it - but it's worth running once anyway:

python3 custom_nodes/cmk_nodes/scripts/check_cmk_resources.py --models-root "/path/to/shared/models"

Common issues

  • "No summary available." The payload was valid but carried neither summary nor details and had no metadata to fall back on. Some nodes only fill the panel on the path that actually ran - a bypassed or disabled module will often produce an empty-ish payload. Check whether the upstream module was enabled.
  • "Invalid diagnostic input: …" You fed it something that isn't a CMK diagnostic, usually by rewiring a LOG output where a diagnostic was expected. CMK's log pipe (CMK_LOG_PIPE) and diagnostic are different types on purpose. LOG is documentary; diagnostic is structured state.
  • The panel appears but the graph feels slow. Not this node's fault, but CMK's runtime is chatty in the console by design - you'll see cache HIT/MISS lines and timing blocks. That's the point of the diagnostic layer, not a leak.
  • Pack-wide: enable the ComfyUI setting Vue Nodes / Nodes 2.0. CMK warns at startup if it's off, and without it the dynamic nodes fall back to legacy LiteGraph rendering, which is where the "why does my CMK node look broken" reports come from.
CategoryCMK/Toolbox/Diagnostics

Inputs (1)

NameTypeDefaultDescription
diagnosticCMK_DIAGNOSTIC—

Outputs (2)

NameTypeDescription
STRINGSTRING—
diagnosticCMK_DIAGNOSTIC—