Skip to main content

InstantID Guide: Same Face From a Single Photo

InstantID guide for AI personas: the files and folders, the ComfyUI graph, documented starting weights, fixes for burn and watermarks, and the license terms.

Founder of IImagined.ai

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

InstantID keeps one face across SDXL generations from a single reference photo by combining a face identity embedding with a landmark ControlNet. In ComfyUI it needs one node pack, three model downloads and a weight that starts at 0.8 with the CFG lowered to 4 or 5. Its checkpoints and the InsightFace models it depends on are released for research purposes only, so check the terms before using it on a persona that earns money.

InstantID is a tuning-free method that reproduces one face across SDXL images from a single reference photo, by pairing a face identity embedding with a landmark ControlNet called IdentityNet. In ComfyUI you install one node pack, download three sets of model files, start the weight at 0.8 and lower the CFG to 4 or 5.

Files, node names, settings and license terms checked October 2026 against the InstantID repository, its Hugging Face model card and technical report, the ComfyUI_InstantID README and node source, the InsightFace license section and the IP-Adapter model card. The settings are the projects' own recommendations, not scores from a test of ours.

This page is the persona-first setup: what to download, how to wire it, which numbers to start from, how to fix the artifacts the maintainers document, and where InstantID stops being the right tool. It is one branch of our consistent character AI guide, which compares every method. If you have not chosen a method yet, start there.

What InstantID is, and what you will have at the end

You will have a saved ComfyUI graph that takes one approved image of your persona and renders that face in new scenes, on any SDXL checkpoint, with no training run. The technical report describes the design as "strong semantic and weak spatial conditions": the identity embedding says who, and the landmark image says roughly where.

What happens to your one photo
  1. 01
    Reference image

    One sharp face. Only the largest face in the frame is read

  2. 02
    InsightFace antelopev2

    Finds the face, outputs an identity embedding and facial keypoints

  3. 03
    Adapter

    ip-adapter.bin feeds the embedding into the model's attention

  4. 04
    IdentityNet

    A ControlNet that places the face using the keypoints

  5. 05
    SDXL checkpoint

    Your prompt sets scene, outfit and style

  6. 06
    Image

    The same face, posed like the reference unless you say otherwise

Two things follow from that design. The face is read by a recognition model rather than copied as a picture, so the method is aimed at identity, not at the hair and lighting of that one photo. And the head is posed from the reference's keypoints by default, which is why untouched InstantID sets all look at the camera the same way. One limit to know before you start: the released model is for SDXL. If your persona lives on Flux, the equivalent tool is PuLID for Flux.

Read the license before you install

InstantID is free to download and restricted in use. The repository's disclaimer makes three separate statements, and the third is the one people miss.

The same disclaimer covers whose face you use: people may create images with the tool but are "obligated to comply with local laws and utilize it responsibly". Treat that as a floor. Use an original AI persona or your own face, never a real person who has not agreed, and remember that a persona resembling a real person carries the same risk as one built from their photo. Our AI likeness rights guide covers where the lines sit.

Pre-flight checklist

Before you download anything
  • ComfyUI updated to the latest version; the node pack's README asks for it
  • ComfyUI-Manager installed, or git for a manual clone
  • An SDXL checkpoint you are allowed to use. The released InstantID model is SDXL only
  • About 4.2GB of disk for the two InstantID files, plus the antelopev2 face models
  • One sharp, front-facing hero image of an original persona or your own face, one person in frame
  • A fixed identity block for the prompt: age range, hair, eyes, two distinguishing marks
  • The license section above read, and a decision made about paid use

The repository publishes no VRAM figure. You are loading an SDXL checkpoint plus a 2.5GB ControlNet and a 1.69GB adapter, so expect it to need more memory than plain SDXL; the README's only memory advice is CPU offloading and VAE tiling for its Python pipeline. If you have no manager yet, our ComfyUI-Manager install guide covers it, and the free AI influencer prompt generator drafts the identity block.

InstantID ComfyUI setup, step by step

The pack to install is ComfyUI_InstantID, which implements InstantID natively instead of wrapping the diffusers pipeline. It is the first ComfyUI option the InstantID authors list.

From empty install to first face
  1. 1
    Install the node pack

    Through ComfyUI-Manager, or git clone into ComfyUI/custom_nodes. Expected result: an InstantID category in the node menu after a restart.

  2. 2
    Add insightface and onnxruntime

    The pack needs insightface plus onnxruntime and onnxruntime-gpu in ComfyUI's Python environment. Expected result: no import error at startup.

  3. 3
    Place the antelopev2 face models

    Unzip them into ComfyUI/models/insightface/models/antelopev2. The InstantID README links the download because the default link is invalid.

  4. 4
    Place ip-adapter.bin

    From InstantX/InstantID on Hugging Face into ComfyUI/models/instantid. Create the folder if it is missing.

  5. 5
    Place the IdentityNet ControlNet

    ControlNetModel/diffusion_pytorch_model.safetensors goes in ComfyUI/models/controlnet. Give it a name you will recognise.

  6. 6
    Load the basic example

    Open InstantID_basic.json from the pack's examples folder and choose your SDXL checkpoint. Expected result: no red nodes.

  7. 7
    Wire in your hero image

    Load Image into the image input of Apply InstantID. Set the KSampler CFG to 4 or 5 and the latent to 1016 x 1016.

  8. 8
    Fix the seed and queue

    Expected result: your persona's face in the prompted scene, head posed like the reference. Change one setting per run from here.

