IPAdapter Unified Loader FaceID
The one-node setup for face consistency
- model
- ipadapter
- MODEL
- ipadapter
FaceID is IP-Adapter's face-specialist line. Instead of a general CLIP embedding of your reference, it uses an InsightFace ArcFace embedding - a face-recognition vector that encodes actual facial geometry rather than "what the picture looks like." That's what lets it hold a consistent face across generations without training a LoRA. This loader is the node that sets the whole thing up in one place.
FaceID is fiddlier to wire than regular IP-Adapter because it needs three things loaded, not one: the FaceID adapter, a companion LoRA (almost every FaceID model requires a paired LoRA, and each one has its own specific LoRA), and InsightFace itself. The Unified Loader FaceID handles all three from a single preset, which is why it exists - doing it by hand with the separate loaders is genuinely error-prone.
Inputs and outputs
Feed it a model, pick a preset, and set two extras:
- preset -
FACEID,FACEID PLUS - SD1.5 only,FACEID PLUS V2,FACEID PORTRAIT (style transfer), orFACEID PORTRAIT UNNORM - SDXL only (strong). If you're unsure, FACEID PLUS V2 is the one the community actually settled on - it lets you dial face structure separately from identity. Portrait is the pick when you have several photos of the same person. - lora_strength - how hard the companion LoRA pulls, default 0.6. The usable range runs 0 to 1; somewhere in 0.5–1.0 is typical.
- provider - which backend InsightFace runs on: CPU, CUDA, ROCM, DirectML, OpenVINO, or CoreML. Pick CUDA on an NVIDIA card. If the GPU provider throws an error at load, CPU is the reliable fallback - face detection is cheap, so the speed hit is small.
It outputs a patched model and an ipadapter bundle. The ipadapter goes into a FaceID apply node like IPAdapter FaceID. As with the regular Unified Loader, there's an optional ipadapter input for chaining a second pass without reloading.
The two things everyone trips over
InsightFace has to be installed. It's a separate Python dependency and, for years, one of the most painful installs in the whole ComfyUI world - on Windows it meant compiling from source with Visual Studio build tools, and a huge share of "I gave up on ComfyUI" stories trace back to exactly this. The good news, if you're setting up today: InsightFace 1.0 (May 2026) finally dropped the C++ build requirement, so a fresh pip install insightface is far less likely to fight you. Still, if the FaceID nodes error out, insightface not being importable is the first suspect.
FaceID is non-commercial, and that's not the pack's choice. FaceID reads InsightFace's ArcFace weights, and InsightFace releases its models for non-commercial research only. That restriction flows straight through to anything built on it - FaceID, and for that matter InstantID, PuLID, and ReActor. If you're making something you intend to sell, FaceID is off the table; use the CLIP-based Plus Face / Full Face options from the regular Unified Loader instead, which capture a face without touching face recognition and stay Apache-2.0 clean.
Installing the pack
ComfyUI Manager: search "IPAdapter plus", install, restart. Or cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, then restart. On top of the base install, FaceID needs its models named exactly per the README and placed correctly: the FaceID adapters in ComfyUI/models/ipadapter, their companion LoRAs in ComfyUI/models/loras, plus insightface installed in your ComfyUI environment. Get the naming right and this node loads the matched set automatically; get it wrong and you're back to the "model not found" error.
A last honest note: FaceID gets you a recognizable face, not a photoreal one, and it's strongest on SD1.5 - the SDXL FaceID builds are widely reported as weaker. Good enough for stylized work; if you need true likeness, follow it with a pixel-level swap pass.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| preset | COMBO | 5 options: FACEID, FACEID PLUS - SD1.5 only, FACEID PLUS V2, FACEID PORTRAIT (style transfer), FACEID PORTRAIT UNNORM - SDXL only (strong) | |
| lora_strength | FLOAT | 0.600–1 | — |
| provider | COMBO | 6 options: CPU, CUDA, ROCM, DirectML, OpenVINO, CoreML | |
| ipadapteropt | IPADAPTER | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| ipadapter | IPADAPTER | — |