Nodes/comfyui-instantId-faceswap/Load instantId adapter
ComfyUI Node

Load instantId adapter

Getting the InstantID weights into your graph

By nosiu·Created 3 years ago·Updated about a year ago· 264
Load instantId adapter
    • InstantId_adapter
    • resampler
    ipadapter

    One dropdown, two outputs, and it's the node that actually pulls InstantID's own weights into your workflow - as opposed to LoadInsightface, which loads the detection side. This is the identity-injection side: the adapter and resampler that InstantID trained specifically to take an ArcFace face embedding and get it into an SDXL model's cross-attention.

    What the two outputs are for

    InstantID ships these as one file (ip-adapter.bin) but this node splits it into two things you use separately:

    • InstantId_adapter (INSTANTID_ADAPTER) - feeds InstantIdAdapterApply, which patches your diffusion model directly so it leans toward the reference face during denoising.
    • resampler (RESAMPLER) - feeds FaceEmbedCombine, where it reshapes raw face embeddings into face_conditioning for both the adapter and IdentityNet (the ControlNet half) to consume.

    They're two halves of the same weights doing genuinely different jobs, which is why this pack keeps them as separate outputs rather than bundling everything into one mega-node.

    The one input that matters

    • ipadapter - an enum dropdown populated from whatever's sitting in models/ipadapter. Tooltip straight from the node itself: "The default folder where the adapter is searched for is: models/ipadapter." If the dropdown is empty, the file isn't there yet - that's the whole troubleshooting story for this node, basically.

    Install

    Search comfyui-instantId-faceswap in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/nosiu/comfyui-instantId-faceswap
    pip install -r comfyui-instantId-faceswap/requirements.txt
    

    Then the model this specific node needs: download ip-adapter.bin from InstantX/InstantID on Hugging Face and drop it into ComfyUI/models/ipadapter. If you keep your IP-Adapter files somewhere else already, edit extra_model_paths.yaml to point ipadapter: at that folder instead of duplicating the file - the README notes explicitly that you don't have to use the exact folder layout it suggests.

    Common issues & troubleshooting

    Empty or missing dropdown. The node reads whatever's physically in models/ipadapter (or wherever your extra_model_paths.yaml redirects it) at ComfyUI startup. Drop the file in after ComfyUI's already running and it won't show up until you restart.

    Works on SDXL only. InstantID never got a Flux port and the reference implementation has been dormant since mid-2024 - this pack, and this adapter file specifically, are built for SDXL checkpoints. Don't spend time debugging why it "doesn't work" on a Flux or SD 1.5 model; it was never going to.

    License reminder, since this is the file that carries it. ip-adapter.bin is released for research purposes, and it depends on InsightFace's ArcFace embeddings underneath, which are non-commercial. Great for personal projects and experimentation, not something to build a paid product on top of without separately licensing the InsightFace weights.

    One node, but don't skip it even if you're not using the adapter apply step. The README calls InstantIdAdapterApply optional - you can get good results without patching the model - but you still need this loader for the resampler output, since FaceEmbedCombine can't run without it. There's no way to build face_conditioning that skips this node entirely.

    CategoryInstantId Faceswap

    Inputs (1)

    NameTypeDefaultDescription
    ipadapterCOMBOThe default folder where the adapter is searched for is: models/ipadapter.

    Outputs (2)

    NameTypeDescription
    InstantId_adapterINSTANTID_ADAPTER
    resamplerRESAMPLER