Skip to main content

IP-Adapter Face: Setup, Models and Settings for Personas

IP-Adapter face models decoded: Plus Face, Full Face and FaceID files for SD 1.5 and SDXL, what exists for Flux, the ComfyUI setup and documented settings.

Founder of IImagined.ai

Published
Oct 11, 2026
Reading time
12 min read
Quick answer

IP-Adapter face models condition a Stable Diffusion image on a photo of a face with no training. For an SDXL persona the file to start with is ip-adapter-plus-face_sdxl_vit-h, paired with the ViT-H image encoder and a weight near 0.8. The FaceID variants add an InsightFace identity embedding but are released for research only, and there is no IP-Adapter face model for Flux.

IP-Adapter face models condition a Stable Diffusion generation on a photo of a face instead of training on it, and for an SDXL persona the file to start with is ip-adapter-plus-face_sdxl_vit-h. Load it in ComfyUI with the PLUS FACE (portraits) preset, pair it with the ViT-H image encoder and set the weight near 0.8. There is no IP-Adapter face file for Flux.

File names, node names, defaults and licenses checked October 2026 against the IP-Adapter and IP-Adapter-FaceID model cards, the IP-Adapter repository, the ComfyUI_IPAdapter_plus README and node source, InsightFace, and the XLabs and InstantX Flux IP-Adapter cards. Settings are node defaults and the maintainers' advice, not results from a test of ours.

Half the trouble with IP-Adapter is knowing which of a dozen similarly named files you need. This page decodes the names, picks the file for each base model, walks through the ComfyUI setup and lists the settings the maintainers document. For where IP-Adapter sits beside LoRAs, hosted reference models and face swap, see our consistent character AI guide.

What an IP-Adapter face model actually reads

IP-Adapter is an image prompt: the reference goes through an image encoder and joins the text prompt as extra conditioning. The ComfyUI pack's README describes the result as a "1-image lora". Nothing is trained, and nothing is stored between runs.

From face crop to conditioned image
  1. 01
    Face crop

    A tight, square crop of your approved hero image

  2. 02
    Image encoder

    OpenCLIP ViT-H turns the crop into patch embeddings

  3. 03
    Plus Face adapter

    Maps the embeddings into the checkpoint's attention

  4. 04
    Checkpoint and prompt

    SD 1.5 or SDXL draws the scene you describe

  5. 05
    Image

    A new picture that carries the face from the crop

Because the face arrives as a picture, the picture's hair, lighting and expression arrive with it. The FaceID family changes that first step: it replaces the image embedding with a face-recognition embedding from InsightFace, which describes who the person is and not how one photo looks.

IP-Adapter face model names, decoded

Every file name is a list of parts. Read them left to right and you know what the file does and what it needs beside it.

Part of the nameWhat it tells you
plusPatch image embeddings instead of one global embedding. Closer to the reference image
faceTrained with a cropped face as the condition
full-faceAn SD 1.5 face model the ComfyUI README calls stronger, "not necessarily better"
faceidA face-recognition embedding from InsightFace replaces the CLIP image embedding
plusv2FaceID embedding plus a CLIP image embedding for face structure, with an adjustable weight
portraitFaceID for portraits: accepts several face images (five by default), no LoRA
sd15 / sdxlThe base model family the file was trained for. They do not cross over
vit-h / vit-GThe image encoder to pair it with. vit-h means the smaller ViT-H encoder, even on SDXL

Put together, the files a persona builder chooses between are these. Licenses are as each model page states them.

FileBaseNeedsLicenseUse it for
ip-adapter-plus-face_sdxl_vit-h.safetensorsSDXLViT-H encoderApache 2.0 model pageThe default for an SDXL persona
ip-adapter-plus-face_sd15.safetensorsSD 1.5ViT-H encoderApache 2.0 model pageOld hardware and quick tests
ip-adapter-full-face_sd15.safetensorsSD 1.5ViT-H encoderApache 2.0 model pageA stronger pull on SD 1.5
ip-adapter-faceid-plusv2_sdxl.binSDXLInsightFace, ViT-H encoder, paired LoRAResearch onlyIdentity embedding plus face structure
ip-adapter-faceid_sdxl.binSDXLInsightFace, paired LoRAResearch onlyBase FaceID
ip-adapter-faceid-portrait_sdxl.binSDXLInsightFaceResearch onlySeveral photos of one face, no LoRA
ip-adapter-faceid-plusv2_sd15.binSD 1.5InsightFace, ViT-H encoder, paired LoRAResearch onlyThe SD 1.5 version of Plus V2

