Nodes/UltimateSDUpscale/Ultimate SD Upscale (Guider)
ComfyUI Node Runs on cloud

Ultimate SD Upscale (Guider)

Tiled upscaling driven by a custom GUIDER

By ssitu·Created 3 years ago·Updated 2 months ago· 1,535
Ultimate SD Upscale (Guider)
  • image
  • guider
  • sampler
  • sigmas
  • vae
  • upscale_model
  • IMAGE
upscale_by2.00
seed0
mode_type
tile_width512
tile_height512
mask_blur8
tile_padding32
seam_fix_mode
seam_fix_denoise1.00
seam_fix_width64
seam_fix_mask_blur8
seam_fix_padding16
force_uniform_tilestrue
tiled_decodefalse
batch_size1

This is the deep end of the Ultimate SD Upscale family. Where the standard node gives you a sampler with dropdowns, and the CustomSample node lets you swap the sampler, UltimateSDUpscaleGuider hands the entire sampling pipeline over to ComfyUI's advanced custom-sampling nodes. Instead of a model plus prompts plus cfg, it takes a guider, a sampler, and a sigmas, the same three-part setup you'd feed a SamplerCustomAdvanced. If you already build your generations that way, this is how you get that exact pipeline into a tiled upscale.

Most people never need it. If terms like BasicGuider and CFGGuider don't ring a bell, use the plain UltimateSDUpscale node and move on. But if you're running something that only exists as a guider (a custom guidance scheme, a specific CFGGuider setup, or a solver from a pack like RES4LYF), this variant is the only one in the pack that accepts it.

How it works

The tiling half is unchanged: enlarge the image, split into overlapping tiles at native resolution, run the diffusion pass per tile, blend with a seam fix. What's different is that the per-tile sampling is fully externalized. You build a guider (which already has the model, conditioning, and guidance baked in), a sampler (from KSamplerSelect or similar), and a sigmas schedule (from BasicScheduler or a split-sigmas node), and wire all three in. The node then runs each tile through that pipeline. There's no cfg, no steps, no denoise, and no sampler_name on this node, because every one of those now lives inside the guider and the sigmas you supply.

The inputs and outputs that matter

The four inputs that define this node:

  • guider (required, GUIDER): the output of a guider node such as BasicGuider or CFGGuider. This is where your model, conditioning, and guidance strength all come from. It's the biggest thing to get right.
  • sampler (required, SAMPLER): the sampling algorithm, typically from KSamplerSelect.
  • sigmas (required, SIGMAS): the noise schedule. This also sets your effective denoise, so for an upscale you want a partial-denoise schedule, not a full one. There is no denoise slider here; the sigmas are the denoise.
  • upscale_model (required, UPSCALE_MODEL): the ESRGAN model for the initial enlarge, wired from a Load Upscale Model node.

The remaining inputs are the familiar upscale controls: image, vae, upscale_by (default 2), seed, the tiling group (tile_width, tile_height, mask_blur, tile_padding), and the seam-fix group (seam_fix_mode, seam_fix_denoise, and friends). The single output is one IMAGE.

Installing it

Same pack as every other Ultimate SD Upscale node. ComfyUI Manager: Custom Nodes Manager, search "UltimateSDUpscale", install, restart. Or from a terminal:

cd ComfyUI/custom_nodes
git clone https://github.com/ssitu/ComfyUI_UltimateSDUpscale

then restart ComfyUI. The pack is lightweight and ships no models, but this node leans on ComfyUI's custom-sampling nodes (and often a sampler pack like RES4LYF), so make sure those are available. It appears under image/upscaling.

Common issues and troubleshooting

The trap on this node is denoise, because there isn't a field for it. If your tiles come out either barely touched or completely reinvented, the problem is your sigmas. Feed a full-strength schedule and every tile gets fully redrawn, which produces exactly the tiled-upscale disasters you'd expect: faces hallucinated into random busy tiles and patchwork seams where neighboring tiles diverge. Build a partial-denoise sigma schedule (the equivalent of the 0.15 to 0.3 denoise range on the simpler nodes) and coherence comes back. The other easy miss is forgetting that the guider carries the model and conditioning, so if the upscale isn't following your prompt, check what you put into the guider, not the node.

Beyond that it's ordinary Ultimate SD Upscale: seams respond to mask_blur/tile_padding and the Half Tile seam_fix_mode options, and a ControlNet Tile keeps tiles faithful on difficult sources. This node exists for people who've already committed to the custom-sampling workflow. If you haven't, the plain UltimateSDUpscale node does the same upscaling with far fewer moving parts.

Categoryimage/upscaling

Inputs (21)

NameTypeDefaultDescription
imageIMAGEThe image to upscale.
guiderGUIDERThe guider to use for sampling. Encapsulates the model, conditioning, and CFG scale.
samplerSAMPLERThe sampler to use for each tile.
sigmasSIGMASThe noise schedule (sigmas) to use for sampling.
vaeVAEThe VAE model to use for tiles.
upscale_byFLOAT2.000.05–4The factor to upscale the image by.
seedINT00–18446744073709550000The seed to use for noise generation.
upscale_modelUPSCALE_MODELThe upscaler model for upscaling the image.
mode_typeCOMBOThe tiling order to use for the redraw step.
tile_widthINT51264–8192The width of each tile.
tile_heightINT51264–8192The height of each tile.
mask_blurINT80–64The blur radius for the mask.
tile_paddingINT320–8192The padding to apply between tiles.
seam_fix_modeCOMBOThe seam fix mode to use.
seam_fix_denoiseFLOAT1.000–1The denoising strength to use for the seam fix.
seam_fix_widthINT640–8192The width of the bands used for the Band Pass seam fix mode.
seam_fix_mask_blurINT80–64The blur radius for the seam fix mask.
seam_fix_paddingINT160–8192The padding to apply for the seam fix tiles.
force_uniform_tilesBOOLEANtrueForce all tiles to be the same as the set tile size, even when tiles could be smaller. This can help prevent the model from working with irregular tile sizes.
tiled_decodeBOOLEANfalseWhether to use tiled decoding when decoding tiles.
batch_sizeINT11–4096The number of tiles to process in a batch. Higher values can reduce processing time but use more VRAM. Yields different results than individual tiles. Only affects the main redraw step, not the seam fix step.

Outputs (1)

NameTypeDescription
IMAGEIMAGEThe final upscaled image.