☁️BizyAir Apply InstantID
BizyAir Apply InstantID — ComfyUI Node Guide
- instantid
- insightface
- control_net
- image
- model
- positive
- negative
- image_kps
- mask
- MODEL
- positive
- negative
InstantID is still, two years after its release, the best answer to "I have one photo of a face and I need it in this SDXL generation, with no training." It never got ported to Flux - the reference repo's been dormant since mid-2024 - but on SDXL, Illustrious, or Pony it's unchanged and it still works well. If you're on one of those base models, this is your node.
What makes InstantID different from a plain IP-Adapter
InstantID is three components working together, and the piece that actually sets it apart from earlier face adapters is IdentityNet - a ControlNet-shaped module that conditions on five facial landmarks. That's what forces the generated face to keep the reference's basic geometry (angle, structure) across poses and styles, not just its general "vibe." An IP-Adapter FaceID node captures identity without that spatial anchor, which is why InstantID tends to hold up better when you're pushing the pose or style far from the reference photo.
Zero-shot, single image, no training - that's still the headline feature, and it's why a well-known 2024 thread half-jokingly asked whether this meant the end of LoRAs. The settled community answer: no. InstantID captures a face; a LoRA captures a whole character - body type, clothing, concepts. Use InstantID when you specifically need a recognizable face fast; train a LoRA when you need the rest of the character too.
Inputs that matter
There's a lot required here because InstantID genuinely is a multi-component pipeline - this node is the point where they all come together:
- instantid, insightface, control_net - the three InstantID components, each its own loaded model type (
BIZYAIR_INSTANTID,BIZYAIR_FACEANALYSIS,BIZYAIR_CONTROL_NET). You'll need BizyAir's respective loader nodes for each feeding into this one. - image - your reference face photo.
- model, positive, negative - the standard model/conditioning triad this node patches.
- weight - 0 to 5, default 0.8. Community guidance for InstantID specifically lands around 1.0–1.3 for strong face adherence - noticeably higher than a plain IP-Adapter's 0.3–0.6 sweet spot, because the landmark conditioning keeps structure from collapsing at strengths that would let a simpler adapter overwhelm the prompt. If identity isn't holding as strongly as you want at the 0.8 default, bump it up before reaching for anything else.
- start_at / end_at - 0 to 1, defaults 0/1 (full range). Standard step-range gating if you want identity conditioning to apply only during part of the sampling process.
Optional:
- image_kps - a separate image specifically for the facial keypoints, if you want to decouple "where the face structure comes from" from "where the identity/appearance comes from."
- mask - restrict where the conditioning applies.
Outputs
MODEL, positive, negative - patched versions of what you fed in, ready for your sampler.
How to install it
Ships with the full BizyAir pack.
ComfyUI Manager: search "BizyAir," Install, restart.
git clone:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git
API key required, as with every BizyAir node.
Common issues
Weak likeness at default settings. Push weight toward the 1.0–1.3 range community consensus favors before concluding InstantID "doesn't work" for your reference photo.
SDXL only. If you're building this into a Flux workflow, stop - there's no Flux path for InstantID, here or anywhere else. Use BizyAir Apply PuLID Flux instead for Flux-based identity work.
Likeness that's close but not exact. This is a known, documented ceiling for InstantID generally, not a BizyAir-specific issue - it gets you close to the reference face and stops there. If you need pixel-exact likeness, pair it with a dedicated face-swap or restoration pass afterward rather than pushing weight past the point where it starts fighting your prompt.
InsightFace's licensing. The insightface input depends on InsightFace's face-analysis models, which carry a non-commercial research license on the weights themselves (the code is MIT, the pretrained models aren't). That's a background fact worth knowing if you're building anything commercial around this pipeline, even running through BizyAir's cloud infrastructure rather than your own machine.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| instantid | BIZYAIR_INSTANTID | — | |
| insightface | BIZYAIR_FACEANALYSIS | — | |
| control_net | BIZYAIR_CONTROL_NET | — | |
| image | IMAGE | — | |
| model | BIZYAIR_MODEL | — | |
| positive | BIZYAIR_CONDITIONING | — | |
| negative | BIZYAIR_CONDITIONING | — | |
| weight | FLOAT | 0.800–5 | — |
| start_at | FLOAT | 0.0000–1 | — |
| end_at | FLOAT | 1.0000–1 | — |
| image_kpsopt | IMAGE | — | |
| maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | BIZYAIR_MODEL | — |
| positive | BIZYAIR_CONDITIONING | — |
| negative | BIZYAIR_CONDITIONING | — |