Nodes/JPS Custom Nodes for ComfyUI/IP Adapter Single Settings (JPS)
ComfyUI Node

IP Adapter Single Settings (JPS)

The older weight-type vocabulary for one adapter pass

By JPS-GER·Created 3 years ago·Updated 2 years ago· 100
IP Adapter Single Settings (JPS)
    • ip_adapter_single_settings
    ipa_weight0.50
    ipa_wtype
    ipa_noise0.00
    ipa_start0.00
    ipa_stop1.00
    ipa_crop
    ipa_zoom1.0
    ipa_offset_x0
    ipa_offset_y0
    ipa_mask
    crop_intpol
    sharpening0.00
    ipa_model

    This node and IP Adapter Settings (JPS) are field-for-field the same node, with one difference that actually matters: the ipa_wtype option list. Here it's three choices - original, linear, channel penalty. Its sibling offers nine - linear, ease in, ease out, ease in-out, reverse in-out, weak input/output/middle, strong middle. That's the tell that this is built around an earlier version of cubiq's IPAdapter weight-type vocabulary; a real 2024 r/comfyui thread has someone asking what "channel penalty" even means in practice ("V only / K+V / K+V w/ C penalty / K+mean(V) w/ C penalty... What do they actually mean??"), and the honest answer even in the replies is that it's genuinely confusing without watching a dedicated explainer video. If your workflow - or an example workflow you copied - references this three-option scheme by name, this is the JPS node built for it.

    The inputs that matter

    • ipa_weight (0–3, default 0.5) - overall adapter strength. IP-Adapter's community-standard band runs roughly 0.3–0.8 depending on whether you're chasing style transfer or face similarity.
    • ipa_wtype - original, linear, or channel penalty. "Channel penalty" combines the reference's Key and Value embeddings with a per-channel penalty term rather than applying them uniformly - the mechanism behind why it reads as confusing even to people who use it regularly.
    • ipa_noise (0–1) and ipa_start/ipa_stop (0–1) - reference-embedding noise and the step-window the adapter is active for.
    • ipa_crop, ipa_zoom, ipa_offset_x/ipa_offset_y - crop anchor, zoom, and pixel offsets for framing the reference image before encoding.
    • ipa_mask - six options: no mask, mask editor (regular or inverted), or a mask pulled from the red, green, or blue channel of an image.
    • ipa_model - SDXL ViT-H, SDXL Plus ViT-H, or SDXL Plus Face ViT-H.

    Output: ip_adapter_single_settings, typed BASIC_PIPE - JPS's reused bundle label (a plain tuple, not Impact Pack's object of the same type name), meant to feed a matching Pipe node.

    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, removing any earlier copy of the pack first. Settings only - you need ComfyUI_IPAdapter_plus installed separately for the actual adapter and apply node, plus the SDXL IP-Adapter weights.

    Where people get tripped up

    If you're not sure whether "channel penalty" is doing anything useful for your generation, you're in good company - it's one of the more opaque options in IPAdapter_plus's older API even by the community's own account, and most people land on "linear" as the option they actually understand and tune from, reaching for channel penalty only if a workflow they trust already uses it. If you don't specifically need this three-option vocabulary, IP Adapter Settings (JPS) with its newer nine-option ipa_wtype list (ease in/out, weak/strong middle, and so on) is the more descriptive, more current alternative and probably the better default choice for a new workflow.

    The wiring gotcha is the same one this node's sibling has: this node's output, ip_adapter_single_settings, is the exact same pipe name IP Adapter Settings (JPS) outputs, and both feed into Pipe nodes that expect an input actually called ip_adapter_settings. BASIC_PIPE isn't type-checked field by field, so it's entirely possible to wire this node into the wrong Pipe node - the connection will look valid and just unpack into the wrong values, since the two Settings nodes' ipa_wtype fields don't mean the same thing. If your weight-type setting doesn't seem to match what you selected, check that this node is actually feeding IP Adapter Single Settings Pipe (JPS) and not its sibling.

    CategoryJPS Nodes/Settings

    Inputs (13)

    NameTypeDefaultDescription
    ipa_weightFLOAT0.500–3
    ipa_wtypeCOMBO3 options: original, linear, channel penalty
    ipa_noiseFLOAT0.000–1
    ipa_startFLOAT0.000–1
    ipa_stopFLOAT1.000–1
    ipa_cropCOMBO5 options: center, top, bottom, left, right
    ipa_zoomFLOAT1.01–5
    ipa_offset_xINT0-4096–4096
    ipa_offset_yINT0-4096–4096
    ipa_maskCOMBO6 options: No Mask, Mask Editor, Mask Editor (inverted), Red from Image, Green from Image, Blue from Image
    crop_intpolCOMBO6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact
    sharpeningFLOAT0.000–1
    ipa_modelCOMBO3 options: SDXL ViT-H, SDXL Plus ViT-H, SDXL Plus Face ViT-H

    Outputs (1)

    NameTypeDescription
    ip_adapter_single_settingsBASIC_PIPE