IPAdapter Combine Embeds V2
Mix pre-encoded references without re-encoding
- embed1
- embed2
- embed3
- embed4
- embed5
- EMBEDS
IPAdapter Combine Embeds V2 is the glue node for the embeds half of this pack. If you've encoded reference images ahead of time with IPAdapter Encoder V2 (or loaded them with IPAdapter Load Embeds V2), this is where you blend them into one conditioning. It's a pure math node - no model patching, no image encoding, nothing to download - and that's exactly why it's useful: you can mix five references and only pay the CLIP vision cost once, at encode time.
How it works
embed1 is required; embed2 through embed5 are optional. The method enum decides how they merge: concat stacks them into one longer sequence (the model sees all of them as separate references), add sums them into one vector, subtract takes the first and subtracts the average of the rest (a genuine "like this, but not like this" trick), average and norm average blend toward a middle - with norm average normalizing each embedding first so a loud image can't dominate. max and min are the element-wise extremes. One EMBEDS output feeds the pos_embed input of IPAdapter Embeds V2.
When you'd actually use it
Two common setups. First, style blending: encode a texture reference and a color reference separately, then average them into one embedding that carries both. Second, the subtract trick for exclusion: "keep the mood of image A, drop what image B brought in." The order of operations matters - subtract uses embed1 as the base and subtracts the mean of the rest, so which slot you plug which image into changes the result. For a plain multi-reference look, concat is the most predictable because it doesn't average anything away.
Installing it
ComfyUI Manager: search "ComfyUI_IPAdapter_plus_V2". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/chflame163/ComfyUI_IPAdapter_plus_V2
Restart ComfyUI. No model files needed for this node itself - it only passes tensors around.
Gotchas
Embeddings must be compatible to combine meaningfully: they all came from CLIP vision at the same resolution (224×224 for SD1.5/SDXL), so as long as they were encoded by the same pack they'll match. The subtle trap is concat with a single embed - the node just passes it through, which is fine, but it's also the signal that you wired something extra you didn't need. And remember this pack is a renamed snapshot of cubiq's V2 codebase, so it tracks that codebase's state, not any upstream fixes.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| embed1 | EMBEDS | — | |
| method | COMBO | 7 options: concat, add, subtract, average, norm average, max, +1 | |
| embed2opt | EMBEDS | — | |
| embed3opt | EMBEDS | — | |
| embed4opt | EMBEDS | — | |
| embed5opt | EMBEDS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| EMBEDS | EMBEDS | — |