Nodes/ComfyUI_IPAdapter_plus/IPAdapter InsightFace Loader
ComfyUI Node Runs on cloud

IPAdapter InsightFace Loader

Load the face model FaceID needs

By cubiq·Created 3 years ago·Updated about a year ago· 6,086
IPAdapter InsightFace Loader
    • INSIGHTFACE
    provider
    model_name

    This little node loads InsightFace - the face-analysis library that every FaceID workflow depends on - and hands out an INSIGHTFACE object you plug into a FaceID apply node. You only need it when you're building a FaceID graph the manual way, without the Unified Loader FaceID (which loads InsightFace for you). If you're wiring FaceID from the plain Model Loader, this is the node that supplies the missing piece.

    Why FaceID needs it at all

    Regular IP-Adapter reads your reference with CLIP vision, which captures general appearance. FaceID doesn't - it runs the face through InsightFace to produce an ArcFace embedding, a face-recognition vector that encodes facial geometry rather than looks. That embedding is the whole reason FaceID holds an identity better than CLIP-based image prompting. InsightFace's job here is narrow: detect the face, align it, and turn it into that vector. It generates nothing; it's a pure recognition step. But without it, FaceID has no identity signal to inject.

    Inputs and outputs

    Two settings:

    • provider - the compute backend InsightFace runs on: CPU, CUDA, or ROCM. Use CUDA on an NVIDIA card. If CUDA errors at load (a common ONNX-runtime mismatch), fall back to CPU - face detection is light enough that the speed difference barely registers.
    • model_name - the InsightFace model pack, either buffalo_l or antelopev2. buffalo_l is the default and auto-downloads on first run. antelopev2 is more accurate but is not auto-downloaded - you have to fetch it by hand and drop it in the right InsightFace models folder, which is a recurring source of broken workflows. For standard cubiq FaceID, buffalo_l is what you want; antelopev2 is mainly needed by things like Kolors FaceID and InstantID.

    The single output, INSIGHTFACE, wires into the insightface input on a FaceID apply node such as IPAdapter FaceID.

    The install and the license, both worth knowing

    InsightFace is a separate Python package, and for years it was the single ugliest dependency in the ComfyUI ecosystem - on Windows it wanted a full C++ toolchain to compile from source, and countless "I'm done with ComfyUI" threads bottomed out on exactly this install. If you're setting up now, InsightFace 1.0 (May 2026) dropped that C++ build requirement, so a plain pip install insightface is far more likely to just work. If this node errors, InsightFace not being importable is the first thing to check.

    The license is the other half. InsightFace's code is MIT, but its models - the weights this node loads - are released for non-commercial research only. That restriction is inherited by anything that reads those embeddings, which means FaceID, and equally InstantID, PuLID, and ReActor. People routinely get this wrong and assume "it says MIT, so I'm fine." You're not, if you load the weights. For personal and research work it's a non-issue; for anything you plan to sell, you either license the weights or avoid the whole face-recognition path (the CLIP-based Plus Face / Full Face adapters don't touch InsightFace).

    Installing the pack

    Manager route: search "IPAdapter plus", install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, restart. Then make sure insightface is installed in your ComfyUI Python environment. Most of the time you won't wire this node directly - the Unified Loader FaceID bundles InsightFace for you - but when you need explicit control over the provider or the model pack, this is where it lives.

    Categoryipadapter/loaders

    Inputs (2)

    NameTypeDefaultDescription
    providerCOMBO3 options: CPU, CUDA, ROCM
    model_nameCOMBO2 options: buffalo_l, antelopev2

    Outputs (1)

    NameTypeDescription
    INSIGHTFACEINSIGHTFACE