Practical guide
Find and correct a known ComfyUI saved-structure error
Use a deliberately broken file so the correction is checkable. Fix the stored identity and endpoint problems, then confirm that those diagnostic codes disappear without running the graph.
18 October 2026 · Check AI Free
Use the format reference the checker actually implements
The static checker implements a subset of the official UI workflow 0.4 and 1.0 schemas fixed at docs revision 7ca6a40804ef. Required saved-node fields, duplicate typed IDs, conventional link endpoints and selected port consistency checks are included. Full schema compliance, socket data types, custom-node definitions, installed resources and execution are outside this subset.
API prompts use different class_type/inputs and reference checks. The official API envelope leaves prompt internals open; the site's conventional reference checks are additional documented behavior, not a claim that the UI schema validates an API graph.
- Official workflow 0.4 schema at fixed docs revision 7ca6a40804ef — Primary reference for saved node fields and six-element link tuples. The local validator implements a stated subset rather than full JSON Schema conformance.
- Official workflow 1.0 schema at the same fixed docs revision — A separate versioned format with state, saved nodes and object-form links. The local subset reports named-slot and subgraph coverage limits instead of certifying runtime compatibility.
- Official API envelope schema at fixed docs revision — The prompt envelope leaves node internals open. This site's conventional API reference checks are documented separately from the UI schema subset.
Reproduce and repair the two known errors
Step 1
Load the broken saved workflow
Open Check saved graph structure and click Try broken workflow, or choose saved-broken.json. Expect workflow-0.4, two node entries, one connection and two errors. Diagnostic level Errors shows duplicate_node_id and dangling_link.
Step 2
Select the duplicate ID in the source
Click Select source location on duplicate_node_id. It selects the second node's ID in Or paste saved JSON. The two full KSampler objects both use integer ID 1; the saved connection [2,99,0,1,0,"MODEL"] also names nonexistent origin node 99.
Step 3
Remove the duplicate exercise entry
In the source textarea, remove the second complete object from nodes, including its separating comma. Leave one original KSampler object with its geometry, flags, order, mode, properties and exact seed token intact. Click Check structure. The duplicate-node error should disappear while the dangling-link error remains.
Step 4
Correct the known unused exercise connection
This authored exercise defines no intended connection. Replace the entire links value with [] and set last_link_id to 0. Click Check structure again. Expect workflow-0.4 · checked, one node, zero connections, zero errors, warnings or unsupported checks. The downloadable saved-valid.json is the control for this explicit repair; do not delete arbitrary real connections just to silence diagnostics.
Step 5
Keep the diagnostic record
Click Download diagnostics JSON for comfyui-static-diagnostics.json. The report retains status, counts, fixed messages and source offsets while omitting original source, node IDs and raw field paths. It is a diagnostic document, not a repaired workflow export. Preserve your corrected text separately if needed.
- Download the known broken saved workflow — Duplicate integer node ID 1 and one connection from absent node 99; exactly two implemented errors.
- Download the saved-workflow control — One full saved KSampler node, no connections and an exact 18446744073709551615 numeric seed token. Passing the implemented structure checks is not a runnable-generation claim.
Check an API reference under API rules
Download validation-api.json or click Try API prompt. The two-node prompt is checked with one conventional connection and no diagnostics. In the sampler's inputs, change model from ["source",0] to ["absent",0] and click Check structure. Expect dangling_api_reference at the missing source ID. Restore "source" and recheck to remove that error.
Do not substitute a numeric node ID where the API reference expects a string, or treat every arbitrary custom array as a known connection. The checker reports unsupported array semantics when they do not fit its conventional form. It cannot infer custom input definitions or a correct replacement model from their names.
- Download the API reference control — Separate envelope prompt with CheckpointLoaderSimple source and KSampler sampler; exact large seed remains a numeric token.
- Official API prompt example at fixed core revision — Reference for named class_type/inputs and stored [node ID, output slot] connections. Only the literal example JSON was inspected; the Python and network code were not run.
Keep warning, unsupported and empty outcomes visible
An out-of-catalog node produces custom_definition_unchecked, not a proven missing plugin. Named-slot correspondence is reported as unchecked; subgraphs and unknown workflow versions are outside this subset. Try empty workflow returns workflow-1.0 · empty with no nodes; Try malformed JSON records json_syntax rather than an empty graph.
The checker stops at 5 MiB, 1000 nodes, 10000 links, depth 64, 150000 values or 5000 diagnostics. Select source location counts UTF-16 code units, matching the textarea. A checked result means only that the implemented static checks found no diagnostics; it does not establish that the graph can run or that importing it elsewhere is safe.
Sources and reproducible inputs
- Official workflow 0.4 schema at fixed docs revision 7ca6a40804ef — Primary reference for saved node fields and six-element link tuples. The local validator implements a stated subset rather than full JSON Schema conformance.
- Official workflow 1.0 schema at the same fixed docs revision — A separate versioned format with state, saved nodes and object-form links. The local subset reports named-slot and subgraph coverage limits instead of certifying runtime compatibility.
- Official API envelope schema at fixed docs revision — The prompt envelope leaves node internals open. This site's conventional API reference checks are documented separately from the UI schema subset.
- Official API prompt example at fixed core revision — Reference for named class_type/inputs and stored [node ID, output slot] connections. Only the literal example JSON was inspected; the Python and network code were not run.
- Download the saved-workflow control — One full saved KSampler node, no connections and an exact 18446744073709551615 numeric seed token. Passing the implemented structure checks is not a runnable-generation claim.
Continue with your file
- Compare the original and corrected text — See the stored changes without executing either graph.
- Finish the broader pre-import checklist — Source, resources, node versions and privacy still need separate decisions.