IPAdapter ClipVision Enhancer
Squeeze more detail out of a small reference
- model
- ipadapter
- image
- image_negative
- attn_mask
- clip_vision
- MODEL
The CLIP vision encoder behind IP-Adapter sees your reference at a tiny 224px, and a lot of fine detail dies in that downscale. IPAdapter ClipVision Enhancer is the workaround: it tiles the reference, encodes the pieces, and effectively feeds the adapter a higher-resolution view than the encoder would normally get. The result is sharper, more faithful detail transfer from your reference - texture, fine features, small patterns that a single 224px pass would smear.
It lives in the pack's dev category, which is your honest signal: this is an experimental, power-user node. It works, people use it, but it's not part of the beginner path and the author flags it as still-cooking.
Inputs and outputs
At its core it's an IPAdapter Advanced apply node - same model, ipadapter, image, and the same weight, weight_type, combine_embeds, start_at, end_at, embeds_scaling you'd tune anywhere else, out to a patched MODEL. What makes it the Enhancer is two extra controls:
- enhance_tiles - how many tiles the reference is split into, 1 to 16 (default 2). More tiles means a higher effective resolution and more detail captured, at more compute. This is the main dial.
- enhance_ratio - 0 to 1, default 1. How strongly the enhanced (tiled) encoding is blended against the normal one. At 1 you're leaning fully on the enhanced path; dial it back to mix in the standard encoding.
Optional image_negative, attn_mask, and clip_vision behave as they do across the pack (clip_vision only needed if your adapter came from the plain Model Loader).
When it's worth it
Reach for the Enhancer when your reference has detail you care about that isn't surviving into the output - intricate clothing, fine textures, small facial features, detailed patterns. Bumping enhance_tiles up gives the adapter more to work with. It's especially handy when the reference itself is small or the detail is fine-grained relative to the frame.
The trade-offs are real: more tiles means more encoding work and more VRAM, and being a dev node it can be finicky. Start with the default 2 tiles, see if the detail improves, and only climb toward 16 if you need it and your card can take it. For most everyday style-and-subject transfer you won't need this at all - the plain Advanced node is fine. This is a specialist tool for detail-critical references. If you're working with a batch of images (an animation sequence), there's a batch variant of this node built for that instead.
Installing the pack
ComfyUI Manager: search "IPAdapter plus" in the Custom Nodes Manager, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, then restart ComfyUI. You'll need an IP-Adapter model in ComfyUI/models/ipadapter and a CLIP vision encoder in ComfyUI/models/clip_vision matched to your base (ViT-H for SD1.5, bigG for SDXL). Update ComfyUI if any node fails to load - and since this is a dev node, being on a current pack version matters more than usual.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| ipadapter | IPADAPTER | — | |
| image | IMAGE | — | |
| weight | FLOAT | 1.00-1–5 | — |
| weight_type | COMBO | 15 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +9 | |
| combine_embeds | COMBO | 5 options: concat, add, subtract, average, norm average | |
| start_at | FLOAT | 0.0000–1 | — |
| end_at | FLOAT | 1.0000–1 | — |
| embeds_scaling | COMBO | 4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty | |
| enhance_tiles | INT | 21–16 | — |
| enhance_ratio | FLOAT | 1.000–1 | — |
| image_negativeopt | IMAGE | — | |
| attn_maskopt | MASK | — | |
| clip_visionopt | CLIP_VISION | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |