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

Easy Apply IPAdapter (StyleComposition)

Borrow one image's style and another's layout

By yolain·Created 3 years ago·Updated 8 days ago· 2,633
Easy Apply IPAdapter (StyleComposition)
  • model
  • image_style
  • image_composition
  • image_negative
  • attn_mask
  • clip_vision
  • optional_ipadapter
  • model
  • ipadapter
preset
weight_style1.00
weight_composition1.00
expand_stylefalse
combine_embedsaverage
start_at0.000
end_at1.000
embeds_scaling
cache_modeall

The neat idea here: feed it two reference images and it'll take the look from one and the layout from the other. Style from image A, composition from image B. That's the thing you can't do with a single IP-Adapter pass, and it's genuinely useful when you have a color palette / rendering style you love and a separate shot with the framing you want.

IP-Adapter, as a technique, takes a reference image, pulls CLIP embeddings out of it, and injects them into the diffusion model through decoupled cross-attention - semantic content rather than spatial structure (that's ControlNet's job). This node is Easy-Use's wrapper over cubiq's ComfyUI_IPAdapter_plus, pre-wired for the style-plus-composition combo so you don't hand-assemble the encoder chain.

How it works

It runs IP-Adapter twice conceptually - once weighting toward the style reference, once toward the composition reference - and blends them onto your model. You get back a patched model plus the loaded ipadapter object (so you can chain another apply node without reloading).

The inputs and outputs that matter

  • model in, model + ipadapter out. The model goes to your sampler.
  • image_style - required. The reference whose style you want.
  • image_composition - optional, but it's the whole point of this node. The reference whose layout you want.
  • preset - picks the IP-Adapter model family: SD1.5, SDXL "PLUS (high strength)", ViT-G, kolors, FLUX/SD3.5, etc. Match this to your checkpoint - a SD1.5 preset on an SDXL model just fails.
  • weight_style / weight_composition - the two dials you'll actually tune. Push composition up if the layout isn't holding; pull style down if the reference is overwhelming your prompt. Around 0.6–1.0 each is a sane starting zone.
  • start_at / end_at - when in sampling the adapter is active.

Optional inputs include image_negative, attn_mask, clip_vision, and optional_ipadapter if you've already loaded one.

How to install it

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

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

then install.bat / pip install -r requirements.txt, restart. You still need the IP-Adapter models and a CLIP vision model - Easy-Use wraps the logic but doesn't ship the weights. If you don't already have cubiq's IP-Adapter files in place, install them (the setup is the same as using IPAdapter_plus directly).

Common issues & troubleshooting

"IPAdapter model not found" / clip_vision errors. The preset you chose expects a specific IP-Adapter file and CLIP vision encoder that aren't installed. This is the #1 failure. Install the matching IP-Adapter models for your base model family; wire an explicit clip_vision if auto-detection misses.

The reference takes over the image. Above roughly weight 0.7–0.8, IP-Adapter starts drowning out your text prompt and flattening detail - a known trade-off, not a bug. Back the weights off until the prompt breathes again.

Style and composition bleed into each other. They're not perfectly separable; a very busy style reference will drag some of its own composition along. Try a cleaner, flatter style reference, or lean harder on weight_composition.

Wrong preset for your model. SD1.5 presets on SDXL (or vice versa) throw shape-mismatch errors. The preset list is explicit about which family each entry targets - read it.

CategoryEasyUse/Adapter

Inputs (16)

NameTypeDefaultDescription
modelMODEL
image_styleIMAGE
presetCOMBO9 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
weight_styleFLOAT1.00-1–5
weight_compositionFLOAT1.00-1–5
expand_styleBOOLEANfalse
combine_embedsCOMBOaverage5 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
image_compositionoptIMAGE
image_negativeoptIMAGE
attn_maskoptMASK
clip_visionoptCLIP_VISION
optional_ipadapteroptIPADAPTER

Outputs (2)

NameTypeDescription
modelMODEL
ipadapterIPADAPTER