FileSizeFolderWhat it is
ip-adapter.bin1.69GBComfyUI/models/instantidThe adapter that carries the identity embedding. Named after IP-Adapter, which it is based on
ControlNetModel/diffusion_pytorch_model.safetensors2.50GBComfyUI/models/controlnetIdentityNet, the landmark ControlNet. Rename it so you can find it in the loader
antelopev2 face modelsSeparate downloadComfyUI/models/insightface/models/antelopev2InsightFace detection and recognition. Not the classic buffalo_l pack

Sizes are from the Hugging Face file listing, checked October 2026. The finished chain looks like this:

Load Checkpoint (SDXL) Load InstantID Model (ip-adapter.bin)  +  InstantID Face Analysis (provider: CUDA or CPU) Load ControlNet Model (IdentityNet)    +  Load Image (hero) -> Apply InstantID  [weight: 0.8 | start_at: 0 | end_at: 1 | optional: image_kps, mask] -> KSampler  [positive: identity block + scene | CFG 4 to 5 | fixed seed while testing] -> VAE Decode -> Save Image

Apply InstantID takes the model and both conditionings in and passes them out again, so it sits between your prompt nodes and the sampler. The other example files in the pack cover a posed keypoint image, a depth ControlNet, IP-Adapter styling and a multi-ID graph the maintainer calls "hackish" and slower.

InstantID settings: ID weight and strength by checkpoint type

Nobody publishes per-checkpoint numbers for InstantID, and we have not scored any. What the projects document is one default and a set of directions, and that is enough to tune a persona.

  • Two dials, one default. The project's example code sets ip_adapter_scale and controlnet_conditioning_scale to 0.8. In ComfyUI the standard node has a single weight at 0.8 that drives both.
  • Split them on the Advanced node. Apply InstantID Advanced exposes ip_weight for the adapter and cn_strength for the ControlNet, both defaulting to 0.8. The README says the adapter accounts for about 25% of the composition and the ControlNet for the rest.
  • Directions from the authors. Raise both for more similarity. For over-saturation lower the adapter first, then the ControlNet. For more prompt control lower the adapter.
  • Noise. The standard node injects 35% noise into the negative embeds to reduce the burnt look. The Advanced node leaves noise at 0 until you set it.
Checkpoint typeDocumented starting pointSource
Standard SDXL checkpointWeight 0.8 on Apply InstantID. CFG lowered to 4 or 5, or a RescaleCFG nodeComfyUI_InstantID README and node defaults
Realistic fine-tuneSame weights. When realism is weak, the authors say to change to a more realistic base modelInstantID model card, usage tips
SDXL Turbo or LightningSame nodes. Use the steps and CFG that checkpoint calls forComfyUI_InstantID README: "works very well" with both
Any checkpoint with LCM-LoRA10 steps in the example, guidance scale between 0 and 1InstantID README
Stylised checkpointPick the checkpoint for the style, then lower the adapter weight if the prompt is ignoredInstantID README, usage tips

Tune in this order: CFG, then resolution, then weights. Most first-run complaints are CFG and resolution problems that no weight fixes. One more input is worth knowing about: the node source averages the face embeddings when you feed it a batch of reference images, and takes keypoints from the first image only. Three approved views of your persona, batched, give the adapter more than one photo's worth of identity while the pose still comes from one place.

The InstantID README also points to a follow-up, InstantID-Rome, "if you are pursuing better results". Its repository shows comparison images and ends with "coming", with no install instructions, so there is nothing to add to a graph today.

InstantID face consistency: fixing the common artifacts

Each of these has a documented cause, so fix them by cause, not by nudging weights at random.

SymptomCauseFix
Burnt, over-saturated faceCFG too high, adapter too strongCFG to 4 or 5, or RescaleCFG. Then lower ip_weight, then cn_strength
Watermark patternsWatermarked training data shows at standard sizesUse a size slightly off standard, such as 1016 x 1016
Same head position in every imageThe pose follows keypoints from the referenceSend a different face image to the image_kps input
Outfit or style words ignoredAdapter overpowering the textLower ip_weight on the Advanced node
"No face detected" errorInsightFace found no face in the referenceUse a larger, front-facing face with nothing covering it
Wrong person from a group photoOnly the largest face is readCrop the reference to one person
  • Small faces drift. In a full-body shot the face covers few pixels and the identity thins out. Re-render it with a face detailer pass that reuses the same InstantID nodes; the chain is in our ComfyUI consistent character workflow.
  • Poses beyond the head. InstantID's keypoints cover the face only. For body pose add an OpenPose ControlNet beside it, which the pack supports as an additional ControlNet; see our ControlNet guide and the pose-lock workflow for running a whole pose sheet.
  • Red nodes after an update. The pack has been in maintenance-only mode since April 14, 2025. Keep a copy of the ComfyUI version your graph was built on.
  • Drift none of this explains. Work through the causes in our AI face consistency guide, one variable at a time.

