Image ProcessorX
An interactive editor mid-pipeline, not just a review desk
- image1
- image2
- image
WorkflowX actually ships two image editors, and the difference between them is the whole story. Image Compare Edit X is the terminal review desk - no outputs, all browser. Image ProcessorX is the one with an output, the one you can drop mid-pipeline when you want to hand-edit an image and feed the result to the next node. Same family, opposite place in the graph.
The mechanic that makes it workflow-safe: everything you do in the editor is recorded as a versioned, normalized "recipe" in processor_state (a UI-managed string, default {"schemaVersion":1}), and that state is validated server-side. Reload the workflow and it renders deterministically - your adjustments come back exactly as you left them, not as a fuzzy memory of what you tweaked. That's the property that separates "useful interactive node" from "fun toy that loses your edits."
Inputs and what they map to
image1(IMAGE) - the primary image. It's also O1 in the editor.image2(IMAGE, optional) - a second layer or comparison image. That's O2.operation_mode-Continueexecutes immediately;Pauseholds for interactive editing before the result flows on.output_image- pick which thing the node emits: O1, O2, or the composed O3.processor_state- the serialized, versioned edit recipe. Managed by the UI; you mostly shouldn't hand-edit it.
Output: a single image (IMAGE) - whichever source or composed result you selected.
The editor controls are the expected set: layer order, opacity, adjustments, curves, presets, plus apply/continue, reset, and save/session actions. It's built to work as a two-layer stack - compare your sources, blend, adjust, and emit the winner.
Install
One pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
or search WorkflowX Configurator in ComfyUI Manager, restart ComfyUI, hard-refresh the browser. No pip deps, no model files.
Where it pays off and where it bites
- Use
Pausewhen you want to iterate before it runs on.Continuejust passes the selected output straight through - convenient, but if you need to actually edit between generations, Pause is the mode. output_imageis the one setting beginners miss. You can have both inputs wired and wonder why the output never changes - check whether you're emitting O1 when you meant O3.- State is the contract. Because edits live in
processor_state, sharing a workflow shares your edits - which is great for reproducibility and a small privacy note: keep personal edits out of workflows you publish if that matters to you. - It's a manual step, not automation. This node is for the "I want to nudge this" moments. If you're compositing the same way every run, ordinary blend/color nodes will do it faster.
The right tool when "good enough" isn't, and you want the fix baked into the workflow rather than done in an external editor.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image1 | IMAGE | Primary image and O1 output. | |
| operation_mode | COMBO | Continue | 2 options: Continue, Pause |
| output_image | COMBO | O1 | 3 options: O1, O2, O3 |
| processor_state | STRING | {"schemaVersion":1} | — |
| image2opt | IMAGE | Optional comparison/composite image and O2 output. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |