PixelTiledKSampleUpscalerProviderPipe
The tiled upscale recipe, pipe-flavored
- basic_pipe
- upscale_model_opt
- pk_hook_opt
- tile_cnet_opt
- UPSCALER
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,denoiseat 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.randomis 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(aPK_HOOKfor 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.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| scale_method | COMBO | 4 options: nearest-exact, bilinear, lanczos, area | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.000–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 1.000–1 | — |
| tile_width | INT | 512320–16384 | — |
| tile_height | INT | 512320–16384 | — |
| tiling_strategy | COMBO | 3 options: random, padded, simple | |
| basic_pipe | BASIC_PIPE | — | |
| upscale_model_optopt | UPSCALE_MODEL | — | |
| pk_hook_optopt | PK_HOOK | — | |
| tile_cnet_optopt | CONTROL_NET | — | |
| tile_cnet_strengthopt | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| UPSCALER | UPSCALER | — |