Nodes/CMK Flow/CMK Z-Image Process Forward -Pipe-
ComfyUI Node

CMK Z-Image Process Forward -Pipe-

The node that lets the ZIT branch be chosen before it's expensive

By CMKFlow·Created 3 months ago·Updated 2 days ago· 6
CMK Z-Image Process Forward -Pipe-
  • PROCESS
  • PROCESS

Small node, real job. CMK Z-Image Process Forward -Pipe- takes a Z-Image Turbo process pipe in and returns the same process pipe out, and the only interesting thing about it is when it does so relative to everything else in the graph.

You are unlikely to have gone looking for this node. You'll find it inside packaged CMK subgraphs, or in the node list under CMK/Developer/Pipe while you're poking at how the flow stitches together. It's marked DEV_ONLY in the source, which is CMK's way of saying it's architecture, not a tool.

What problem it solves

CMK Flow has three generation families - SDXL, Z-Image Turbo and a HYBRID path that builds on SDXL and finishes on ZIT - and they share one family-neutral post-process zone. Something has to decide which family is live early enough that the expensive parts of the other families never run.

A process pipe is that cheap family selector: it carries prompt, seed, generation mode, ControlNet settings and the family_active / model_family flags, and it does so without any pixels or model weights. The image and the model come later, through guarded paths that can be skipped entirely.

This node is the piece that hands the process pipe across that decision point. Its check_lazy_status returns an empty list on purpose, with a comment in the source spelling out the trap it's avoiding: waiting on the RESULT PROCESS here can leave downstream output nodes blocked after a cold global-subgraph execution in ComfyUI. So the node asks for nothing, takes the cheap selector, and lets the boundary decide - select ZIT first, then request MODEL, IMAGE and LOG through the expensive path only if the family actually won.

Inputs and outputs

  • PROCESS (CMK_PROCESS_Z_IMAGE, required) - the ZIT process pipe. It must be a dictionary; anything else raises a type error with the message "CMK Z-Image Process Forward requires a process pipe."
  • PROCESS (CMK_PROCESS_Z_IMAGE) - the same pipe, out. A None in gives a None out rather than an error, which keeps it safe in half-wired graphs.

One in, one out, same type, no mutation. Like the visual forward node in the same family, the value of the node is its position, not its body.

Install

Part of the pack, so installing is installing CMK Flow. Manager → search CMK Flow → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/CMKFlow/cmk_nodes
python3 custom_nodes/cmk_nodes/scripts/install_cmk_requirements.py

Restart only after CMK dependency check: OK appears. Nothing to download for this node, but if you're running the ZIT path at all you want the resource audit once:

python3 custom_nodes/cmk_nodes/scripts/check_cmk_resources.py --models-root "/path/to/shared/models"

Common issues

  • "It's in my graph and I don't know why." It shipped with a reference workflow or subgraph. Leave it; removing it can break the family-selection order it exists to preserve.
  • A type error claiming it needs a process pipe. You've wired an IMAGE or a model pipe into a PROCESS ZIT socket. The three CMK transport roles - model, process, image - are deliberately not interchangeable, and this node is one of the places that enforces it.
  • Downstream nodes never run after adding it. This is the failure it was written to prevent, so check the other end: an output node waiting on a pipe that no branch produced. The usual cause is a family_active flag switched off for the family you were expecting to run.
CategoryCMK/Internal/Forward

Inputs (1)

NameTypeDefaultDescription
PROCESSCMK_PROCESS_Z_IMAGE—

Outputs (1)

NameTypeDescription
PROCESSCMK_PROCESS_Z_IMAGE—