Nodes/TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO/TBG ETUR tiled Nvidia PID Image Upscale
ComfyUI Node

TBG ETUR tiled Nvidia PID Image Upscale

NVIDIA's PixelDiT, tiled so it fits your VRAM

By Ltamann·Created about a year ago·Updated 19 days ago· 156
TBG ETUR tiled Nvidia PID Image Upscale
  • PID_Model
  • image
  • latent
  • Sampler
  • PID_CLIP
  • PID_Source_VAE
  • PID Rebuilt
  • PID Tiles
PID_VAE_Compatible_ModelFLUX1
seed3
upscale_by4.0
steps4
cfg1.0
sampler_namepid_sde
schedulersimple
denoise1.00
degrade_sigma0.10
Color_MatchTBG Detail-Preserving Color Stabilizer
Geometry_Drift_Correctiontrue
Color_Match_Str1.00
prompt

PiD - PixelDiT, NVIDIA's Pixel Difference Transformer - is a 1K→4K super-resolution model, and it's the star of ETUR 1.2's standalone nodes. But a 4K-capable diffusion model on a big image is a VRAM wall unless you tile it. This node is the tiling: it takes an input image or latent, chops the job into PiD tiles, runs each one, drift-corrects and color-matches them against the source, and rebuilds the full image. The display name says it all - tiled Nvidia PID Image Upscale - and the two outputs are PID Rebuilt (the finished image) and PID Tiles (a list of the per-tile results, so you can inspect or re-fuse).

It's the standalone PiD path, separate from the refiner. If you've loaded a PiD model with TBG ETUR Download PiD Model, this is what you feed it into.

The inputs that matter

  • PID_Model (MODEL) - from the Download PiD node. Required.
  • PID_VAE_Compatible_Model (default FLUX1) - tells the pipeline which model family's VAE/latent space the PiD model matches. Get this wrong and the upscale silently degrades.
  • upscale_by (default 4, range 0.1–16) - the target factor. 4 is the PiD sweet spot.
  • steps (default 4) - PiD is a fast few-step model; 4 is normal, not a typo. Don't crank it to 30 expecting more quality; you'll get more of the same.
  • cfg (default 1) - near 1 for PiD. Its conditioning is a light prompt hint, not a full prompt.
  • denoise (1.0) / degrade_sigma (0.1) - how much of the input each tile reimagines. degrade_sigma is the knob that says "how noisy/damaged should the model treat this tile as" - the reference upscaler trick for giving the model room to add real detail.
  • sampler_name (pid_sde) / scheduler (simple) - the PiD-native sampler; the pack registers it. Leave them unless you have a reason.
  • prompt - an optional style hint. PiD's CLIP is small; don't write a novel here.

The two source inputs are exclusive-ish: image alone does a normal PiD upscale with per-tile SIFT drift correction; latent alone makes PiD sample from the latent (VAE-decoding it first for the reference); both connected means PiD samples the latent while the image is used only as the drift/color reference. That last combo is the "clean reference, generative upscale" power move.

Why you'd reach for it

Straight answer: it's the cheapest way to get a genuine 4K generative upscale on consumer VRAM. The upscaling world splits "more pixels" from "more detail" - PiD is squarely in the detail-synthesis camp, and it's NVIDIA-backed, which on an RTX card means the whole pipeline has been tuned with that hardware in mind. The tiling is the part that makes it usable, because an untiled 1K→4K run on a 6–12GB card is asking for the OOM error of shame.

Installing it

Part of the TBG ETUR pack. ComfyUI Manager → search "TBG" → TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/Ltamann/ComfyUI-TBG-ETUR
cd ComfyUI-TBG-ETUR
pip install -r requirements.txt

You'll also need the PiD model itself - run the Download PiD node once, and make peace with a multi-gigabyte first fetch from HuggingFace.

Notes and gotchas

Where people get burned: forgetting that the PiD model family must match your pipeline's model (Flux1 PiD on a Flux2 image = wrong), and pushing upscale_by to 8 or 16 on a 4K-trained model (it can, but quality falls off fast past ~4x per pass - do two passes instead). Also: the PID Tiles output is a list, so if you route it into something expecting a single image, you'll get an error that looks like the node is broken. It's not; you just need a list-aware consumer or to skip that output. And the fixed-seed-while-debugging rule applies double here - PiD is deterministic enough that changing the seed and the settings at once will make you chase ghosts.

CategoryTBG/ETUR Tiled Upscaler and Refiner

Inputs (19)

NameTypeDefaultDescription
PID_ModelMODEL
PID_VAE_Compatible_ModelCOMBOFLUX17 options: FLUX1, FLUX2, Qwen Image, Qwen Image Edit, SDXL, SD3, +1
seedINT30–18446744073709550000
upscale_byFLOAT4.00.1–16
stepsINT41–100
cfgFLOAT1.00–100
sampler_nameCOMBOpid_sde47 options: euler, TBG Flux2 Sampler, pid_sde, pid_creative_sde, euler_cfg_pp, euler_ancestral, +41
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000.01–1
degrade_sigmaFLOAT0.100–1
Color_MatchCOMBOTBG Detail-Preserving Color Stabilizer15 options: none, TBG Detail-Preserving Color Stabilizer, lab color match+detail preservation, lab full color match, wavelet, wavelet_adaptive, +9
Geometry_Drift_CorrectionBOOLEANtrueWhen On, applies SIFT drift correction to each PiD tile against its cropped reference image before color correction.
Color_Match_StrFLOAT1.000–2
promptSTRING
imageoptIMAGEOptional reference image. Use image alone for normal PiD upscaling with per-tile SIFT drift correction before color correction, or connect image together with Source Latent so PiD samples from the latent while this image is used only as the per-tile reference for SIFT drift correction and color correction. If no image is connected, TBG decodes the Source Latent first and uses that decode as the reference image.
latentoptLATENTOptional PiD source latent. Use latent alone to sample directly from the latent; TBG will VAE-decode it first and use that decode as the per-tile reference for SIFT drift correction and color correction. Or connect latent together with the image input to use the latent for PiD and the image as the reference for color correction and geometry drift correction.
SampleroptSAMPLER
PID_CLIPoptCLIP
PID_Source_VAEoptVAE

Outputs (2)

NameTypeDescription
PID RebuiltIMAGE
PID TilesIMAGE