Nodes/ComfyUI_IPAdapter_plus/IPAdapter FaceID Kolors
ComfyUI Node Runs on cloud

IPAdapter FaceID Kolors

Face consistency for the Kolors model

By cubiq·Created 3 years ago·Updated about a year ago· 6,086
IPAdapter FaceID Kolors
  • 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

This is FaceID built specifically for Kolors. Kolors is Kwai's bilingual, SDXL-scale text-to-image model, and because it isn't plain SDXL under the hood, it needs its own FaceID apply node rather than reusing the standard one. If you're generating on Kolors and want a consistent face from a reference photo, this is the node - everywhere else, use IPAdapter FaceID.

Mechanically it's the FaceID story with a Kolors-shaped adjustment. Like all FaceID, it runs your reference through InsightFace to get an ArcFace identity embedding (facial geometry, not appearance) and injects that to hold a likeness. The difference is a third weight that accounts for how Kolors ingests the conditioning.

Inputs and outputs

The connections match the other FaceID nodes: model, ipadapter, image (the face), out to a patched MODEL plus a face_image - the cropped, aligned face InsightFace detected, which is your sanity check that detection worked. The weights:

  • weight - overall strength, default 1.0 (range −1 to 3).
  • weight_faceidv2 - the CLIP-structure contribution, live on v2-style models.
  • weight_kolors - the Kolors-specific dial (default 1.0, range −1 to 5). This is what separates this node from the generic FaceID; it governs the Kolors path of the injection. Start at 1.0 and adjust if the identity is over- or under-asserting.

Then the standard weight_type, combine_embeds, start_at, end_at, embeds_scaling. Optional inputs: image_negative, attn_mask, clip_vision, and insightface. As with every FaceID node, if you didn't load through a unified loader you must feed insightface from the IPAdapter InsightFace Loader.

The setup gotchas, which are real here

Kolors FaceID is the fiddliest thing in the pack to get running, because it needs a specific stack of files that don't overlap with the usual IP-Adapter downloads:

  • A Kolors-specific CLIP vision encoder - clip-vit-large-patch14-336 - not the ViT-H or bigG you use for SD1.5/SDXL. Wrong encoder, nothing works.
  • The Kolors FaceID adapter model (the community Kolors-IP-Adapter-FaceID-Plus build), in ComfyUI/models/ipadapter.
  • InsightFace with the antelopev2 model pack. Kolors FaceID is trained against antelopev2 specifically, and antelopev2 is not auto-downloaded - you fetch it by hand and unzip it into the InsightFace models folder. This is a frequent source of "it won't run" for Kolors FaceID.

And the license reality is unchanged from the rest of the FaceID line: it reads InsightFace embeddings, so it's non-commercial research use only. Fine for personal work, off-limits for anything you sell.

Installing the pack

ComfyUI Manager: search "IPAdapter plus", install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, restart ComfyUI. Beyond the base pack you need insightface installed (plus the manually-downloaded antelopev2 pack), the Kolors FaceID adapter, and the clip-vit-large-patch14-336 encoder in ComfyUI/models/clip_vision. Honestly, this is a niche node for a niche model - worth it if you're committed to Kolors, but if you just want reliable no-training faces, SD1.5 FaceID is the smoother road.

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