TTPlanet Tile GuidedFilter
The tile preprocessor for realistic detail upscaling
- image
- IMAGE
If you're doing tile-based upscaling and you want the added detail to look photographic instead of crunchy, this is the preprocessor that pairs with TTPlanet's tile ControlNet. Tile ControlNet is the backbone of the "add real detail while staying faithful to the source" upscale - it feeds the original image back as a condition so the model refines rather than reinvents. TTPlanet built a well-regarded tile ControlNet for the realism crowd (originally the SDXL realistic tile, later Flux variants), and this node is the matching preprocessor: it prepares the input with a guided-filter smoothing pass so the tile model adds clean, believable texture instead of amplifying compression artifacts.
How it works
The "GF" is a guided filter - an edge-preserving blur. Instead of a plain Gaussian that smears everything, a guided filter smooths flat areas while keeping real edges sharp. The node runs that filter over your image before it becomes the tile condition. Why blur at all? Because tile upscaling works best when you hand the model a slightly softened version of the source: it removes the tiny artifacts and noise that a tile ControlNet would otherwise faithfully reproduce (and magnify), while leaving the actual structure intact. The model then generates crisp new detail on top of that clean base. You wire the output into a tile ControlNet - TTPlanet's, ideally - inside a tiled upscaling or img2img workflow with a decent denoise.
The inputs that matter
It takes an image and returns an IMAGE - the filtered tile condition - for your ControlNet Apply node. The guided filter exposes a few knobs, and a couple actually matter:
blur_strength(default 2, range 1–10) - how much smoothing. More blur wipes out more source artifacts and gives the model more freedom to add detail; too much and you lose fidelity to the original. This is the main dial to play with.radius(default 7) andeps(default 0.01) - the guided-filter internals:radiusis the filter window size,epscontrols how aggressively it preserves edges (smaller = sharper edge preservation). The defaults are well-chosen; touch these only ifblur_strengthalone isn't getting you there.scale_factor(default 1, range 1–8) - resizes the processed output.
resolution (default 512) sets the working size.
Installing it
ComfyUI Manager: search ComfyUI's ControlNet Auxiliary Preprocessors, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Fannovel16/comfyui_controlnet_aux
pip install -r requirements.txt
Restart ComfyUI. No model download for the preprocessor itself - the guided filter is pure image processing. What you do need separately is a tile ControlNet: grab TTPlanet's tile model (the realistic SDXL or Flux version, depending on your base) since that's what this node was tuned to feed.
Where people get burned
First, understand the roles: this node makes the condition, TTPlanet's tile ControlNet model does the work, and they're separate downloads - installing the preprocessor without the matching ControlNet gets you nothing. Second, the whole thing lives inside an upscaling pipeline, not on its own - you're pairing it with a tiled diffusion / img2img setup and a denoise strength high enough to add detail (community results tend to sit around 0.5+). Third, tune blur_strength deliberately: too little and the tile model faithfully upscales your JPEG artifacts, too much and it drifts from the source. And a note on base models - tile is one of the conditions that got dropped from some modern unions (Shakker's Flux Union Pro 2.0 removed it), so check that the union or ControlNet you loaded actually includes a tile mode before you go hunting for why nothing's sharpening.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| scale_factoropt | FLOAT | 1.001–8 | — |
| blur_strengthopt | FLOAT | 2.001–10 | — |
| radiusopt | INT | 71–20 | — |
| epsopt | FLOAT | 0.0100.001–0.1 | — |
| resolutionopt | INT | 51264–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |