IPAdapter from Params
The apply node for multi-reference, regional setups
- model
- ipadapter
- ipadapter_params
- image_negative
- clip_vision
- MODEL
This is the "apply" end of IPAdapter's params workflow. Where a normal apply node takes one image and one weight, From Params takes a whole bundle of references - each with its own image, weight, and mask - and applies them to your model in a single pass. That bundle comes from an encoder node, usually funneled through IPAdapter Combine Params first. From Params is what turns all that setup into an actual patched model.
You'd use it whenever you're doing regional or multi-subject IPAdapter: one reference driving the left of the frame, another the right, a third somewhere else, all at once. Chaining a stack of individual apply nodes can do the same thing, but the params route bundles it cleanly and applies everything together instead of layering pass after pass.
How it works
It takes the ipadapter_params bundle - which already carries the images, per-reference weights, and masks - and injects all of them into the model through IPAdapter's cross-attention path, then returns a single patched MODEL. The heavy lifting of what each reference is and where it lands was decided upstream by the encoder and Combine Params nodes; From Params is the step that commits it to the model.
The inputs that matter
modelandipadapter- your base model and the loaded adapter, same as any apply node.ipadapter_params- the bundle. This is the important wire, coming from Combine Params (or a single params-producing encoder).combine_embeds- how the bundled embeddings merge (concat, add, subtract, average, norm average). This matters more here than usual because you're combining several references;concatkeeps them distinct, the averaging options blend them.embeds_scaling- the injection math, safe to leave at default.
Optional image_negative gives the whole bundle a shared negative reference, and clip_vision lets you feed the encoder explicitly. The single output is MODEL, straight into your sampler.
Installing the pack
ComfyUI Manager: search ComfyUI IPAdapter plus, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus
then restart, and keep ComfyUI on the latest version - this pack breaks on stale Comfy. CLIP vision encoders belong in ComfyUI/models/clip_vision and IPAdapter weights in ComfyUI/models/ipadapter (make the folder if needed). Unified Loader wants exact filenames.
Where people get burned
The params system's cardinal rule: the bundle, the ipadapter model, and the base model all have to be the same family. From Params is where a mismatch you introduced three nodes back finally throws - and the error lands here even though the real problem is upstream, which sends people hunting in the wrong spot. If it errors, check the encoders that built the params, not this node.
You may also hit the broader ClipVision/IPAdapter mismatch if the encoder feeding the params doesn't match the adapter (SD 1.5 → ViT-H, bigG/vit-G → their own). Same fix as everywhere.
And the honest scoping note: don't build a params chain for a single reference. It's more nodes and more ways to break for zero benefit - use a plain apply node. The params route only pays off when you genuinely have multiple masked references. As with the rest of the pack, this is SD 1.5 / SDXL only and in maintenance mode.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| ipadapter | IPADAPTER | — | |
| ipadapter_params | IPADAPTER_PARAMS | — | |
| combine_embeds | COMBO | 5 options: concat, add, subtract, average, norm average | |
| embeds_scaling | COMBO | 4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty | |
| image_negativeopt | IMAGE | — | |
| clip_visionopt | CLIP_VISION | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |