Easy Apply IPAdapter (From Params)
Multi-reference IPAdapter without the spaghetti
- model
- ipadapter_params
- optional_ipadapter
- image_negative
- model
- ipadapter
This is Easy-Use's wrapper around cubiq's ComfyUI_IPAdapter_plus - the reference implementation nearly every IPAdapter workflow is actually built on - for the specific case where you're not applying one reference image, you're applying several, pre-encoded, with their own weights already decided. If you've only ever used a single-image IPAdapter node, this one is the version for regional or multi-reference setups.
Where this fits, honestly
IPAdapter is a style/identity conditioning trick, not a structure one - it hands the model an embedding of "what this looks like" through its own attention path, separate from ControlNet's "where things go." It's still the default tool for that job on SD 1.5 and SDXL, but worth knowing going in: upstream development on IPAdapter itself stopped in January 2024, and cubiq's node pack - the thing this node actually calls - has been in maintenance-only mode for a while. It works fine and it's still what most SD 1.5/SDXL character and style workflows lean on, but if you're on Flux or a newer architecture, IPAdapter's weights don't load there at all; you'd want PuLID, Redux, or an in-context editor instead.
The "From Params" naming means this node expects an ipadapter_params bundle - multiple reference images already encoded with their own individual weights - rather than one raw image. That's the shape you'd build for regional application (different references influencing different parts of the frame) or multi-image identity blending, assembled by an upstream params-building node before it reaches this one.
The inputs that matter
model and ipadapter_params are required, obviously. preset is the standard IPAdapter preset menu - STANDARD, PLUS for stronger style transfer, PLUS FACE/FULL FACE for face-focused conditioning, COMPOSITION, VIT-G, plus the Flux/SD3.5-oriented REGULAR and Kolors-specific PLUS variants for those architectures specifically. Match the preset to what your reference actually is - a face-focused preset on a full-scene reference image wastes most of the reference's information.
combine_embeds decides how multiple reference embeddings get merged when you've fed more than one - concat keeps them distinct, average/norm average blend them, max/min are less common but useful for specific compositing effects. embeds_scaling is cubiq's own K/V weighting scheme (V only, K+V, and two variants with a "C penalty") - leave this at the default unless you're specifically chasing a known fix for over-strong conditioning. cache_mode controls whether the underlying insightface/clip_vision/ipadapter models stay resident in memory across runs - insightface only is the default, all speeds up repeated runs at the cost of holding more in VRAM, none frees everything each time.
Optional optional_ipadapter lets you reuse an already-loaded adapter instead of loading fresh, and image_negative gives you a negative reference to steer away from. Outputs are model (patched with the adapter applied) and ipadapter (for chaining into further apply nodes).
Installing it
ComfyUI Manager: search ComfyUI Easy Use, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use
Windows: double-click install.bat. Linux/Mac: run pip install -r requirements.txt yourself. You'll separately need ComfyUI_IPAdapter_plus installed (the README credits it for "style migration") and the actual IPAdapter and CLIP vision weights downloaded - this node applies conditioning, it doesn't fetch models.
Where people get stuck
Weight above roughly 0.7–0.8 and the reference starts overriding your prompt entirely - if your subject stops responding to text changes, that's the usual culprit, and it lives on the params-building node upstream, not here. If results look soft or detail-poor, that's IPAdapter's known behavior when run across every sampling step; ending its influence early preserves more detail. And FaceID-family presets specifically need insightface installed as a Python package plus its models downloaded separately - a missing insightface install is a very common first-run crash, and it's also worth knowing FaceID weights are research-only, not something to build a commercial product around.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| preset | COMBO | 9 options: LIGHT - SD1.5 only (low strength), STANDARD (medium strength), VIT-G (medium strength), PLUS (high strength), PLUS (kolors genernal), REGULAR - FLUX and SD3.5 only (high strength), +3 | |
| ipadapter_params | IPADAPTER_PARAMS | — | |
| combine_embeds | COMBO | 7 options: concat, add, subtract, average, norm average, max, +1 | |
| embeds_scaling | COMBO | 4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty | |
| cache_mode | COMBO | insightface only | 5 options: insightface only, clip_vision only, ipadapter only, all, none |
| optional_ipadapteropt | IPADAPTER | — | |
| image_negativeopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| ipadapter | IPADAPTER | — |