Nodes/ComfyUI-WithAnyone/WithAnyone SigLIP Embedding Extractor
ComfyUI Node

WithAnyone SigLIP Embedding Extractor

The details ArcFace forgets

By okdalto·Created 10 months ago·Updated 9 months ago· 26
WithAnyone SigLIP Embedding Extractor
  • withAnyone_pipeline
  • arcface_infos
  • siglip_embeddings

WithAnyone conditions each reference face on two embeddings, and they split the labor unevenly. The ArcFace embedding knows who the person is - facial geometry, the biometric core of identity - but it's blind to everything else. Hairstyle, glasses, makeup, that one facial expression, the earring: all of it falls out of an ArcFace vector. This node is the half that catches those details. It runs the reference through SigLIP, a general image encoder that captures mid-level semantic information, and hands you a SIGLIP_INFOS bundle that remembers what the photo looked like, not just whose face was in it.

That's why the two extractors form a pair, and why they have to run in order: this node takes arcface_infos as its input - not your original image. The ArcFace node already cropped and aligned the face, and SigLIP wants that clean crop, not your raw upload.

Inputs and output

  • withAnyone_pipeline - from the Model Loader. It carries the SigLIP embedder.
  • arcface_infos - the output of the WithAnyone ArcFace Embedding Extractor. The node uses the cropped reference faces stored inside it.

One output, siglip_embeddings - the SigLIP embeddings (256×768 tokens per face, for the curious). In the sampler, the weight of these embeddings is exactly what the siglip_weight slider controls: push it up and the output copies more of the reference's details; pull it down and ArcFace's identity runs the show with more stylistic freedom.

The honest part, again

Like its ArcFace counterpart, this node doesn't appear in the shipped example workflows. The WithAnyone Single Person Conditioning node runs both embeddings internally and packages them into the PERSON_CONDITIONING object the sampler actually consumes. So this extractor - and the ArcFace one feeding it - is the modular, inspect-the-internals route. Use it when you want to see the embeddings, debug identity quality, or build custom conditioning. For a working workflow, skip straight to Single Person Conditioning.

Installing and prerequisites

It's part of the WithAnyone pack, so installation is pack-level:

cd ComfyUI/custom_nodes
git clone https://github.com/okdalto/ComfyUI-WithAnyone
cd ComfyUI-WithAnyone
pip install -r requirements.txt

The one thing to check by hand: the SigLIP model itself. It's not auto-downloaded. You need the multilingual SigLIP cloned into ComfyUI/models/diffusers (a folder, not a file):

cd ComfyUI/models/diffusers
git clone https://huggingface.co/google/siglip-base-patch16-256-multilingual

If that folder isn't there, the Model Loader's siglip_name dropdown is empty and this node has nothing to run on - one of the more confusing first-run failures because the error only shows up downstream. The SigLIP model is MIT/Apache-licensed, so it's the rare part of this stack with no licensing asterisk; the ArcFace half is where the commercial-use restrictions live.

One practical note: this node is cheap relative to the rest of the pipeline - SigLIP is a small model. The heavy cost in this pack is Flux itself, so don't expect the extractor to be your bottleneck.

Categorysd

Inputs (2)

NameTypeDefaultDescription
withAnyone_pipelineWITHANYONE_PIPELINE
arcface_infosARCFACE_INFOS

Outputs (1)

NameTypeDescription
siglip_embeddingsSIGLIP_INFOS