File size: 2,557 Bytes
0c85e62 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | # 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
1. In ComfyUI, build a workflow that exercises one or more Koolook nodes.
2. Click **Save** to export the workflow JSON.
3. Name the file descriptively: `<feature>-<short-tag>-v<NN>.json`
(e.g. `vae-roundtrip-srgb-v01.json`).
4. Drop it in this folder.
5. Add a one-line entry to the inventory table below.
6. **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.
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`](Depth-Anything3-v01.json) | `EasyAIPipeline` | Depth-Anything v3 workflow with Koolook pipeline node + EXR I/O |
| [`Hires-FIX-wanT2V-v01.json`](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:
1. Parse the JSON.
2. Walk the `nodes` array (ComfyUI canvas format) — for each node, read its `type` field.
3. Filter: keep only types that look like Koolook node IDs (heuristics: starts with `Easy`, `Koolook`, contains `_koolook_`, etc. — full pattern lives in the script).
4. For each Koolook ID, verify it appears in the current `NODE_CLASS_MAPPINGS` (computed by importing the package).
5. **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`.
|