Nodes/ComfyUI Easy Use/Easy Apply IPAdapter (FaceID Kolors)
ComfyUI Node Runs on cloud

Easy Apply IPAdapter (FaceID Kolors)

Face transfer for the Kolors model

By yolain·Created 3 years ago·Updated 8 days ago· 2,633
Easy Apply IPAdapter (FaceID Kolors)
  • model
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • optional_ipadapter
  • model
  • images
  • masks
  • ipadapter
presetFACEID PLUS KOLORS
lora_strength0.60
providerCUDA
weight0.80
weight_faceidv21.00
weight_kolors0.80
weight_type
combine_embeds
start_at0.000
end_at1.000
embeds_scaling
cache_modeall
use_tiledfalse
use_batchfalse
sharpening0.00

This is the narrow, purpose-built one: FaceID identity transfer wired specifically for Kolors, the Kuaishou text-to-image model. If you're generating with Kolors and you want a specific face carried in from a reference photo - without training anything - this is the node. If you're on SD 1.5, SDXL, or Flux, this isn't your node; use easy ipadapterApply (or its Advanced sibling) and pick the preset that matches your checkpoint instead.

The reason it exists as its own node rather than just another preset is that Kolors' FaceID path needs an extra weight the other architectures don't - that's the weight_kolors control below. Bundling it into a dedicated node keeps the generic apply node from sprouting a Kolors-only knob.

How it works

FaceID is the face-recognition branch of IP-Adapter. Instead of a general CLIP image embedding, it reads an InsightFace ArcFace vector - facial geometry and biometric structure, not just "what the picture looks like" - and pairs it with a companion LoRA, because identity is harder for the model to absorb than a style embedding. This node runs that pipeline against Kolors and folds all the loaders (IPAdapter, CLIP-Vision, InsightFace) into itself, so you plug in your Kolors model and a face image and go.

The inputs that matter

  • image - the face reference. A clean, front-facing, well-lit crop works best; extreme angles are where FaceID gets shaky.
  • preset - locked to FACEID PLUS KOLORS (it's the only choice), so there's nothing to pick. It's here for consistency with the other IPAdapter nodes.
  • weight (default 0.8) - overall identity strength.
  • weight_faceidv2 (default 1) - the FaceID-v2 contribution, i.e. how much the ArcFace identity signal drives the result.
  • weight_kolors (default 0.8) - the Kolors-specific weight, the one thing this node has that the others don't. Between these three you dial how hard the face is pushed versus how much freedom the prompt keeps.
  • lora_strength (default 0.6) - the companion FaceID LoRA's weight; the community range is 0.5-1.0.
  • start_at / end_at - when the adapter is active during sampling. Ending before 1.0 preserves detail.

provider (InsightFace backend, CUDA by default), combine_embeds, embeds_scaling, use_tiled, use_batch, sharpening, and cache_mode are refinements you can leave at defaults. Optional image_negative, attn_mask, and clip_vision are there if you need a negative reference, a region mask, or your own CLIP-Vision.

Outputs: the patched model for your sampler, plus images, masks, and ipadapter.

Installing it

ComfyUI Manager: search ComfyUI Easy Use, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use

then run the requirements install (install.bat on Windows, else pip install -r ComfyUI-Easy-Use/requirements.txt) and restart. You'll also need a Kolors checkpoint loaded upstream - Easy-Use ships an easy kolorsLoader for that.

Common issues

Two things bite here. First, InsightFace - the FaceID line depends on the insightface Python package, which is one of the flakiest installs in the ecosystem; if the node won't load, that's the first thing to check in your startup console. Second, a licensing reality worth knowing before you build a product on it: FaceID reads InsightFace's ArcFace models, and those are released for non-commercial research use only. That restriction is inherited, not chosen, and it applies to everything in the FaceID family. For sellable work you want the CLIP-based face variants (Plus Face / Full Face) instead - but those aren't a Kolors option, so if commercial Kolors face-transfer is the goal, this node isn't a clean fit.

CategoryEasyUse/Adapter

Inputs (21)

NameTypeDefaultDescription
modelMODEL
imageIMAGE
presetCOMBOFACEID PLUS KOLORS1 options: FACEID PLUS KOLORS
lora_strengthFLOAT0.600–1
providerCOMBOCUDA6 options: CPU, CUDA, ROCM, DirectML, OpenVINO, CoreML
weightFLOAT0.80-1–3
weight_faceidv2FLOAT1.00-1–5
weight_kolorsFLOAT0.80-1–5
weight_typeCOMBO14 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +8
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
cache_modeCOMBOall5 options: insightface only, clip_vision only, ipadapter only, all, none
use_tiledBOOLEANfalse
use_batchBOOLEANfalse
sharpeningFLOAT0.000–1
image_negativeoptIMAGE
attn_maskoptMASK
clip_visionoptCLIP_VISION
optional_ipadapteroptIPADAPTER

Outputs (4)

NameTypeDescription
modelMODEL
imagesIMAGE
masksMASK
ipadapterIPADAPTER