IP Adapter Settings (JPS)
Full tuning menu for one IP-Adapter pass
- ip_adapter_single_settings
IP-Adapter made image prompting cheap - hand a diffusion model a reference picture and a small adapter injects the image's embedding through its own attention path, no LoRA training required. Running it well means getting a handful of things right at once: how strongly the adapter pulls toward the reference, how that strength is distributed across sampling steps, how the reference image itself gets cropped and framed before encoding, and which of the SDXL IP-Adapter model variants you're actually loading. This node is the single control panel for all of that, for one adapter pass, bundled into a pipe instead of a dozen loose widgets scattered around your Apply IPAdapter node.
Worth flagging up front, because it matters for wiring: this pack ships a near-twin of this exact node, IP Adapter Single Settings (JPS). The two are almost field-for-field identical - the one real difference is the ipa_wtype option list.
The inputs that matter
ipa_weight(0–3, default 0.5) - overall adapter strength. Community practice for IP-Adapter generally runs 0.3–0.8 depending on the job (lower for identity/face similarity, higher for style transfer), so 0.5 is a reasonable starting point inside that band.ipa_wtype- nine options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, weak output, weak middle, strong middle. This controls how the adapter's strength is distributed across sampling steps rather than applying a flat weight the whole way through - "ease out," for instance, front-loads influence and tapers it, which tends to preserve more fine detail than a flat linear application.ipa_noise(0–1, default 0) andipa_start/ipa_stop(0–1) - noise injected into the reference embedding (loosens an overfit to your exact reference photo), and the step window the adapter is active for. Cutting the adapter off before the final steps rather than running it the whole way through is the standard trick for keeping fine detail from getting softened.ipa_crop,ipa_zoom,ipa_offset_x/ipa_offset_y- how the reference image gets framed before it's encoded: crop anchor, zoom factor, and pixel offsets.ipa_mask- six options for constraining where the adapter applies: no mask, the mask editor (regular or inverted), or pulling a mask from the red, green, or blue channel of an image - a cheap trick for painting a mask in any external editor and extracting it here.ipa_model- SDXL ViT-H, SDXL Plus ViT-H, or SDXL Plus Face ViT-H. Which adapter variant you're running.
Output: ip_adapter_single_settings, typed BASIC_PIPE.
Installing it
The JPS pack: ComfyUI Manager, search JPS Custom Nodes for ComfyUI, or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart ComfyUI, deleting any earlier copy of the pack first. This holds settings only - you need ComfyUI_IPAdapter_plus installed separately (search IPAdapter Plus in Manager) for the actual adapter loading and apply node, plus the SDXL IP-Adapter weights themselves.
Where people get tripped up
The ipa_wtype list here - "ease in," "weak middle," "strong middle," and so on - matches the weight-type options on cubiq's current IPAdapter apply nodes. It's a genuinely different vocabulary from the older three-option scheme (original / linear / channel penalty) still floating around in some workflows and discussions, which is what IP Adapter Single Settings (JPS) uses instead - community threads on that older scheme (r/comfyui users asking what "channel penalty" even does) suggest it predates this newer, more descriptive list. Make sure the Settings node you're using matches the weight-type vocabulary your actual IPAdapter apply node expects.
The output naming is also worth double-checking: this node's ip_adapter_single_settings pipe and its sibling's identically-named output both feed into a Pipe node whose input is actually called ip_adapter_settings - a different name again. None of this is type-checked by ComfyUI's generic BASIC_PIPE, so a mismatched Settings/Pipe pairing will connect without complaint and unpack into the wrong values. If your adapter isn't behaving the way you configured it, trace the pipe wire back to confirm it's actually feeding IP Adapter Settings Pipe (JPS) and not its Single-Settings cousin.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| ipa_weight | FLOAT | 0.500–3 | — |
| ipa_wtype | COMBO | 9 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +3 | |
| ipa_noise | FLOAT | 0.000–1 | — |
| ipa_start | FLOAT | 0.000–1 | — |
| ipa_stop | FLOAT | 1.000–1 | — |
| ipa_crop | COMBO | 5 options: center, top, bottom, left, right | |
| ipa_zoom | FLOAT | 1.01–5 | — |
| ipa_offset_x | INT | 0-4096–4096 | — |
| ipa_offset_y | INT | 0-4096–4096 | — |
| ipa_mask | COMBO | 6 options: No Mask, Mask Editor, Mask Editor (inverted), Red from Image, Green from Image, Blue from Image | |
| crop_intpol | COMBO | 6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact | |
| sharpening | FLOAT | 0.000–1 | — |
| ipa_model | COMBO | 3 options: SDXL ViT-H, SDXL Plus ViT-H, SDXL Plus Face ViT-H |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ip_adapter_single_settings | BASIC_PIPE | — |