InstantID vs IP-Adapter

InstantID's authors credit IP-Adapter and ControlNet as the work it builds on. The practical difference is what each one reads from your photo, and what license comes with the files.

Two ways to read one face
InstantID
  • Reads identity as a face-recognition embedding
  • Adds a landmark ControlNet that fixes where the face sits
  • SDXL only, about 4.2GB of model files
  • Needs insightface and the antelopev2 models
  • Repository: checkpoints for research purposes only
IP-Adapter Plus Face
  • Reads a cropped face as an image prompt
  • No ControlNet, so pose and framing stay free
  • SD 1.5 and SDXL versions; a 0.85GB adapter plus a 2.5GB image encoder
  • No InsightFace needed
  • Model card license: Apache 2.0

Between the two sits IP-Adapter FaceID, which swaps the image embedding for an InsightFace one and adds a paired LoRA; its model card says it is released for research and not intended for commercial use. Our IP-Adapter face guide decodes which file fits which base model. For a full ranking of the no-training routes, hosted ones included, see consistent characters without a LoRA.

When InstantID beats a trained LoRA, and when it does not

InstantID wins on time to first image. Its README shows results the authors call competitive with character LoRAs "without any training", and that is the right way to use it: to find out in an afternoon whether a face is worth building on. For the three-way decision with published costs and a test you can run, see face LoRA vs InstantID vs IP-Adapter.

InstantID or a LoRA, by volume and use
Personal or research project
InstantID to build the dataset, then a LoRA: weights hold the angles one photo cannot show
InstantID fits: one photo, no training, a result the same day
Paid persona or client work
Train a LoRA on a base you are licensed to sell from, and leave the research-only parts out
A hosted reference model or plain IP-Adapter Plus Face, on terms that allow the work
Hundreds of images, many angles
A few images near the reference angle

A LoRA has seen the profile, the laugh and the full-body shot because you put them in the dataset. InstantID has seen one photo and guesses the rest. When you start rejecting more outputs than you keep, your approved InstantID renders become the training set: see how many images a face LoRA needs and the LoRA training guide for consistent faces. The AI Influencers program goes deeper where this page stops, with lessons on creating the persona, LoRA training for consistent faces and body consistency with ControlNet.

InstantID: FAQ

What is InstantID?

InstantID is a tuning-free method from the InstantX team for generating images that keep one person's face from a single reference image. It pairs an adapter that carries a face identity embedding with a ControlNet called IdentityNet that follows the face's landmarks. The released model works with SDXL checkpoints, and the code, checkpoints and a demo were published in January 2024.

Does InstantID work with Flux or SD 1.5?

Not in the released files. The ComfyUI_InstantID README says the model is only for SDXL, and InstantX's Hugging Face page lists one InstantID model. A Kolors version was announced in July 2024 as still in training. For a single-image identity method on FLUX.1 dev, use PuLID-FLUX; for SD 1.5, use an IP-Adapter face model.

Can I use InstantID commercially?

Read the disclaimer first. The repository says the code is Apache 2.0 for academic and commercial use, the InsightFace face models it relies on are for non-commercial research purposes only, and its released checkpoints are also for research purposes only. InsightFace lists an email address for licensing its recognition models. For a persona that earns money, clear those terms or use another method.

What weight should I use for InstantID in ComfyUI?

Start at the default. The Apply InstantID node ships with a weight of 0.8, which is also the value in the project's example code for both the adapter and the ControlNet. Raise it for more similarity. If the face looks burnt, lower the CFG to 4 or 5 first, then lower the adapter weight on the Advanced node, then the ControlNet strength.

Is InstantID better than IP-Adapter for faces?

They read the face differently, and we have not scored one against the other. InstantID uses a face-recognition embedding plus a landmark ControlNet, so it targets identity and also fixes where the face sits. IP-Adapter Plus Face reads a cropped face as an image prompt, needs no InsightFace, and its model card is Apache 2.0. Run both on your own hero image and compare.

Is InstantID better than training a LoRA?

It is faster to start, not a replacement. InstantID's authors show results they call competitive with character LoRAs without any training. A LoRA stores the face in weights learned from many images, so it has seen the profile and the full-body shot; InstantID guesses them from one photo. Use InstantID to test a face and build a dataset, then train.

Why does my InstantID image have watermarks or a burnt face?

Both are documented. The ComfyUI_InstantID README says the training data is full of watermarks and suggests a resolution slightly off the standard sizes, such as 1016 x 1016. For the burnt look it says to lower the CFG to 4 or 5 or add a RescaleCFG node, and its Apply InstantID node injects 35 percent noise into the negative embeds to reduce the effect.

All Access · all four programs · $99/mo

One photo gets you a face. A system gets you a persona.

AI Influencers, included in All Access, picks up after the first InstantID render: 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 first

Draft the fixed description your InstantID graph will reuse with the free prompt generator, then follow the free Telegram channel for updates on face-consistency tools.