Nodes/ComfyUI_IPAdapter_plus/IPAdapter Precise Composition Batch
ComfyUI Node Runs on cloud

IPAdapter Precise Composition Batch

Borrow the layout, not the look

By cubiq·Created 3 years ago·Updated about a year ago· 6,085
IPAdapter Precise Composition Batch
  • model
  • ipadapter
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • MODEL
weight1.00
composition_boost0.00
combine_embeds
start_at0.000
end_at1.000
embeds_scaling

This is the mirror image of Precise Style Transfer. Instead of carrying a reference's look, it carries its composition - the arrangement of the scene, where the big shapes sit, the overall layout - and lets your prompt and model decide the actual style and content. It works by targeting the specific attention layers that encode structure rather than surface, the InstantStyle-style layer-splitting this pack is built around. So you can hand it a photo whose framing you love and generate something in a completely different style that still sits the same way.

Reach for it when you want to reuse a layout without inheriting the colors and texture that came with it. It's a lighter-weight, single-reference alternative to the full Style & Composition node when composition is the only thing you're after. The "Batch" suffix marks the variant for batched/animation contexts; there's a non-batch equivalent for single stills.

How it works

Same shape as any apply node: it patches the model with conditioning from your image and returns a patched MODEL. The twist is that only the composition-carrying layers receive the reference, plus a composition_boost dial that lets you push that structural influence harder than its natural level.

The inputs that matter

  • image - your composition reference. Its layout is what you're borrowing.
  • weight - overall strength, default 1.0. Ease down if it starts overriding the prompt.
  • composition_boost - the headline knob, default 0, ranging -5 to 5. Turn it up when the layout is coming through too faintly; it amplifies the composition layers specifically. Note the default is 0 here, so out of the box the boost is neutral and weight does the work - bump it when you want the structure to assert itself more.
  • combine_embeds - how multiple references merge if you feed a batch.

start_at / end_at gate when the adapter runs, and embeds_scaling is the injection math; both are fine at defaults. Optional attn_mask, image_negative, and clip_vision handle masking, a negative reference, and the encoder explicitly.

Installing the pack

ComfyUI Manager: search ComfyUI IPAdapter plus, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus

then restart. IPAdapter wants the latest ComfyUI, so update Comfy first if a node errors on load. CLIP vision encoders go in ComfyUI/models/clip_vision, adapter weights in ComfyUI/models/ipadapter (create the folder if it's missing), and the Unified Loader needs exact filenames.

Where people get burned

The universal one: the ClipVision/IPAdapter mismatch. A tensor-size error on queue means encoder and adapter don't match - SD 1.5 → ViT-H, bigG/vit-G → their own encoder. First thing to check, every time.

The node-specific confusion is expecting it to pin composition as tightly as ControlNet does. It won't. IPAdapter composition transfer is a soft nudge toward a layout, not a hard structural lock like a depth or canny map. If you need the generated image to follow an exact pose or edge structure, that's a ControlNet job - and the two pair beautifully, IPAdapter deciding the loose arrangement while ControlNet enforces the precise geometry. Over-cranking composition_boost to force a tighter match mostly just smears detail, since IPAdapter softens the image the harder you lean on it. And the scope note stands: SD 1.5 / SDXL only, maintenance mode, no Flux.

Categoryipadapter

Inputs (12)

NameTypeDefaultDescription
modelMODEL
ipadapterIPADAPTER
imageIMAGE
weightFLOAT1.00-1–5
composition_boostFLOAT0.00-5–5
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
image_negativeoptIMAGE
attn_maskoptMASK
clip_visionoptCLIP_VISION

Outputs (1)

NameTypeDescription
MODELMODEL