Nodes/ComfyUI_IPAdapter_plus/IPAdapter Embeds
ComfyUI Node Runs on cloud

IPAdapter Embeds

Apply a pre-computed reference embedding

By cubiq·Created 3 years ago·Updated about a year ago· 6,086
IPAdapter Embeds
  • model
  • ipadapter
  • pos_embed
  • neg_embed
  • attn_mask
  • clip_vision
  • MODEL
weight1.00
weight_type
start_at0.000
end_at1.000
embeds_scaling

IPAdapter Embeds is the apply node for when your reference is already an embedding, not an image. It's the consuming end of the pack's encode-then-apply split: IPAdapter Encoder (and optionally IPAdapter Combine Embeds) turn images into EMBEDS, and this node takes those and patches your model with them. If you've built a workflow around pre-encoded, blended references, this is where it all lands.

Functionally it's very close to IPAdapter Advanced - same job of injecting image conditioning into the model - but instead of an image input it takes pos_embed. Everything downstream of encoding is identical; you've just moved the CLIP-vision step earlier in the graph so you can reuse and combine embeddings first.

Inputs and outputs

The required connections: model, ipadapter, and pos_embed (the positive embedding, from the Encoder or a Combine node). Then the tuning:

  • weight - strength, default 1.0 (range −1 to 3). Same rule of thumb as always: often better a bit below 1.
  • weight_type - the full fifteen-curve menu (linear, the ease family, style transfer, composition, etc.).
  • start_at / end_at - the sampling window the effect runs over.
  • embeds_scaling - the attention-math control; leave on default until you have a reason.

Optionally, neg_embed supplies the paired negative embedding (the Encoder produces one - feed it through for a cleaner result), attn_mask confines the effect to a region, and clip_vision is there for completeness though your reference is already encoded. Output is a single patched MODEL for the KSampler.

Where it fits

Reach for this node when you've deliberately separated encoding from application - which you'd do to:

  • Combine multiple references first. Encode three or four images, blend them with IPAdapter Combine Embeds, then apply the single merged embedding here. This is the backbone of "average several photos into one robust identity" workflows.
  • Reuse an embedding across generations. Encode once, apply many times, without paying the CLIP-vision cost on every run.
  • Do embedding math. Because the input is a vector, you can add, subtract, or average references upstream to push or pull specific attributes before they ever reach the model.

If you just have one image and one generation, skip the whole embeds pipeline and use IPAdapter Advanced with a direct image input - it's fewer nodes for the same result. The embeds path is for when the flexibility of working with the raw vectors is worth the extra plumbing.

Installing the pack

ComfyUI Manager: search "IPAdapter plus" in the Custom Nodes Manager, install, restart. Or manually: 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) - the encoding upstream needs it even though this node consumes the finished embedding. Update ComfyUI if the node fails to load. SD1.5/SDXL only, no Flux.

Categoryipadapter/embeds

Inputs (11)

NameTypeDefaultDescription
modelMODEL
ipadapterIPADAPTER
pos_embedEMBEDS
weightFLOAT1.00-1–3
weight_typeCOMBO15 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +9
start_atFLOAT0.0000–1
end_atFLOAT1.0000–1
embeds_scalingCOMBO4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty
neg_embedoptEMBEDS
attn_maskoptMASK
clip_visionoptCLIP_VISION

Outputs (1)

NameTypeDescription
MODELMODEL