Nodes/ComfyUI_IPAdapter_plus/IPAdapter Batch (Adv.)
ComfyUI Node Runs on cloud

IPAdapter Batch (Adv.)

One reference per frame for animation

By cubiq·Created 3 years ago·Updated about a year ago· 6,086
IPAdapter Batch (Adv.)
  • model
  • ipadapter
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • MODEL
weight1.00
weight_type
start_at0.000
end_at1.000
embeds_scaling
encode_batch_size0

Here's the one-line difference from the regular Advanced node: IPAdapter Batch treats a stack of reference images as a sequence, one reference per output frame, instead of blending them all into a single embedding. That distinction is the whole reason it exists, and it's what makes it the go-to for image-prompt travel in AnimateDiff and other batch/video workflows.

Think about what you're doing in an animation. You've got, say, 48 latents in a batch, and you want the IP-Adapter influence to change over time - reference A at the start, morphing toward reference B by the end. Feed those two (or more) references through this node against a matching batch, and it lines them up frame-to-frame rather than mashing them into one averaged look. The plain Advanced node would just fuse them; Batch keeps them separate and sequential.

Inputs and outputs

The connections mirror the Advanced node: model, ipadapter, and image (here, your batch of references), out to a patched MODEL. The settings you'll actually touch:

  • weight - influence strength, default 1.0. Same guidance as always: often better a touch below 1.
  • weight_type - the full fifteen-curve menu (linear, the ease family, style transfer, composition, and the rest). For travel work, the interpolating curves are where this gets expressive.
  • start_at / end_at - the sampling window the effect covers.
  • encode_batch_size - the one setting specific to the batch nodes. It controls how many images get CLIP-encoded at once. Default 0 means "all in one go," which is fastest but hungriest on VRAM. If you're OOM-ing on a long sequence, set this to something like 4 or 8 to encode in chunks and trade a little speed for headroom.

embeds_scaling is the usual attention-math control. Optional inputs are image_negative, attn_mask, and clip_vision - the last only needed if your ipadapter didn't arrive with a CLIP vision model attached (i.e. you used the plain Model Loader rather than the Unified Loader).

Where it fits

This is an animation and prompt-travel tool first. In a typical AnimateDiff graph you'll see it paired with a batch of latents and a scheduler that ramps the references. For a single still image you don't need it - use IPAdapter Advanced. The value here is entirely in the temporal, one-image-per-frame handling.

A practical warning that comes with any batch node: memory. Encoding a big reference batch plus running an animation sampler is a real VRAM load, and this is exactly the situation encode_batch_size is there to rescue. If a run dies partway through with a CUDA out-of-memory error, drop that number before you touch anything else.

Installing the pack

ComfyUI Manager: Custom Nodes Manager, search "IPAdapter plus", install, restart. Or manually: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, then restart ComfyUI. You'll need a CLIP vision encoder in ComfyUI/models/clip_vision (ViT-H for SD1.5, ViT-bigG for SDXL) and an IP-Adapter model in ComfyUI/models/ipadapter. Update ComfyUI if any node in the pack fails to load. Note this is an SD1.5/SDXL pack - it won't run on Flux, so batch IP-Adapter travel lives in the SD1.5 and SDXL AnimateDiff world.

Categoryipadapter

Inputs (12)

NameTypeDefaultDescription
modelMODEL
ipadapterIPADAPTER
imageIMAGE
weightFLOAT1.00-1–5
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
encode_batch_sizeINT00–4096
image_negativeoptIMAGE
attn_maskoptMASK
clip_visionoptCLIP_VISION

Outputs (1)

NameTypeDescription
MODELMODEL