Nodes/ComfyUI_IPAdapter_plus/IPAdapter Embeds Batch
ComfyUI Node Runs on cloud

IPAdapter Embeds Batch

Apply a precomputed reference, skip the encode

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

Most IPAdapter apply nodes take an image and encode it on the spot. This one takes an already-encoded embedding instead. It's the apply node for the precompute workflow: you turned a reference into embeds earlier (with an encoder node, and maybe saved them to disk with Save Embeds), and now you want to apply those embeds directly without re-running CLIP vision. The "Batch" variant is the one for batched/animation contexts, where re-encoding the same reference over and over would be wasted work.

Two situations make this worth using. One, speed and repeatability - feed the same cached embed every run and you skip the encode each time, and you know the conditioning is byte-for-byte identical. Two, control - because you're passing pos_embed and neg_embed as separate wires, you can build, blend, or hand-craft embeddings upstream in ways the image-in nodes don't expose. It's a more advanced entry point into the same machinery.

How it works

It takes your model, the loaded ipadapter, and a pos_embed (the positive reference embedding), and injects that embedding straight into the model's cross-attention - no image, no encoder pass - returning a patched MODEL. An optional neg_embed supplies a negative reference embedding for pushing away from a look. Everything else is the standard apply surface.

The inputs that matter

  • pos_embed - the encoded reference, type EMBEDS. This is the whole point of the node; it comes from an encoder node or an IPAdapter Load Embeds node.
  • neg_embed (optional) - an embedding to steer away from, same type.
  • weight - strength, default 1.0. The usual "ease down if the prompt stops mattering" applies.
  • weight_type - the profile enum (linear, ease curves, style transfer, composition, and so on).

start_at / end_at gate when the adapter is active, and embeds_scaling is the injection math - both safe at defaults. Optional attn_mask and clip_vision cover masking and feeding the encoder explicitly. Output is a single MODEL into your sampler.

Installing the pack

ComfyUI Manager: search ComfyUI IPAdapter plus, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus

then restart and keep ComfyUI updated. The adapter weights still need to be in ComfyUI/models/ipadapter. Interestingly, this node doesn't touch a CLIP vision encoder at apply time - the encoding already happened upstream - but whatever produced your embeds did, so you'll have needed the encoders in ComfyUI/models/clip_vision at that point.

Where people get burned

The one rule that matters: an embedding carries the fingerprint of the exact encoder and adapter that made it. Hand this node an embed that was encoded for a different family (SD 1.5 ViT-H vs SDXL bigG) and it'll throw a shape mismatch - the same class of error as the classic ClipVision/IPAdapter mismatch, just arriving through the embeds door. Keep your embeds and your adapter in the same family and it's clean.

The other trip-up is simply not having a valid embed to feed it. If pos_embed is empty or you wired an image where an EMBEDS was expected, the node has nothing to apply. You need an encoder or a Load Embeds node upstream. And as always with this pack: SD 1.5 / SDXL only, maintenance mode, nothing for 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