ComfyUI Node

TBG ETUR ColorMatch Debug Gates

The light switches behind every color stage

By Ltamann·Created about a year ago·Updated 19 days ago· 156
TBG ETUR ColorMatch Debug Gates
    • output_1
    Enabled_Stagestile_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
    Override_Normal_Gatesfalse
    03_Flux2_PID_NormalVAE_Referencetrue
    04_Flux2_PID_AfterPiDVAE_ColorMatchtrue
    05_Flux2_PID_PostTone_ColorMatchtrue
    08_Segment_PostVAE_ColorMatchtrue
    10_Final_TileOnly_ColorCorrectiontrue
    11_Final_SegmentAware_ColorBasetrue
    12_PID_Final_ColorMatch_4xtrue
    13_Final_PerArea_SegmentOverridestrue
    14_Final_Global_ColorModetrue
    Neighbor_Fusion_Inner_Tile_Compositetrue

    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.

    CategoryTBG/ETUR Tiled Upscaler and Refiner

    Inputs (12)

    NameTypeDefaultDescription
    Enabled_StagesSTRINGtile_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_rebuildComma-separated ordered ETUR stages. Legacy per-stage gates below remain compatible and can disable stages.
    Override_Normal_GatesBOOLEANfalseOFF: 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_ReferenceBOOLEANtrueReference 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_ColorMatchBOOLEANtrueAfter 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_ColorMatchBOOLEANtrueAfter PiD VAE decode. Flux2 PiD normal tiles only. Applies post-tone/seam low-frequency stabilization without per-pixel ColorMatch.
    08_Segment_PostVAE_ColorMatchBOOLEANtrueAfter 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_ColorCorrectionBOOLEANtrueAfter normal tiles are stitched, before final segment rebuild. Applies non-structural global RGB/luma using original/upscaled input as reference.
    11_Final_SegmentAware_ColorBaseBOOLEANtrueBefore final PiD color match. Builds final reference from original/upscaled input, optionally replacing selected segment areas with PiD segment crops.
    12_PID_Final_ColorMatch_4xBOOLEANtrueNear 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_SegmentOverridesBOOLEANtrueFinal 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_ColorModeBOOLEANtrueFinal 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_CompositeBOOLEANtrueNeighbor 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)

    NameTypeDescription
    output_1tbg_colormatch_debug