Easy Apply IPAdapter (Advanced)
The full-control version
- model
- image
- image_negative
- attn_mask
- clip_vision
- optional_ipadapter
- model
- images
- masks
- ipadapter
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.weightandweight_type-weightis overall strength (0.6-0.8 for style, 0.3-0.5 for faces, per community consensus).weight_typeis the flavor of that influence:style transferandcompositionare 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, ...).concatkeeps each distinct;averageblends 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.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| image | IMAGE | — | |
| preset | COMBO | 15 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_strength | FLOAT | 0.600–1 | — |
| provider | COMBO | CUDA | 6 options: CPU, CUDA, ROCM, DirectML, OpenVINO, CoreML |
| weight | FLOAT | 1.00-1–3 | — |
| weight_faceidv2 | FLOAT | 1.00-1–5 | — |
| weight_type | COMBO | 14 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +8 | |
| combine_embeds | COMBO | 5 options: concat, add, subtract, average, norm average | |
| start_at | FLOAT | 0.0000–1 | — |
| end_at | FLOAT | 1.0000–1 | — |
| embeds_scaling | COMBO | 4 options: V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty | |
| cache_mode | COMBO | all | 5 options: insightface only, clip_vision only, ipadapter only, all, none |
| use_tiled | BOOLEAN | false | — |
| use_batch | BOOLEAN | false | — |
| sharpening | FLOAT | 0.000–1 | — |
| image_negativeopt | IMAGE | — | |
| attn_maskopt | MASK | — | |
| clip_visionopt | CLIP_VISION | — | |
| optional_ipadapteropt | IPADAPTER | — | |
| layer_weightsopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| images | IMAGE | — |
| masks | MASK | — |
| ipadapter | IPADAPTER | — |