Easy Apply IPAdapter (Encoder)
Turn reference images into reusable IP-Adapter embeds
- model
- clip_vision
- image1
- image2
- image3
- image4
- mask1
- mask2
- mask3
- mask4
- optional_ipadapter
- pos_embeds
- neg_embeds
- model
- clip_vision
- ipadapter
- pos_embed
- neg_embed
This is the front half of Easy-Use's two-step IP-Adapter flow. You feed it reference images, it runs them through CLIP-vision, and it spits out embeds - the encoded vectors - plus a loaded ipadapter and clip_vision to pass along. Its whole reason to exist is that you can encode once and apply many times, and that it can combine several reference images into one set of embeds. Pair it with easy ipadapterApplyEmbeds, which takes those embeds and injects them into your model.
Why bother splitting encode from apply
IP-Adapter lets you image-prompt a model - hand it a picture, and a small adapter injects that image's embedding through its own attention path so your text prompt still works. Most of the time you'd use the all-in-one easy ipadapterApply. You reach for the encoder/embeds split in two situations: you want to reuse the same encoded reference across many runs without re-paying the encode cost, or you want to blend multiple images - three angles of the same product, say - into a single averaged identity. This node is where that blending happens.
The inputs and outputs that matter
Required: model, clip_vision, image1, plus:
preset- picks the IP-Adapter model family and does the heavy lifting of matching weights to your base. Options includeSTANDARD (medium strength),PLUS (high strength),PLUS FACE (portraits),VIT-G,REGULAR - FLUX and SD3.5 only, andCOMPOSITION. ChoosePLUS FACEfor faces,PLUSfor general strong style transfer. Getting this right is 80% of the result.num_embeds- how many embeddings to produce (1–4).
Then the multi-image machinery, all optional: image2–image4 with per-image mask1–mask4 and weight1–weight4, and a combine_method (concat, add, average, norm average, max, min…). average is the sane default for "make these look like the same subject"; concat keeps them as distinct references. You can also chain in an existing optional_ipadapter or prior pos_embeds/neg_embeds.
Outputs: model, clip_vision, ipadapter, and the two you're really after - pos_embed and neg_embed. Those go straight into easy ipadapterApplyEmbeds.
Installing it
It wraps cubiq's ComfyUI_IPAdapter_plus, so install that too. Easy-Use itself comes from ComfyUI Manager (search ComfyUI Easy Use) or a clone into custom_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use
Install requirements, restart. The preset you choose determines which IP-Adapter model and CLIP-vision file it wants; if those aren't present it'll try to download them, and a clearer download-error message was one of the pack's own fixes, so read what it prints.
Where people trip
If your pos_embed output errors downstream, the usual culprit is a preset / base-model mismatch - an SD1.5-only preset (LIGHT, FULL FACE) selected while running SDXL, or vice versa. Match the preset to your checkpoint's architecture. When combining images, remember combine_method genuinely changes the output: average fuses identities, concat keeps them separate and can dilute each one, so don't reach for concat and then wonder why no single reference is coming through strongly. And the standard IP-Adapter caveats apply - it's an SD 1.5 / SDXL tool, upstream development stopped in early 2024, and the FaceID presets carry InsightFace's non-commercial terms.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip_vision | CLIP_VISION | — | |
| image1 | IMAGE | — | |
| preset | COMBO | 9 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), +3 | |
| num_embeds | INT | 21–4 | — |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| mask1opt | MASK | — | |
| weight1opt | FLOAT | 1.00-1–3 | — |
| mask2opt | MASK | — | |
| weight2opt | FLOAT | 1.00-1–3 | — |
| mask3opt | MASK | — | |
| weight3opt | FLOAT | 1.00-1–3 | — |
| mask4opt | MASK | — | |
| weight4opt | FLOAT | 1.00-1–3 | — |
| combine_methodopt | COMBO | 7 options: concat, add, subtract, average, norm average, max, +1 | |
| optional_ipadapteropt | IPADAPTER | — | |
| pos_embedsopt | EMBEDS | — | |
| neg_embedsopt | EMBEDS | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip_vision | CLIP_VISION | — |
| ipadapter | IPADAPTER | — |
| pos_embed | EMBEDS | — |
| neg_embed | EMBEDS | — |