Skip to content

validation

Checks each workflow against the running server's own node definitions, in three tiers, without executing anything.

Needs api (provided by registration)
Default yes
Fails the run yes
Source orchestration/levels/validation.py, comfyui/validator.py

Where static_capture asks "does this render?", this asks "is this graph coherent against what the nodes actually declare?" -- and it answers from the live server, not from a stale copy of the schema.

The three tiers

Tier Asserts
Schema widget values match the allowed enums, types and ranges
Graph connections are valid and every referenced node exists
Introspection node definitions themselves are well-formed

Schema catches a workflow saved with a sampler name your node no longer offers, or an int outside a declared min/max. Graph catches links pointing at removed slots, or a node type absent from the registry. Introspection catches the pack's own definitions being malformed -- a RETURN_TYPES that is a bare string instead of a tuple, a FUNCTION naming a method that is not there.

That third tier is the one that finds bugs in your node rather than in your workflow, which is why it is worth running even when the workflows are known good.

The injected helper pack

Validation POSTs to a /validate endpoint that stock ComfyUI does not have. It comes from PozzettiAndrea/ComfyUI-validate-endpoint, cloned into every environment by install.

This is a supply-chain fact

A second pack, from a personal GitHub account, is installed alongside yours on every lane -- and the clone is unpinned (default branch, no ref). On attach lanes its install failure is swallowed, so validation can run against a missing helper. Disclosed in ADR-0009.

What it does not catch

Nothing executes. A graph that validates cleanly can still OOM, produce black images, or crash on the first node -- that is execution. Validation also cannot see anything decided at runtime: a node whose accepted values depend on files present on disk will validate against whatever the test machine happens to have.

Config

Key Effect
[test.workflows] cpu / cuda which workflows are validated on this backend

In the default set. It needs api, so listing it pulls in install and registration. A run with no workflows logs and returns without error.

It is one of the four terminal levels: list it in [test] levels instead of execution when a pack should be checked for coherence but never spend GPU time (ADR-0012).

See also