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

Easy Apply IPAdapter (Advanced)

The full-control version

By yolain·Created 3 years ago·Updated 8 days ago· 2,633
Easy Apply IPAdapter (Advanced)
  • model
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • optional_ipadapter
  • model
  • images
  • masks
  • ipadapter
preset
lora_strength0.60
providerCUDA
weight1.00
weight_faceidv21.00
weight_type
combine_embeds
start_at0.000
end_at1.000
embeds_scaling
cache_modeall
use_tiledfalse
use_batchfalse
sharpening0.00
layer_weights

This is the big-brother of the plain easy ipadapterApply node. Same job - inject a reference image's style or identity into your generation - same one-node convenience that folds the IPAdapter, CLIP-Vision, and InsightFace loaders out of sight. The difference is every knob that the simple node hides for you is exposed here. Reach for the Advanced version when the basic one gets you close and you need to steer the last 20%: which layers the reference touches, how multiple references combine, how the embeddings get scaled.

If you don't yet know why you'd want those controls, start with the plain node. If you've hit its ceiling - the face is bleeding into the background, two reference images fight each other, the style transfer is too global - this is where you go.

What it actually does

Under the hood it's cubiq's ComfyUI_IPAdapter_plus (the community-standard implementation), wired up automatically. IP-Adapter works by a decoupled cross-attention path: a ~22M-parameter adapter feeds your reference's image embedding into the model alongside the frozen text path, which is why prompts keep working next to the image. That's true of the simple node too. What Advanced adds is fine access to that injection.

The inputs that matter

  • preset - still the first decision. It picks the model/CLIP-Vision/InsightFace bundle and names its target architecture in the label (SD1.5 only, FLUX and SD3.5 only, Kolors, and so on). Match it to your checkpoint; the files auto-download on first use.
  • weight and weight_type - weight is overall strength (0.6-0.8 for style, 0.3-0.5 for faces, per community consensus). weight_type is the flavor of that influence: style transfer and composition are the two you'll actually use - they route the reference into different attention layers so you can pull look without layout, or vice versa. This is the single biggest reason to use the Advanced node.
  • start_at / end_at - when the adapter is active across sampling. Ending early (before 1.0) preserves detail that running it all the way through would soften.
  • combine_embeds - when you feed a batch of references, this is how they merge (concat, add, average, ...). concat keeps each distinct; average blends them into one look.
  • layer_weights (optional, multiline) - hand-tuned per-layer weighting, for people who really want to sculpt which UNet blocks get the reference. Leave it empty unless you know what you're doing.

weight_faceidv2, lora_strength, and provider matter only for the FaceID presets; embeds_scaling, use_tiled, use_batch, sharpening, and cache_mode are refinements you can ignore at first. Optional image_negative, attn_mask, and clip_vision let you supply a negative reference, a region mask, and your own CLIP-Vision model.

Outputs: the patched model (feed this to your sampler), plus images, masks, and ipadapter for chaining a second application.

Installing it

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

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

then install requirements (install.bat on Windows, else pip install -r ComfyUI-Easy-Use/requirements.txt) and restart.

Common issues

Same trap as every FaceID workflow: InsightFace has to be installed in ComfyUI's Python, and it's a notorious install. A FaceID preset that errors on load almost always means it's missing - check the startup console. Also remember the era limit: IP-Adapter proper doesn't exist for Flux, so don't expect the SD-family presets to work there. And a general note on this being a large pack - it pulls a lot of Python dependencies, so if the node doesn't appear at all, scan your startup log for a dependency clash before assuming the node is broken.

CategoryEasyUse/Adapter

Inputs (21)

NameTypeDefaultDescription
modelMODEL
imageIMAGE
presetCOMBO15 options: LIGHT - SD1.5 only (low strength), STANDARD (medium strength), VIT-G (medium strength), PLUS (high strength), PLUS (kolors genernal), REGULAR - FLUX and SD3.5 only (high strength), +9
lora_strengthFLOAT0.600–1
providerCOMBOCUDA6 options: CPU, CUDA, ROCM, DirectML, OpenVINO, CoreML
weightFLOAT1.00-1–3
weight_faceidv2FLOAT1.00-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
layer_weightsoptSTRING

Outputs (4)

NameTypeDescription
modelMODEL
imagesIMAGE
masksMASK
ipadapterIPADAPTER