WithAnyone Model Loader
WithAnyone's front door — and the node that does the messy downloads
- withAnyone_pipeline
Every other WithAnyone node demands a withAnyone_pipeline on its input, and this is the only node that makes one. Think of it as the pack's checkpoint loader: it assembles the Flux base model, the WithAnyone identity adapter, the SigLIP image encoder, and the InsightFace face extractor into one object, then hands it down the graph. Nothing else in the pack runs until this node does.
The four inputs, and what each one means
Three are model selectors that read the dropdowns from your models folder:
- ipa_name - the WithAnyone adapter file (
withanyone.safetensors), frommodels/diffusion_models. This is the actual research contribution: a small identity adapter trained to steer Flux. Its whole job is taking ArcFace + SigLIP embeddings and turning them into image guidance, which is why the pipeline loads it as a LoRA-style adapter (rank 64) rather than a full model. - flux_name - the Flux.1 dev model file (
flux1-dev.safetensors), also frommodels/diffusion_models. The 12B base that does the drawing. - siglip_name - a folder, not a file, from
models/diffusers. It's the SigLIP embedder (the multilingualsiglip-base-patch16-256clone from the README), and the loader lists whatever directories you've dropped there.
Then the two optional ones:
- lora_name - pick any LoRA from
models/lorasto merge in, or leave it at the defaultNone. - lora_weight - 0.8 by default. This controls how strongly the LoRA steers the result; the README explicitly recommends adding a stylization LoRA to make outputs look less like raw Flux defaults.
The output is a single withAnyone_pipeline object. It doesn't render anything on its own - it's the shared brain that every other node draws from.
What you actually have to download
The loader reads files that the README tells you to fetch by hand. Before your first run, get all of these:
# clip
wget https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors
wget https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors
# diffusion models
wget https://huggingface.co/bstungnguyen/Flux/resolve/main/flux1-dev.safetensors
wget https://huggingface.co/WithAnyone/WithAnyone/resolve/main/withanyone.safetensors
# vae
wget https://huggingface.co/bstungnguyen/Flux/resolve/main/vae/diffusion_pytorch_model.safetensors
# siglip (as a folder in models/diffusers)
git clone https://huggingface.co/google/siglip-base-patch16-256-multilingual
That's roughly 50GB of checkpoints if you include both Flux text encoders - budget for it. And note the Flux.1 dev license is non-commercial, so this whole stack is for personal and research use, same as the ArcFace weights it depends on.
Installation and the one real gotcha
cd ComfyUI/custom_nodes
git clone https://github.com/okdalto/ComfyUI-WithAnyone
cd ComfyUI-WithAnyone
pip install -r requirements.txt
The loader automatically downloads the ArcFace model (antelopev2) into custom_nodes/ComfyUI-WithAnyone/models/ - and it also auto-fixes the pack's single most famous bug. ArcFace sometimes lands in a nested antelopev2/antelopev2/ folder structure, which makes InsightFace throw assert 'detection' in self.models. The loader detects that, shuffles the files to the right place, and retries. If you ever see that error anyway, do the move by hand: models/antelopev2/antelopev2/* needs to become models/antelopev2/*.
Expect a long first load and significant VRAM. This is a full Flux stack plus an extra adapter - if it won't fit in one go, the soft_empty_cache() call before loading is the pack doing its best to make room.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| ipa_name | COMBO | 0 options: | |
| flux_name | COMBO | 0 options: | |
| siglip_name | COMBO | 0 options: | |
| lora_nameopt | COMBO | 1 options: None | |
| lora_weightopt | FLOAT | 0.800–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| withAnyone_pipeline | WITHANYONE_PIPELINE | — |