Nodes/ComfyUI Impact Pack/PixelTiledKSampleUpscalerProviderPipe
ComfyUI Node Runs on cloud

PixelTiledKSampleUpscalerProviderPipe

The tiled upscale recipe, pipe-flavored

By ltdrdata·Created 3 years ago·Updated 4 months ago· 3,242
PixelTiledKSampleUpscalerProviderPipe
  • basic_pipe
  • upscale_model_opt
  • pk_hook_opt
  • tile_cnet_opt
  • UPSCALER
scale_method
seed0
steps20
cfg8.00
sampler_name
scheduler
denoise1.00
tile_width512
tile_height512
tiling_strategy
tile_cnet_strength1.00

Pipe-flavored version of PixelTiledKSampleUpscalerProvider - same tiled decode/upscale/encode/sample recipe, but it takes a single basic_pipe (model, clip, vae, positive, negative bundled) instead of those as four separate inputs. Standard Impact Pack convention: reach for the "Pipe" variant when a basic_pipe is already flowing through your workflow and you don't want to unpack it just to feed this node.

Functionally it's identical to its non-pipe sibling: PixelKSampleUpscalerProviderPipe's decode/upscale/encode/sample cycle runs on the whole image every step, which chews VRAM fast at high resolutions, and this one tiles the sampling (via ComfyUI_TiledKSampler) and the VAE round-trip to keep cost tracking tile size, not canvas size.

How it works

Iterative Upscale calls this provider once per step. Each call decodes the current latent (tiled), resizes the pixels with scale_method (or upscale_model_opt if supplied, which does real upscaling instead of plain interpolation), re-encodes (tiled), then runs a tiled k-sampling pass using tile_width/tile_height/tiling_strategy. Requires BlenderNeko's ComfyUI_TiledKSampler installed separately - this node cannot function without it.

The inputs and outputs that matter

  • basic_pipe (required) - model/clip/vae/positive/negative, bundled.
  • seed / steps / cfg / sampler_name / scheduler / denoise - the sampling controls for each iteration step. As with any upscale pass, denoise at the default of 1 regenerates too much - pull it down toward 0.3–0.5.
  • tile_width / tile_height (default 512, step 64) - tile size for both sampling and the VAE round-trip. 512 is the sane starting point; smaller tiles cost less VRAM but more runtime.
  • tiling_strategy (random / padded / simple) - how the tiled sampler avoids seams between tiles across steps. random is the safest default.
  • scale_method (nearest-exact / bilinear / lanczos / area) - resize method used when not upscaling with a model.
  • Optional: upscale_model_opt (an ESRGAN-family model), pk_hook_opt (a PK_HOOK for scheduling CFG/denoise/steps), tile_cnet_opt / tile_cnet_strength (a tile-conditioning ControlNet during the resample, to help tiles agree with each other).

Output is a single UPSCALER - a plugin, not an image. Wire it into Iterative Upscale (Latent/on Pixel Space) or Iterative Upscale (Image).

How to install it

Via ComfyUI Manager: search ComfyUI Impact Pack, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack comfyui-impact-pack
cd comfyui-impact-pack
python -m pip install -r requirements.txt   # ComfyUI's python; python_embeded on portable

then restart. Also install BlenderNeko/ComfyUI_TiledKSampler - search "Tiled sampling for ComfyUI" in Manager, or clone it manually. Non-negotiable for this node.

Common issues & troubleshooting

Node missing or won't run. ComfyUI_TiledKSampler isn't installed. It's a separate pack from Impact Pack itself.

Nothing happens when connected alone. By design - the only output is UPSCALER. It must feed an Iterative Upscale node.

Image looks regenerated, not just upscaled. denoise is too high. Bring it down substantially for a resample pass rather than a full regeneration.

Still OOMing. Lower tile_width/tile_height further. Unlike the non-pipe version, this node has no separate overlap control to tune - tile size is your main lever here.

Do you need the pipe version specifically? Only if basic_pipe is already what's flowing through your graph. Otherwise the plain PixelTiledKSampleUpscalerProvider, with its four separate model/vae/positive/negative inputs, works exactly the same and saves you a ToBasicPipe node if you don't already have one.

CategoryImpactPack/Upscale

Inputs (15)

NameTypeDefaultDescription
scale_methodCOMBO4 options: nearest-exact, bilinear, lanczos, area
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
denoiseFLOAT1.000–1
tile_widthINT512320–16384
tile_heightINT512320–16384
tiling_strategyCOMBO3 options: random, padded, simple
basic_pipeBASIC_PIPE
upscale_model_optoptUPSCALE_MODEL
pk_hook_optoptPK_HOOK
tile_cnet_optoptCONTROL_NET
tile_cnet_strengthoptFLOAT1.000–1

Outputs (1)

NameTypeDescription
UPSCALERUPSCALER