Nodes/comfyui-anima-ipadapter/Anima SigLIP2 Encode Image
ComfyUI Node

Anima SigLIP2 Encode Image

Turn a reference into what the IP-Adapter actually reads

By Wenaka2004·Created 4 months ago·Updated 4 months ago· 58
Anima SigLIP2 Encode Image
  • image
  • SIGLIP_FEATURES

The reference image you want Anima to copy doesn't go into the model directly. It goes through a vision encoder first, and this node is that encoder. Anima SigLIP2 Encode Image (yes, the display name is misspelled "Siglipe", it's fine) takes any ComfyUI IMAGE and returns the SIGLIP_FEATURES that Anima IP-Adapter Apply feeds to the resampler.

What it actually does

It loads Google's siglip2-base-patch16-512, runs your image through it, and hands back the patch features. Three things to know about how it prepares the image:

  • It pads to a square with a white border, then resizes to 512×512. So a non-square reference gets letterboxed, not cropped - which matters if your reference is a tall character sheet; the border becomes part of what the model "sees" at the edges.
  • The output is the model's last_hidden_state - patch features [1, N, 768] - not a single pooled vector. The resampler downstream wants the per-patch detail, so don't expect a neat 1024-dim embedding like the old Qwen3-VL pipeline produced. These are different animals.
  • It's bfloat16 and hardcoded to .cuda(). No CPU path, no fp32 option - you need an NVIDIA GPU. SigLIP2-base is small (a few hundred MB of weights, not the ~4GB Qwen3-VL the pack's older README describes), but it does sit resident in VRAM on top of Anima while it's loaded.

The model is lazy-loaded on first run, which is the one thing that will actually make you think the node is broken: the first encode downloads google/siglip2-base-patch16-512 from HuggingFace and can take a while, with the UI appearing frozen. Let it finish; it's one-time.

Inputs and output

One input: image, a standard ComfyUI IMAGE tensor - wire in whatever Load Image node you already use for reference pictures. One output: SIGLIP_FEATURES, which goes into the siglip_features socket on Anima IP-Adapter Apply. The workflow is dead simple:

Load Image → Anima SigLIP2 Encode Image → Anima IP-Adapter Apply → KSampler

The honest trade-off

Encoding on the fly costs you the SigLIP2 model resident in VRAM while you sample. That's the price of the "just drop in any reference" convenience. If you're tight on VRAM and generating the same character repeatedly, the alternative is to precompute embeddings offline and skip this node entirely - though as of the current pack build, the Apply node only accepts live SIGLIP_FEATURES, so there's no precomputed .pt path to swap to yet. Don't treat the legacy Anima Image Embedding Loader as that swap-in; it outputs a different type the current Apply node won't accept.

Troubleshooting in one line: no output and the UI seems stuck = first-run SigLIP2 download; out-of-memory = the encode node plus Anima together exceed your VRAM, run the encode, cache the result, and consider offloading.

Categoryanima_ipadapter

Inputs (1)

NameTypeDefaultDescription
imageIMAGE

Outputs (1)

NameTypeDescription
SIGLIP_FEATURESSIGLIP_FEATURES