The model page also carries SD 1.5 portrait files and a second SDXL portrait file, ip-adapter-faceid-portrait_sdxl_unnorm, which the README describes as very strong style transfer. The deprecated FaceID Plus v1 files are still listed; skip them.

ip-adapter-plus-face SDXL: the file most personas need

ip-adapter-plus-face_sdxl_vit-h.safetensors is 0.85GB and lives in the sdxl_models folder of the h94/IP-Adapter page. The model card defines it by reference: the same as the SDXL Plus model, but with a cropped face image as the condition.

  • It pairs with the ViT-H encoder. The vit-h in the name means the smaller OpenCLIP ViT-H encoder that the SD 1.5 models use, a 2.53GB download. The 3.69GB bigG encoder is for ip-adapter_sdxl and the ViT-G models only.
  • It needs no InsightFace. No face-recognition library, no extra LoRA, no research-only face model.
  • It wants a crop. Feed it the face, not the whole photo. The pack ships a Prep Image For ClipVision node with a crop position and a sharpening value for this.

Which IP-Adapter face variant for SD 1.5, SDXL and Flux

Pick by base model first and license second. The top row is the family you can read one clear license for.

Face variant by base model and license
Plain face models, Apache 2.0
ip-adapter-plus-face_sd15, or full-face_sd15 for a stronger pull
ip-adapter-plus-face_sdxl_vit-h with the ViT-H encoder
FaceID family, research only
faceid-plusv2_sd15 with its LoRA, or portrait-v11 when you have several photos
faceid-plusv2_sdxl with its LoRA, or portrait_sdxl when you have several photos
SD 1.5 checkpoint
SDXL checkpoint

Flux has no row because there is no file to put in it. The original IP-Adapter releases stop at SDXL. Two third-party IP-Adapters target FLUX.1 [dev]: XLabs' flux-ip-adapter-v2, which its card calls a beta, and InstantX's FLUX.1-dev-IP-Adapter, which its card calls a regular IP-Adapter. Both are general image prompts with their own node packs, not face models, and both fall under the FLUX.1 [dev] non-commercial license. For a face on Flux, use PuLID for Flux, or skip adapters and use FLUX.2's reference images as described in our Flux consistent character guide.

Pre-flight checklist

Before you download
  • ComfyUI updated; the pack's README says IPAdapter always requires the latest version
  • An SD 1.5 or SDXL checkpoint chosen, and its license read
  • About 3.4GB of disk for the SDXL face file and the ViT-H encoder
  • A sharp, front-facing hero image of an original persona or your own face
  • A square face crop of that hero, saved as its own file
  • A fixed identity block for the prompt: age range, hair, eyes, two distinguishing marks
  • For FaceID only: insightface installed, and research-only terms accepted

On whose face: the IP-Adapter repository's disclaimer says users are "expected to comply with local laws and utilize it in a responsible manner". Build on an original AI persona or your own face, and never on a real person who has not agreed. Our AI likeness rights guide covers the lines.

IP-Adapter face setup in ComfyUI, step by step

Plus Face on SDXL
  1. 1
    Install ComfyUI_IPAdapter_plus

    Through ComfyUI-Manager or git clone into custom_nodes. Expected result: an ipadapter category in the node menu.

  2. 2
    Download and rename the ViT-H encoder

    Save it as CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors in ComfyUI/models/clip_vision.

  3. 3
    Download the face model

    ip-adapter-plus-face_sdxl_vit-h.safetensors into ComfyUI/models/ipadapter. Create the folder if it is not there.

  4. 4
    Add the Unified Loader

    IPAdapter Unified Loader after Load Checkpoint, preset PLUS FACE (portraits). Expected result: it loads with no missing-model error.

  5. 5
    Add the IPAdapter node

    IPAdapter Advanced, or the basic IPAdapter. Connect the loader's model and ipadapter outputs and your face crop.

  6. 6
    Set weight to 0.8

    The default is 1.0. The README's general advice is 0.8 or lower with more steps.

  7. 7
    Prompt with the identity block

    Identity block first, then the scene. Fix the seed while you test.

  8. 8
    Compare with the hero

    Expected result: the same face in a new scene. If the prompt is ignored, change the weight type before lowering the weight further.

