Nodes/ComfyUI_IPAdapter_plus_V2/IPAdapter FaceID Kolors V2
ComfyUI Node

IPAdapter FaceID Kolors V2

Face consistency on the Kolors model

By chflame163·Created 2 years ago·Updated 2 years ago· 55
IPAdapter FaceID Kolors V2
  • model
  • ipadapter
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • insightface
  • MODEL
  • face_image
weight1.00
weight_faceidv21.00
weight_kolors1.00
weight_type
combine_embeds
start_at0.000
end_at1.000
embeds_scaling

IPAdapter FaceID Kolors V2 is the niche-of-a-niche node: FaceID identity conditioning, but for the Kolors base model. If you're generating with Kolors checkpoints and want a specific face without training a LoRA, this is one of the very few ways to do it, and honestly, it's about the only reason anyone lands here. For everyone working on SD1.5 or SDXL, the plain IPAdapter FaceID V2 is the node you want; this one exists specifically because Kolors uses a different CLIP vision setup (336×336) and needed its own adapter weights.

How it works

Mechanically it's FaceID with one extra dial. Your reference face gets an InsightFace ArcFace embedding (the biometric vector that encodes facial geometry), combined with a CLIP structure pass and the FaceID companion LoRA. On top of that, Kolors brings weight_kolors (default 1.0, up to 5) - a third strength control that balances the Kolors-specific adapter contribution against the FaceID v2 contribution. So you get three weights to juggle: weight for overall strength (default 1.0, up to 3), weight_faceidv2 for the FaceID structure component (default 1.0, up to 5), and weight_kolors for the Kolors component. Everything else - weight_type, combine_embeds, start_at/end_at, embeds_scaling, optional image_negative, attn_mask, clip_vision, insightface - matches the other FaceID nodes. Outputs are MODEL plus face_image, the cropped aligned face InsightFace detected.

The baggage you're signing up for

Everything hard about FaceID is here and then some. You need the insightface Python package and its models in ComfyUI/models/insightface. You need the Kolors FaceID adapter weights and the companion LoRA in ComfyUI/models/ipadapter and ComfyUI/models/loras - and Kolors adapter weights are scarcer and less battle-tested than the SD1.5 line, so expect to hunt for them. The FaceID licensing trap applies fully: these weights inherit InsightFace's non-commercial terms, so nothing you build with this is sellable. And the general FaceID verdict holds - it gets you a stylized likeness, short of photoreal, and it's at its best when you're not asking for an exact face.

Installing it

ComfyUI Manager: search "ComfyUI_IPAdapter_plus_V2". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/chflame163/ComfyUI_IPAdapter_plus_V2

Restart ComfyUI. Then the real install: pip install insightface, plus the Kolors adapter, its LoRA, and the 336 CLIP vision file.

Gotchas

The ecosystem history should temper expectations: FaceID on SDXL was labeled experimental and widely reported as weaker than SD1.5, and Kolors is a smaller pond still. If FaceID likeness is the goal and Kolors is optional, try SD1.5 first. And remember this pack is a renamed snapshot of cubiq's V2 codebase - it won't follow upstream fixes.

Categoryipadapter/faceid

Inputs (15)

NameTypeDefaultDescription
modelMODEL
ipadapterIPADAPTER
imageIMAGE
weightFLOAT1.00-1–3
weight_faceidv2FLOAT1.00-1–5
weight_kolorsFLOAT1.00-1–5
weight_typeCOMBO15 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +9
combine_embedsCOMBO5 options: concat, add, subtract, average, norm average
start_atFLOAT0.0000–1
end_atFLOAT1.0000–1
embeds_scalingCOMBO4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty
image_negativeoptIMAGE
attn_maskoptMASK
clip_visionoptCLIP_VISION
insightfaceoptINSIGHTFACE

Outputs (2)

NameTypeDescription
MODELMODEL
face_imageIMAGE