ComfyUI Node

TiledIPAdapter

Why TiledIPAdapter existed, and why you should use unfold_batch instead

By kinfolk0117·Created 3 years ago·Updated 2 years ago· 46
TiledIPAdapter
  • model
  • positive
  • negative
  • latent_images
  • ipadapter
  • clip_vision
  • images
  • LATENT
seed0
steps20
cfg8.0
sampler_name
scheduler
denoise1.00
ipadapter_weight1.00

The first thing you should know about TiledIPAdapter: the author killed it. The README opens with a warning that this project "will not be maintained any more," and the whole pack is one node, explicitly a proof of concept. So before you wire it into anything, understand what it was for - tiled upscaling where IP-Adapter, not ControlNet Tile, keeps each tile faithful to the source - and why nobody needs it in 2026.

What it actually does

The idea is simple and clever. Normal tiled upscaling cuts a big image into tiles, runs diffusion on each tile, and blends the results back together. The classic problem is tile drift: each tile's sampler wanders off, and you get seams and patchwork. The usual fix is ControlNet Tile, which feeds the original tile in as a condition. This node was the IP-Adapter version of that trick.

Here's the mechanism, straight from the source. A regular IP-Adapter pass takes a batch of reference images and conditions the model once. This node instead loops over each (latent, image) pair: it applies IP-Adapter with just that one image, runs a full KSampler on that tile's latent (img2img-style, controlled by denoise), and concatenates the resulting latents into one batch. One conditioned model per tile, one sampling pass per tile.

You feed it tiles, you get improved tiles out, and they're each pinned to their own local reference image instead of one global one. That's the entire node - about 50 lines of Python that import IPAdapterApply from cubiq's pack and wrap the stock common_ksampler.

The inputs that matter

Two inputs do all the work, and they must be batch-aligned:

  • latent_images and images - a batch of tile latents and a matching batch of tile images, one pair per tile. The node indexes them in lockstep, so if the batch sizes don't match it throws an IndexError. If you're splitting an image manually, keep the pairs in order.
  • ipadapter_weight - how hard the reference image conditions each tile. Default is 1.0, which is hot for IP-Adapter (the usual style-transfer range is 0.3–0.8). Drop it if tiles stop looking like the source.

The rest is standard sampler furniture: seed, steps, cfg, sampler_name, scheduler, positive, negative, and denoise (1.0 = full redraw per tile, and for upscaling you want it lower - 0.3–0.4 is the safer end). The ipadapter and clip_vision sockets take the objects from cubiq's IPAdapterUnifiedLoader / IPAdapterModelLoader. The single output is a LATENT - the concatenated tile latents, which you VAE-decode and hand to a tile-merge node (the author's own ComfyUI_SimpleTiles provides both split and merge).

Installing it

ComfyUI Manager → search "ComfyUI_TiledIPAdapter", or:

cd ComfyUI/custom_nodes
git clone https://github.com/kinfolk0117/ComfyUI_TiledIPAdapter

Then restart ComfyUI. The catch: there's no requirements.txt, because the pack hard-imports ComfyUI_IPAdapter_plus, so cubiq's pack must already be installed or the node won't even register. The IP-Adapter weights themselves load through cubiq's loader, not this pack.

The honest recommendation

Install it only if you're curious about the mechanism. The author said it plainly in January 2024: "TiledIpadapter is no longer needed, use 'unfold_batch' instead." ComfyUI_IPAdapter_plus gained an unfold_batch toggle that does the same per-image conditioning through the regular KSampler, minus the hand-rolled loop. And IP-Adapter tiles have their own quirks worth knowing: the adapter wants square reference images (non-square tiles need the tile-splitter to square them up), and this node applies the adapter across all steps with no start/end window, which softens detail. If all you want is a faithful tiled upscale, UltimateSDUpscale or tiled diffusion with ControlNet Tile remains the more battle-tested path. TiledIPAdapter is a great little look at how the trick works - and a historical one.

Categoryipadapter

Inputs (14)

NameTypeDefaultDescription
modelMODEL
seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBO34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28
schedulerCOMBO9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imagesLATENT
denoiseFLOAT1.000–1
ipadapterIPADAPTER
clip_visionCLIP_VISION
imagesIMAGE
ipadapter_weightFLOAT1.00-1–3

Outputs (1)

NameTypeDescription
LATENTLATENT