Load Checkpoint (SDXL) -> IPAdapter Unified Loader  [preset: PLUS FACE (portraits)] -> IPAdapter Advanced  [image: face crop | weight: 0.8 | weight_type | start_at: 0 | end_at: 1] -> KSampler  [positive: identity block + scene | fixed seed while testing] -> VAE Decode -> Save Image

The adapter patches the model, so it sits on the model line between the checkpoint and the sampler. If you have not used the manager before, our ComfyUI-Manager install guide covers it. One caution for production graphs: the pack has been in maintenance-only mode since April 14, 2025, so keep a copy of the ComfyUI version your graph was built on.

IP-Adapter FaceID in ComfyUI: what changes

FaceID swaps the picture for an identity embedding, which costs three extra pieces and a stricter license.

  1. Install insightface in ComfyUI's Python environment. The README links a help thread for this step. Expected result: ComfyUI starts with no import error.
  2. Place the model and its LoRA. The FaceID file goes in models/ipadapter and the matching _lora.safetensors in models/loras. The README warns that each FaceID model must be paired with its own LoRA.
  3. Use IPAdapter Unified Loader FaceID. Choose FACEID, FACEID PLUS V2 or a portrait preset, set the provider (CPU or CUDA among others), and the loader applies the LoRA at a default strength of 0.6.
  4. Use the IPAdapter FaceID node. It adds weight_faceidv2, the face-structure weight for Plus V2. Expected result: a face that follows identity more than the reference photo's lighting.

The model card is plain about the limits: the models "do not achieve perfect photorealism and ID consistency", and they are "released exclusively for research purposes" and not intended for commercial use, because InsightFace's pretrained models are non-commercial. InsightFace's README lists an email address for licensing its recognition models. If a persona earns money, stay on the plain Plus Face file or clear those terms first.

Settings: defaults and documented advice

We have not run a scored settings test. These are the node defaults from the pack's source and the advice its README and the model cards give.

SettingDefaultDocumented advice
weight1.0Lower it to at least 0.8 and raise the number of steps
weight_typestandard, or linear on the Advanced nodeChange it for more prompt adherence. The basic node offers "prompt is more important"
start_at and end_at0.0 and 1.0The part of the sampling schedule where the adapter applies
combine_embedsconcatHow several reference images are merged: concat, add, subtract, average or norm average
lora_strength (FaceID loader)0.6Strength of the paired FaceID LoRA the loader applies
weight_faceidv2 (FaceID node)1.0The face-structure weight of Plus V2. The model card says adjusting it gives different generations

Change one value per run with the seed fixed, and judge on a three-quarter view as well as a portrait. A front-facing portrait flatters every setting.

IP-Adapter face consistency: what holds it and what weakens it

Same adapter, different results
Weakens the face
  • A full-body photo as the reference instead of a face crop
  • Weight left at 1.0, so the reference overrides the prompt
  • A different reference image for each batch
  • The bigG encoder paired with a vit-h model file
  • A FaceID model loaded without its paired LoRA
  • Judging likeness on a wide shot with no detailer pass
Holds the face
  • A tight, sharp, front-facing crop of the approved hero
  • Weight near 0.8 with a few more steps
  • One reference set, reused for every image
  • File names exactly as the README lists them
  • The FaceID Unified Loader, which loads the matching LoRA
  • A detailer pass that reuses the same adapter
  • Several references beat one. The Advanced node takes a batch of images and merges them with combine_embeds. Three approved views give the adapter more of the face than one photo can.
  • Pose is a separate job. IP-Adapter carries a look, not a skeleton. Pair it with an OpenPose ControlNet from our ControlNet guide; the pose-lock workflow shows the full routine.
  • Small faces need a second pass. The detailer chain and the full graph templates are in our ComfyUI consistent character workflow.
  • Stubborn drift has other causes. Our AI face consistency guide lists them with the setting to change for each.

