Data Plane vs Control Plane — what flows through the graph and what controls it
A professional ComfyUI graph is easier to read when you separate two layers: the data plane carries images, latent data, masks, models and conditioning; the control plane defines modes, selectors, parameters, enable/bypass state and the overall runtime profile.
One graph contains at least two different kinds of logic
| Layer | What it carries | Primary question |
|---|---|---|
| DATA PLANE | IMAGE, MASK, LATENT, MODEL, CONDITIONING | What is being processed right now? |
| CONTROL PLANE | INT, FLOAT, STRING, BOOLEAN, selectors, bypass | Which route and mode are active? |
The data plane shows the path from input to output
On the first pass through a large workflow, follow the large objects. IMAGE moves through preprocessors, MASK constrains an area, LATENT passes through the sampler, and MODEL plus CONDITIONING provide the generative context. This is the computational skeleton.
If you mentally remove the small control wires, the remaining data route should still be understandable.
The control plane defines the effective runtime state
The control plane may not alter pixels directly, but it determines which pixels reach downstream. It selects the source, strength, steps, denoise, mode, resolution and active modules.
A small INT selector can therefore be more important than an entire generative branch: the wrong value can simply route the graph somewhere else.
The visible widget value is not always the effective value
When a parameter input is linked to another control node, the downstream widget may display a saved local value that does not define the current runtime. The authoritative source is upstream.
When debugging selectors and shared controls, trace the link back to its source rather than trusting only the value shown inside the destination node.
Hansen example
This manual already documents selectors in which a linked input overrides the stored widget value.
A large graph is easier to read in two passes
Topology and runtime path are not the same thing
Topology answers which connections exist in the saved workflow. The effective runtime map answers which of those connections actually determine the current result after selectors, linked controls and bypass state are taken into account.
This distinction is critical when auditing large graphs: a connected branch may be selected away, while a saved post-process may be in bypass.
Practice: draw two maps of the same workflow
- Map A: keep only IMAGE / MASK / LATENT / MODEL / CONDITIONING links.
- Map B: list only selectors, INT/FLOAT/STRING controls and bypass switches.
- For every selector, record its authoritative upstream value.
- Combine the maps and describe the effective runtime route in one sentence.
Readiness criterion
If you can explain the data route and control route separately, you are ready to move on to module contracts and interface design.