Workflow Documentation Panel
The Panel That Holds the Guide — the Display Half of the Workflow Documentation Pack
The Workflow Documentation Panel is the output canvas for this pack. Its job is entirely visual: it draws a large, scrollable summary of your workflow - purpose, models, sampler settings, flow, key nodes - directly on the ComfyUI graph, rendered as styled text cards. By itself it does nothing, which surprises people, so let's get that straight first.
This is not a node you wire into your pipeline. It has no inputs, no outputs, and its Python execute method returns an empty tuple. It's a display-only container, a cousin of the note nodes and reroutes that exist purely so a workflow stays readable to humans. And critically, you almost never add it manually - the pack's other node (Workflow Guide Generator, in the same pack) creates and fills it automatically when you click Generate Artist Guide.
How it works
The panel is essentially a frontend illusion. Its JavaScript extension hooks the node's onDrawForeground, reads a JSON blob stored in properties.documentation, and hand-draws each section onto the canvas - wrapping text, laying out cards for models, LoRAs, ControlNets, settings, and a stage-by-stage flow diagram. When the guide generator node does its thing, it serializes your whole graph, POSTs it to a local /workflow-guide/generate endpoint on ComfyUI's own server, and a backend engine (nine sub-analyzers doing keyword and node-type heuristics over the workflow JSON) returns the documentation. The frontend then spawns a fresh panel node, renames it to "🎨 Artist Workflow Guide", sizes it to roughly 1100×2200, and dumps the JSON into its properties. Existing panels get deleted first, so you never end up with two guides fighting over the canvas.
None of this touches a network. No uploads, no API keys, no cloud processing - everything runs inside your local ComfyUI. And nothing in your workflow is modified; the pack only reads.
What you'll see in the panel
Once populated, the panel reads like a mini user manual for the workflow:
- Purpose & overview - what the workflow type is (Flux, SDXL, ControlNet, video, upscaling…) and a plain-language summary.
- Models used - main checkpoint or UNet, text encoder, VAE, plus LoRAs, ControlNets and upscalers it could identify from the loader nodes.
- Main settings - sampler, scheduler, steps, CFG, resolution, seed, denoise.
- Workflow flow - the graph distilled into stages:
Load Models → Process Prompt → Generate Image → Save Result. - Key nodes - important nodes with artist-friendly explanations, and performance tips.
One honest caveat: the panel is only as smart as the heuristics that filled it. It recognizes standard loaders and KSampler-family widgets; custom node types get generic descriptions, and anything it can't map shows up as "Not Detected". Treat it as a helpful orientation layer, then verify the actual values by clicking the real nodes.
Installing and troubleshooting
The panel ships with the whole pack, so install it the same way:
cd ComfyUI/custom_nodes
git clone https://github.com/GowthamGENAIVFX/ComfyUI-Workflow-Guide-Generator
Then restart ComfyUI. ComfyUI Manager will also find it if you search "Workflow Guide Generator". There are no extra Python dependencies - requirements.txt is deliberately empty - and no model downloads.
Two gotchas worth knowing. First, the generated panel is dropped about 1150px to the left of your workflow's leftmost node; if that lands it partly off-screen, just grab and drag it. Second, if you add the panel manually and see a blank box, that's expected - without the guide generator's button click it has no documentation to render. And if a freshly installed pack never shows a panel at all, hard-refresh with CTRL+F5 to clear the cached frontend.
This is an early project - single commit, essentially no community footprint as of writing - so set expectations accordingly. As a way to make an unfamiliar shared workflow legible at a glance, it works. As a tool for pixel-touching generation, it isn't one, and it was never meant to be.
Inputs (0)
No inputs
Outputs (0)
No outputs