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

IPAdapter Precise Composition

Borrow a layout, keep your own style

By cubiq·Created 3 years ago·Updated about a year ago· 6,086
IPAdapter Precise Composition
  • 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. Where that node lifts the look of a reference and drops its content, IPAdapter Precise Composition lifts the layout - the arrangement of shapes, the framing, where things sit - while leaving style up to your prompt and checkpoint. Give it a reference and you get an image built on that reference's composition but painted in whatever aesthetic you asked for in text.

It works by targeting the attention layers that carry spatial and structural information, the composition half of what IP-Adapter encodes, rather than injecting the reference everywhere. That's the "precise" in the name: a surgical route into the composition layers instead of a blunt whole-image push. If you've used the composition weight type on the Advanced node, this is that idea given its own node and its own dedicated boost control.

Inputs and outputs

Standard three in: model, ipadapter, image (the composition reference). Patched MODEL out. The settings that matter:

  • weight - overall strength, default 1.0 (range −1 to 5).
  • composition_boost - the signature control, ranging −5 to 5 with a default of 0. Note that default: unlike the style node, composition here starts un-boosted, and you dial it up when you want the reference's layout to assert itself more firmly. Push it positive to lock the composition harder; pull negative to loosen it.

Then the familiar pack controls - combine_embeds, start_at, end_at, embeds_scaling - plus optional image_negative, attn_mask, and clip_vision (the last only if your adapter came from the plain Model Loader without a bundled CLIP vision model).

When you'd want it

The classic use is "I have an image whose arrangement I love - the pose, the framing, the balance of the scene - but I want it rendered completely differently." Feed that image here, prompt for your target style, and you keep the bones while replacing the skin. It pairs naturally with the idea behind the Style & Composition node, but where that one splits style and composition across two separate references in a single SDXL node, this one is single-image and focused purely on the composition side.

Worth knowing how it relates to ControlNet, because they overlap in intent: ControlNet conditions on hard spatial structure (edges, depth, an explicit pose skeleton), while this conditions on the softer, semantic sense of composition the CLIP encoding captures. ControlNet is stricter and more literal; precise composition is looser and more suggestive. For a rigid "match this exact pose," ControlNet wins; for "give me something arranged like this," this node is the lighter-weight option, and the two stack fine together.

Installing the pack

ComfyUI Manager: search "IPAdapter plus" in Custom Nodes Manager, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus, then restart ComfyUI. Put an IP-Adapter model in ComfyUI/models/ipadapter and its matching CLIP vision encoder in ComfyUI/models/clip_vision (ViT-H for SD1.5, bigG for SDXL). Update ComfyUI if the node won't load. As with everything in this pack, it's an SD1.5/SDXL tool and does not run on 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