Nodes/ComfyUI Easy Use/Easy Apply IPAdapter (From Params)
ComfyUI Node Runs on cloud

Easy Apply IPAdapter (From Params)

Multi-reference IPAdapter without the spaghetti

By yolain·Created 3 years ago·Updated 8 days ago· 2,633
Easy Apply IPAdapter (From Params)
  • model
  • ipadapter_params
  • optional_ipadapter
  • image_negative
  • model
  • ipadapter
preset
combine_embeds
embeds_scaling
cache_modeinsightface only

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.

CategoryEasyUse/Adapter

Inputs (8)

NameTypeDefaultDescription
modelMODEL
presetCOMBO9 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_paramsIPADAPTER_PARAMS
combine_embedsCOMBO7 options: concat, add, subtract, average, norm average, max, +1
embeds_scalingCOMBO4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty
cache_modeCOMBOinsightface only5 options: insightface only, clip_vision only, ipadapter only, all, none
optional_ipadapteroptIPADAPTER
image_negativeoptIMAGE

Outputs (2)

NameTypeDescription
modelMODEL
ipadapterIPADAPTER