Workflow regression fixtures
Pinned ComfyUI workflow JSONs that exercise Koolook nodes. Used by the
pre-flight script (TBD — see tools/preflight_release.py) to verify
that every Koolook node ID referenced in any of these workflows still
exists in the current NODE_CLASS_MAPPINGS (or has a back-compat alias).
The pre-flight test only checks Koolook-pack node IDs. Other-pack node IDs (DepthAnything, rgthree, etc.) are silently ignored — those packs may or may not be installed on a given machine, and tracking their stability isn't our job.
How to add a new fixture
- In ComfyUI, build a workflow that exercises one or more Koolook nodes.
- Click Save to export the workflow JSON.
- Name the file descriptively:
<feature>-<short-tag>-v<NN>.json(e.g.vae-roundtrip-srgb-v01.json). - Drop it in this folder.
- Add a one-line entry to the inventory table below.
- Sanity-check before committing:
- No Windows-style absolute paths (
C:\…,D:\…). - No huge base64 blobs (embedded preview thumbnails) — strip them in ComfyUI's save dialog if present.
- No tokens / credentials / personal info in any node parameter.
- File size under ~50 KB ideally; certainly under 500 KB.
- No Windows-style absolute paths (
The pre-flight script picks the file up automatically — no need to register it anywhere else.
Fixture inventory
| File | Koolook nodes referenced | Notes |
|---|---|---|
Depth-Anything3-v01.json |
EasyAIPipeline |
Depth-Anything v3 workflow with Koolook pipeline node + EXR I/O |
Hires-FIX-wanT2V-v01.json |
EasyAIPipeline |
Hires-fix variant for Wan T2V workflows |
What the pre-flight script does (for reference)
For each *.json in this folder:
- Parse the JSON.
- Walk the
nodesarray (ComfyUI canvas format) — for each node, read itstypefield. - Filter: keep only types that look like Koolook node IDs (heuristics: starts with
Easy,Koolook, contains_koolook_, etc. — full pattern lives in the script). - For each Koolook ID, verify it appears in the current
NODE_CLASS_MAPPINGS(computed by importing the package). - Fail the pre-flight if any referenced ID is missing — that's a breaking change to a saved workflow that needs either a back-compat alias or an explicit major version bump.
If the JSON is in API format (different shape, often produced by ComfyUI API export), the script also handles that: walk the top-level dict where each key is a node instance and each value has class_type.