Nodes/TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO/TBG Model Agnostic Latent Anchor
ComfyUI Node

TBG Model Agnostic Latent Anchor

TBG Model Agnostic Latent Anchor

By Ltamann·Created about a year ago·Updated 19 days ago· 156
TBG Model Agnostic Latent Anchor
  • model
  • model
strength0.50
start_percent0.00
end_percent1.00
ramp_curve1.5

If the Color Anchor is a leash on the color grade, the Latent Anchor is a leash on the whole latent. Where its sibling only locks the per-channel mean, this node pulls the entire denoised latent back toward your source image latent on every step - preserving structure, texture, style, and color all at once. The tooltip is blunt about the trade: "High values can preserve or ghost structure, texture, style, and color." That's the whole personality of this node: it's powerful, it's crude, and it will happily smear your image into a double-exposure if you overshoot.

It's another standalone takeaway from TBG ETUR (Tobias Laarmann's tiled upscaler-and-refiner pack), extracted in v1.2 so you can use it outside the full ETUR graph. The two anchors are deliberately separate: reach for the Color Anchor when only the grade is drifting, reach for this one when you want the image to stay structurally glued to the source.

How it works

Same machinery as the Color Anchor - a model patch with a strength-weighted pull toward the sampler's input latent, applied over a start_percentend_percent window with a ramp_curve. The difference is what gets pulled. The Color Anchor recomputes per-channel spatial means; this node pulls the full latent tensor toward the anchor, so every spatial detail counts. That's why the README's refinement philosophy treats it as an alternative to ControlNets: it gives you "ControlNet-like behavior with zero VRAM cost" - a cheap way to keep a tiled or edited image from running off the rails.

The ramp is worth understanding before you crank it: the source spells out the formula, progress^(1/curve). Higher ramp_curve values make the anchor's effect arrive earlier in the sampling window, so the model is already committed to the source structure before the creative late steps.

Inputs

  • model - patched and returned in the same slot.
  • strength (0.5) - pull intensity. Default is already active; 0 disables. Low values (0.1–0.3) keep identity without ghosting; high values (0.8+) start to force structure.
  • start_percent (0.0) / end_percent (1.0) - window across sampler progress. If you only want to hold the composition early and let it breathe later, end the window before 1.0.
  • ramp_curve (1.5) - arrival curve; higher = effect arrives earlier.

Output: a single model, chained into your KSampler or the TBG Refiner.

Install

Same pack, same drill:

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 → "TBG Enhanced Upscaler," restart. Current ComfyUI (v3 API) and the pack's heavy requirements apply.

Common issues

  • Ghosting / double-exposure - strength too high for the denoise you're running. High denoise + high anchor = the model fights the pull and you get echoes. Lower strength or end the window earlier.
  • Empty Latent again - same trap as the Color Anchor: "Empty Latent is not a real source-image anchor." If your sampler gets an Empty Latent, the anchor is pulling toward noise and you'll get mush. Feed a real VAE-encoded image.
  • "Why does nothing change?" - if you set a narrow late window and low curve, the anchor effectively never engages. Check that your start_percentend_percent window actually covers steps you care about.
CategoryTBG/ETUR Tiled Upscaler and Refiner

Inputs (5)

NameTypeDefaultDescription
modelMODEL
strengthFLOAT0.500–1How strongly to pull the denoised latent toward the sampler input latent. This uses the sampler's primary VAE-encoded source/input image latent as the anchor. Empty Latent is not a real source-image anchor. High values can preserve or ghost structure, texture, style, and color. 0 disables.
start_percentFLOAT0.000–1Linear sampler-step progress where the latent anchor starts. 0.0 starts at the first sampler step.
end_percentFLOAT1.000–1Linear sampler-step progress where the latent anchor ends. 1.0 ends at the last sampler step.
ramp_curveFLOAT1.50.5–8Progress curve for applying the full latent anchor over sampler steps. Formula: progress^(1/curve). Higher values make the effect arrive earlier.

Outputs (1)

NameTypeDescription
modelMODEL