Repository navigation
Test every preset against ComfyUI 0.44, and stop Health hiding working presets - #170
Merged
Merged
Conversation
Beta gate G1 (roadmap U2). Every preset had only been checked against ComfyUI 0.37.0; the newest ComfyUI is 0.44.0, and node or input renames were found only when an artist's Workflow Health went red. npm run object-info records tests/fixtures/comfyui-object-info.json from a live ComfyUI: only the 80 node classes OpenLayer uses, each input's type, fixed choices such as samplers (never model file lists, which differ per machine) and the names nested inputs allow (ComfyUI's dynamic combo and autogrow inputs, written "parent.child" in a workflow). npm run object-info -- --check diffs a live ComfyUI against it without writing, and fails only on something a preset uses. objectInfoSnapshot.test.ts checks every node, input, nested input and fixed choice in all 39 bundled workflows, and every requiredNodes entry, against the snapshot. Recorded from ComfyUI 0.44.0: everything matches. Removing KSampler.denoise and the "euler" choice from the snapshot makes it name every preset that uses them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run against ComfyUI 0.44, Workflow Health marked 13 working presets "Missing ComfyUI node": every crop-and-stitch Inpaint preset (InpaintCropImproved's mask), both Remove object presets (LaMaInpaint's lama_model), Select by Text (SAM3_Detect's conditioning), the Klein and Qwen edit presets (ReferenceLatent's latent and others), Layer Maps, Camera Angle, Unflatten and Multi-Reference. Each input it named is there; ComfyUI lists it as optional, and the node list Health and Setup read kept only required inputs. Generate itself was never affected: validatePresetSetup already reads both. getWorkflowNodeAvailability, which Health and Setup use, now records every declared input. The custom workflow check keeps required-only, because it asks the other question: whether a pasted graph supplies every input ComfyUI requires. On the test machine Health now reads 28 ready, 10 experimental and one model in the wrong folder, instead of 21, 4 and 14. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
Beta gate G1: runs on a current ComfyUI. Every preset had only been checked against ComfyUI 0.37.0. Your shared ComfyUI is now 0.44.0. The PR has two commits, each revertable on its own.
1. A recorded
object_infoand a test against it (roadmap U2)npm run object-info(scripts/object-info-snapshot.mjs) recordstests/fixtures/comfyui-object-info.jsonfrom a live ComfyUI. It keeps only the 80 node classes OpenLayer uses, taken from the bundled workflows, the registry'srequiredNodes, and the class types the code builds itself. For each input it records:parent.childin a workflow, for exampleresize_type.multiplierandimages.image_1.npm run object-info -- --checkdiffs a live ComfyUI against the recording without writing anything. It fails only on something a preset uses, and counts unused removed choices as harmless. It makes two read-only GETs:/object_infoand/system_stats.tests/comfy/objectInfoSnapshot.test.tschecks every node, input, nested input and fixed choice in all 39 bundled workflows, plus everyrequiredNodesentry, against the snapshot.Result on ComfyUI 0.44.0: everything matches. No node or input that OpenLayer uses was renamed or removed between 0.37 and 0.44.
Proof the test catches drift: I removed
KSampler.denoiseand theeulerchoice from a copy of the snapshot. Three tests then failed and named every affected preset. Restored, it passes 5 of 5.2. A real bug the 0.44 run found: Workflow Health hid working presets
Running Check Workflow Health in Photoshop against 0.44 showed 14 "Missing setup". Thirteen of them were false, and every input those cards named is there:
InpaintCropImproved.mask)LaMaInpaint.lama_model)SAM3_Detect.conditioning)ReferenceLatent.latentand others)resolutionand others)Cause: ComfyUI lists those inputs as optional, and the node list Health and Setup read kept only required inputs. Generate was never affected, because
validatePresetSetupalready reads both.Fix:
getWorkflowNodeAvailability, used by Health and Setup, now records every declared input. The custom workflow check keeps required-only on purpose, because it asks a different question: whether a pasted graph supplies every input ComfyUI requires. The type and both methods document the difference.Result in Photoshop: "38 of 39 workflow presets are available" (28 Ready, 10 Experimental, 1 Missing setup), down from 21 / 4 / 14. The one left is real:
flux1-dev-fp8.safetensorssits indiffusion_models/andtext_encoders/on your machine, but the preset readscheckpoints/. Health says so.Other changes
docs/beta-gate.md: G1 marked done, with these results.CLAUDE.md: the newnpm run object-infocommand is added to the command list.--checkagainst your fresh Comfy Desktop 0.38.1 (CPU, 8189): it lists only the custom node packs that instance doesn't have installed (controlnet_aux, Florence2, IPAdapter, inpaint-cropandstitch, art-venture, GGUF and others). No core node OpenLayer uses is missing there either.Verified
tests/comfy/nodeAvailability.test.tsfails 1 of 3 on the oldcomfyClient.tsand passes 3 of 3 with the fix.Checked in Photoshop 2025 by Claude, after a plugin reload, against 8188 (0.44.0): Check Workflow Health read 28 / 10 / 1 / 0 with the summary "38 of 39 workflow presets are available".
Could NOT be verified
What Mehran should check in Photoshop
Smoke checklist blocks (
docs/uxp-smoke-checklist.md):Block 0 (the panel starts)
1. Settings › Check Workflow Health against your 0.44 on 8188. See: 28 Ready, 10 Experimental, 1 Missing setup (Flux1-dev fp8, wrong folder).
2. Setup screen: the Inpaint, Select by Text and Remove object presets no longer show a missing node.
3. Optional: in a terminal,
npm run object-info -- --checkprints "Nothing OpenLayer uses is missing."🤖 Generated with Claude Code