TBG ETUR ColorMatch Debug Gates
The light switches behind every color stage
- output_1
ETUR's refiner doesn't correct color once - it corrects color at a dozen points in the pipeline: after PiD VAE decode, after segment sampling, before the final rebuild, after the final stitch. That's how you get seamless, tile-consistent output, and it's also why a color artifact can be maddening to chase. You see a green cast in the final image and you have no idea which of the dozen passes put it there.
ColorMatch Debug Gates exists to answer that. It's a wall of boolean switches, one per color stage, and its single output - a tbg_colormatch_debug pipe - plugs into the Labs for Refiner node's optional ColorMatch_Debug input. Flip a stage off, rerun, and you've bisected the problem. It's the diagnostic node you connect when something looks wrong, not the one you leave in a happy workflow.
The gates
The numbering tells you where each stage sits in the pipeline:
- 03_Flux2_PID_NormalVAE_Reference - builds a normal-VAE reference from the sampled latent (Flux2 PiD tiles, reference path only).
- 04_Flux2_PID_AfterPiDVAE_ColorMatch - the RGB/luma correction applied right after PiD VAE decode.
- 05_Flux2_PID_PostTone_ColorMatch - post-tone/seam low-frequency stabilization, also after PiD decode.
- 08_Segment_PostVAE_ColorMatch - the correction applied to generated segments after their PiD/VAE decode.
- 10_Final_TileOnly_ColorCorrection - after normal tiles are stitched, before segment rebuild; matches against the original/upscaled input.
- 11_Final_SegmentAware_ColorBase - builds the final reference, optionally swapping in PiD segment crops.
- 12_PID_Final_ColorMatch_4x - the near-final PiD rebuild container.
- 13_Final_PerArea_SegmentOverrides - the per-area path for protected tiles/segments.
- 14_Final_Global_ColorMode - the final global RGB/luma pass.
Each defaults to on. Turning one off disables that stage - but only if normal ETUR settings had activated it in the first place. That's the Override_Normal_Gates switch's job: with it off, your toggles only disable stages that were already running; with it on, the switches force stages on or off, including over tile/segment color gates. The tooltip is also upfront that some tile-aware behavior requires API member access and Neuro Generative Tile Fusion - the debug gates can only switch what your account is allowed to run.
How to actually use it
Isolation, one gate at a time. See a tint that only shows up on PiD-decoded Flux2 tiles? Kill gate 04, rerun, compare. See a cast that appears only around generated segments? That's gate 08. The pattern is the same as every debugging rule in the book: change one thing, keep the seed fixed, compare. The output of this node isn't an image - it's the config pipe - so connect it to Labs for Refiner and look at the refined output, not at this node.
Installing it
Ships in the TBG ETUR pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Ltamann/ComfyUI-TBG-ETUR
cd ComfyUI-TBG-ETUR
pip install -r requirements.txt
Or ComfyUI Manager → search "TBG" → TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO, restart.
Notes
This is a developer tool and it wears the label proudly - don't feel obliged to understand every gate before touching the pack. The pragmatic workflow: leave the node disconnected until a color problem appears, then wire it in, flip one switch, and let the evidence point. The one genuinely useful habit: if a stage doesn't seem to do anything when you disable it, the stage probably wasn't active in your configuration in the first place - check Override_Normal_Gates before you conclude the gate is broken.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| Enabled_Stages | STRING | tile_preparation,geometry_normalization,segment_mask_preparation,neighbor_fusion,segment_fusion,conditioning,latent_encoding,model_sampling,vae_decode,decoded_rgb_normalization,decoded_size_normalization,sift_drift_correction,border_correction,tile_color_correction,segment_post_decode_correction,tile_compositing,segment_compositing,final_color_correction,final_rebuild | Comma-separated ordered ETUR stages. Legacy per-stage gates below remain compatible and can disable stages. |
| Override_Normal_Gates | BOOLEAN | false | OFF: switches only disable stages that normal ETUR settings already activated. ON: switches force stages on/off, including over tile/segment color gates. The TBG detail-preserving stabilizers use global RGB/luma + 16x16 grid; tile-aware still requires API member access and Neuro Generative Tile Fusion. |
| 03_Flux2_PID_NormalVAE_Reference | BOOLEAN | true | Reference only. Flux2 PiD normal tiles only. Creates a normal-VAE reference from sampled latent when that optional reference path is active. |
| 04_Flux2_PID_AfterPiDVAE_ColorMatch | BOOLEAN | true | After PiD VAE decode. Flux2 PiD normal tiles only. Applies detail-preserving global RGB/luma correction; Color_Match only gates on/off. |
| 05_Flux2_PID_PostTone_ColorMatch | BOOLEAN | true | After PiD VAE decode. Flux2 PiD normal tiles only. Applies post-tone/seam low-frequency stabilization without per-pixel ColorMatch. |
| 08_Segment_PostVAE_ColorMatch | BOOLEAN | true | After segment sampling and segment PiD/VAE decode. Segments only. TBG Detail-Preserving Color Stabilizer uses global RGB/luma + 16x16 grid; eligible tile-aware runs use segment/restore-mask smooth grid correction. |
| 10_Final_TileOnly_ColorCorrection | BOOLEAN | true | After normal tiles are stitched, before final segment rebuild. Applies non-structural global RGB/luma using original/upscaled input as reference. |
| 11_Final_SegmentAware_ColorBase | BOOLEAN | true | Before final PiD color match. Builds final reference from original/upscaled input, optionally replacing selected segment areas with PiD segment crops. |
| 12_PID_Final_ColorMatch_4x | BOOLEAN | true | Near final output. PiD final rebuild container. Color_Match=TBG Detail-Preserving Color Stabilizer routes to stage 14 unless protected tile/segment overrides require stage 13. |
| 13_Final_PerArea_SegmentOverrides | BOOLEAN | true | Final protected/per-area path. Runs when a normal Color_Match method is selected, or when protected tile/segment overrides substitute the global RGB/luma pass. Protect/origin/off masks override global settings. |
| 14_Final_Global_ColorMode | BOOLEAN | true | Final full/global path. Runs only when Color_Match is a TBG detail-preserving stabilizer and no protected tile/segment overrides exist. Uses global RGB/luma, not an old ColorMatch model. |
| Neighbor_Fusion_Inner_Tile_Composite | BOOLEAN | true | Neighbor fusion input preparation. ON composites the accumulated neighboring background with the current inner tile before sampling; OFF sends the current inner tile directly to the sampler. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_1 | tbg_colormatch_debug | — |