Nodes/ComfyUI-Apt_Preset/chx_IPA_region_combine
ComfyUI Node

chx_IPA_region_combine

Stack per-region reference images and prompts before applying IP-Adapter

By cardenluo·Created 2 years ago·Updated 18 days ago· 309
chx_IPA_region_combine
  • context
  • combine_params
  • image
  • mask
  • combine_chx
  • combine_params
image_weight1.00
prompt_weight1.00
weight_type
start_at0.000
end_at1.000
pos
neg

Regional IP-Adapter - different reference images and prompts steering different masked areas of the same canvas - has been a real workflow pattern since the community's earliest "keep two characters from bleeding into each other" attempts back in late 2023. chx_IPA_region_combine is Apt_Preset's builder node for that: you call it once per region (a mask, an image, a bit of prompt text, a couple of weights), it accumulates them, and you chain the output back into itself or forward into chx_IPA_apply_combine when you've defined every region you need.

How it fits together

This node doesn't apply anything by itself - notice there's no model output. It's the accumulation step. Each call takes a context, optionally an existing combine_params bundle from a previous call in the chain, and the ingredients for one region: an image, a mask, positive/negative text (pos/neg), and weights for how strongly the image and the prompt should each pull on that region. It hands back an updated combine_params (typed IPADAPTER_PARAMS) that you either feed into another chx_IPA_region_combine call to add a second region, or pass into chx_IPA_apply_combine, which is the node that actually patches the model and produces conditioning.

That two-node split - one node to define regions one at a time, one node to actually apply the accumulated set - is worth understanding before you start wiring, because a single chx_IPA_region_combine node on its own won't do anything visible to your output.

The inputs and outputs that matter

  • context (required) - the pack's bundled pipeline wire, same as the rest of the chx_* family.
  • image_weight (default 1, -1 to 3) and prompt_weight (default 1, 0 to 10) - how strongly this region's reference image and this region's text prompt each contribute. These are per-call, so different regions in the same composition can lean harder on the image or harder on the prompt.
  • weight_type - the same IP-Adapter attention-curve enum used throughout the family (linear, ease in/out, style transfer, composition, and so on).
  • start_at / end_at - step range this region's influence applies over.
  • Optional combine_params - feed in the output of a previous call to chain regions together; leave it empty on the first call in a chain.
  • Optional image, mask - the region's reference picture and where on the canvas it applies. Both optional at the schema level, but you'll generally want both set for a region to mean anything.
  • Optional pos (multiline string) / neg - regional prompt text to pair with the image.

Outputs: combine_chx (a RUN_CONTEXT, passed through) and combine_params (IPADAPTER_PARAMS) - the accumulated bundle to chain forward.

Installing it

Through ComfyUI Manager: search ComfyUI-Apt_Preset, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git

then install.bat on Windows for dependencies, restart. Needs the same IP-Adapter model and CLIP vision files as the rest of the chx_IPA_* family - this node builds the region set, chx_IPA_apply_combine is what actually needs the loaded adapter.

Common issues

Nothing changes in your output. Expected if this is the only IPA node in your graph - chx_IPA_region_combine only builds the parameter bundle. You need chx_IPA_apply_combine downstream, consuming this node's combine_params output, for anything to actually happen to your model.

Regions bleed into each other. This is the standing complaint with any regional-conditioning technique, not specific to this node: masking looser than intended lets attributes leak across region boundaries. Tighten your masks, and don't be shy about lowering image_weight/prompt_weight per region rather than assuming a hard mask edge alone will fully contain the effect.

You only need one reference image for the whole image. Regional combination is overhead you don't need for a single global reference - use chx_IPA_basic or chx_IPA_adv directly instead, and save chx_IPA_region_combine for when you genuinely have more than one subject or area that needs its own reference and prompt.

CategoryApt_Preset/chx_tool/chx_IPA

Inputs (11)

NameTypeDefaultDescription
contextRUN_CONTEXT
image_weightFLOAT1.00-1–3
prompt_weightFLOAT1.000–10
weight_typeCOMBO15 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +9
start_atFLOAT0.0000–1
end_atFLOAT1.0000–1
combine_paramsoptIPADAPTER_PARAMS
imageoptIMAGE
maskoptMASK
posoptSTRING
negoptSTRING

Outputs (2)

NameTypeDescription
combine_chxRUN_CONTEXT
combine_paramsIPADAPTER_PARAMS