Practical guide
Compare two saved ComfyUI graphs without rounding seeds or matching by guesswork
Compare two documents in the same saved representation. The result identifies changed stored values under explicit ID and ordering rules; it does not predict a rendered image or establish that two different node IDs mean the same thing.
18 October 2026 · Check AI Free
Start with one defined edit pair
Download diff-before.json and diff-after.json, or use Try synthetic workflow pair in the comparer. Both are self-authored API prompts. The before file has KSampler node 1, fictional ProjectInventedNode 2 and one model connection. The after file reorders object keys, changes four stored input values and adds PreviewImage node 3.
The comparison aligns nodes using typed saved IDs and connections using their stored identity. Object key order and node/link list order do not count as changes. Other arrays keep their order, and numeric tokens retain their exact spelling; an equivalent-looking numeric rewrite can therefore be reported. A number ID and the same text as a string ID remain distinct.
- Download the before JSON — Two self-authored API nodes, one conventional connection and a greater-than-53-bit seed. Unknown node fields are intentional.
- Download the changed JSON — Changes seed, steps, a connection slot and an unknown custom value, and adds PreviewImage. All content is fictional; no generation is performed.
- RFC 8259: JSON objects and numeric interoperability — Primary JSON syntax reference. This implementation retains numeric tokens rather than rounding large seeds through JavaScript Number; the comparison rules below describe this site's behavior.
Locate the exact changes and download them
Step 1
Read the actual pair
Open Compare two saved graphs and click Try synthetic workflow pair. For your own files, choose Before JSON file and After JSON file, then click Compare JSON. Inputs must use the same supported shape: 0.4 with 0.4, 1.0 with 1.0, or API prompt with API prompt.
Step 2
Inspect node 1
With Browse set to Nodes, find string:"1". Its changes are /inputs/seed from 18446744073709551615 to 18446744073709551614, /inputs/steps from 20 to 24, and /inputs/model/1 from 0 to 1. Both seeds exceed JavaScript's safe integer range and remain exact in the displayed field values and full report.
Step 3
Inspect the unknown node and connection separately
Node 2 changes /inputs/custom/value from 1 to 2 even though its class is outside the catalog. Node 3 is added. Switch Browse to Connections to see the existing model reference's output slot change from 0 to 1. The connection is also stored inside node 1, so the node and connection views describe overlapping saved evidence rather than two independent edits.
Step 4
Save the complete difference
Expect two changed nodes, one added node, no removed nodes and one changed connection. Expand Difference JSON preview and click Download difference JSON. The full comfyui-workflow-diff.json includes raw before/after field values; inspect prompts, paths and custom fields before sharing it.
Test the two controls that change the interpretation
| Before / after | Expected result | What it establishes |
|---|---|---|
| diff-before.json / key-reordered.json | identical; 2 unchanged nodes and 1 unchanged connection | The defined object-key and stored-list ordering rules do not create a value change. |
| diff-before.json / renumbered.json | 2 removed and 2 added nodes; 1 removed and 1 added connection | Different saved IDs are not automatically matched by appearance or inferred purpose. |
| Try identical pair | No differences under the stated rules | This is a stored-data comparison, not runtime or visual equivalence. |
| Try empty pair | Supported empty graphs; no node or connection inventory | Workflow-level fields still have a separate comparison result. |
- Download the key-reordered control — Same exact values as the before file, with object member order changed.
- Download the renumbered control — Same intended exercise values under sampler-A/custom-B IDs and an updated reference; no semantic matching is attempted.
Stop when identities or input shapes are ambiguous
Try malformed JSON to see a syntax failure. Duplicate JSON keys, duplicate typed node/link IDs, unsupported entries or mixed UI/API representations stop comparison rather than producing a guessed partial pairing. Return to the static checker or ask for intact exports when these occur.
Limits include 5 MiB per JSON, 1000 nodes, 10000 links and 10000 changed fields. The full output may contain sensitive original values; display shortening does not mean the download has been shortened or sanitized. A seed change proves that stored text changed, not that an image was generated or that its appearance must differ.
- Investigate static structure errors — Correct identity and reference problems before comparing the exports again.
Sources and reproducible inputs
- Download the before JSON — Two self-authored API nodes, one conventional connection and a greater-than-53-bit seed. Unknown node fields are intentional.
- Download the changed JSON — Changes seed, steps, a connection slot and an unknown custom value, and adds PreviewImage. All content is fictional; no generation is performed.
- 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.
- RFC 8259: JSON objects and numeric interoperability — Primary JSON syntax reference. This implementation retains numeric tokens rather than rounding large seeds through JavaScript Number; the comparison rules below describe this site's behavior.
Continue with your file
- Identify the representation first — This comparer does not convert UI widgets into API inputs.
- Share a separate support summary — The raw difference report is not automatically private.