When IP-Adapter is not enough

IP-Adapter is the lightest local method and the one with the cleanest license, which is why it is a good first step. When the face keeps borrowing the reference's hair and light, an identity adapter reads it differently: see our InstantID guide for SDXL. For the other no-training routes, ranked, see consistent characters without a LoRA. When you need hundreds of images across every angle, train a LoRA on your approved outputs; face LoRA vs InstantID vs IP-Adapter has the decision table. The AI Influencers program goes deeper where this page stops, with lessons on Flux and SDXL setup, LoRA training for consistent faces and body consistency with ControlNet.

IP-Adapter face: FAQ

What is IP-Adapter Plus Face?

IP-Adapter Plus Face is an image-prompt adapter for Stable Diffusion that takes a cropped face image as its condition. The model card describes it as the Plus model, which uses patch image embeddings from the OpenCLIP ViT-H encoder, trained on cropped faces. It exists for SD 1.5 and SDXL, needs no InsightFace, and the model page is licensed Apache 2.0.

Which IP-Adapter face model should I use for SDXL?

Start with ip-adapter-plus-face_sdxl_vit-h.safetensors, loaded through the PLUS FACE (portraits) preset. It pairs with the ViT-H image encoder, not the larger bigG one. If you accept research-only terms and want an identity embedding instead of an image prompt, the SDXL FaceID options are ip-adapter-faceid_sdxl and ip-adapter-faceid-plusv2_sdxl, each with its own paired LoRA.

Is there an IP-Adapter face model for Flux?

No face-specific one. The original IP-Adapter team released models for SD 1.5 and SDXL only. Two third-party IP-Adapters exist for FLUX.1 dev, from XLabs and InstantX; both are general image-prompt models under the FLUX.1 dev non-commercial license. For a face on Flux, PuLID-FLUX is the identity adapter, and FLUX.2 reads reference images natively.

What is the difference between IP-Adapter Plus Face and FaceID?

Plus Face reads the face as a picture: CLIP image embeddings of a cropped face, so hair, light and expression come along. FaceID reads it as an identity: a face-recognition embedding from InsightFace, with a LoRA to improve consistency. FaceID Plus V2 uses both. FaceID models need InsightFace installed and are released for research, not commercial use.

Can I use IP-Adapter face models commercially?

It depends on the family. The plain IP-Adapter models, including Plus Face and Full Face, sit on a model page licensed Apache 2.0. The FaceID model card says those models are released exclusively for research purposes and are not intended for commercial use, because InsightFace's pretrained models are non-commercial. Your base checkpoint has its own license too.

What weight should I use for IP-Adapter face?

The IPAdapter nodes default to 1.0, and the maintainer's advice is to lower the weight to at least 0.8 and raise the number of steps. If the prompt is being ignored, change the weight type: the basic node offers a setting called prompt is more important. We have not scored settings ourselves, so tune from there on your own hero image.

How do I set up IP-Adapter FaceID in ComfyUI?

Install ComfyUI_IPAdapter_plus, add insightface to ComfyUI's Python environment, and place the FaceID model in models/ipadapter and its paired LoRA in models/loras, named exactly as the README lists them. Then use IPAdapter Unified Loader FaceID, which loads the LoRA for you, followed by the IPAdapter FaceID node. Most FaceID models need their LoRA to work as intended.

All Access · all four programs · $99/mo

You picked the right file. Now build the persona it belongs to.

AI Influencers, included in All Access, covers the rest of the build: Flux and SDXL setup, creating the persona, LoRA training for consistent faces, body consistency with ControlNet and photorealism, with the other three programs, weekly coaching and the private community in one subscription.

Start All Access — $99/mo →30-day money-back guarantee
Free

Write the identity block your graph reuses

Draft the fixed description for every prompt with the free generator, then follow the free Telegram channel for updates on ComfyUI face tools.