IPAdapter Precise Composition
Borrow a layout, keep your own style
- model
- ipadapter
- image
- image_negative
- attn_mask
- clip_vision
- MODEL
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.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| ipadapter | IPADAPTER | — | |
| image | IMAGE | — | |
| weight | FLOAT | 1.00-1–5 | — |
| composition_boost | FLOAT | 0.00-5–5 | — |
| 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 | |
| image_negativeopt | IMAGE | — | |
| attn_maskopt | MASK | — | |
| clip_visionopt | CLIP_VISION | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |