Nodes/☁️BizyAir Nodes/☁️BizyAir IPAdapterStyleComposition
ComfyUI Node

☁️BizyAir IPAdapterStyleComposition

BizyAir IPAdapterStyleComposition — ComfyUI Node

By siliconflow·Created 2 years ago·Updated 11 months ago· 855
☁️BizyAir IPAdapterStyleComposition
  • model
  • ipadapter
  • image_style
  • image_composition
  • image_negative
  • attn_mask
  • clip_vision
  • model
weight_style1.00
weight_composition1.00
expand_stylefalse
combine_embedsaverage
start_at0.000
end_at1.000
embeds_scaling

What it is

This is IP-Adapter's more advanced trick: instead of one reference image doing double duty for "what it looks like" and "how it's arranged," you split that job across two separate images. One supplies style - palette, texture, rendering feel. The other supplies composition - the actual layout and structure of the scene. It's the node cubiq's IPAdapter Plus popularized for exactly this use case, and it's genuinely useful when the single-image version of IP-Adapter keeps giving you the right vibe in the wrong arrangement, or vice versa.

Under the hood it's still the same decoupled cross-attention mechanism every IP-Adapter node uses - image embeddings get injected through their own attention path alongside your text prompt - but this node runs it twice, once per reference, and blends the two embedding streams before applying them to the model.

The inputs that matter

  • model - BIZYAIR_MODEL, your generation model.
  • ipadapter - the IPADAPTER handle from BizyAir IPAdapterModelLoader.
  • image_style / image_composition - your two reference images, doing the two separate jobs described above.
  • weight_style / weight_composition - independent strength dials for each (default 1.0, range -1 to 5). Push style up and composition down (or vice versa) to shift the balance.
  • combine_embeds - how the two embedding streams merge: concat, add, subtract, average (default), or norm average. average is the sane starting point; the others are worth experimenting with if the blend feels muddy.
  • start_at / end_at - the step range (0-1) during which this conditioning applies. Ending it early (rather than running through 1.0) tends to preserve more fine detail in the output, a known trade-off with any IP-Adapter-style injection.
  • embeds_scaling - a lower-level control over how the embeddings scale (V only, K+V, K+V w/ C penalty, K+mean(V) w/ C penalty). Leave this on its default unless you're specifically chasing an artifact you've traced back to it.
  • expand_style (optional-feeling but required, default off) - expands the style influence.
  • image_negative / attn_mask / clip_vision (all optional) - a negative reference image to steer away from, a mask to restrict where the effect applies, and an explicit CLIP vision model if you need to override the default.

Output is a single model (BIZYAIR_MODEL) - feed that straight into your BizyAir sampler like you would any conditioned model.

How to install it

ComfyUI Manager: search "BizyAir," install, restart. Manual clone:

cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git

A BizyAir API key is required - this node's inputs get bundled up and sent to SiliconFlow's cloud for the actual inference.

Common issues

Output looks like neither reference. This is usually a weight balance problem, not a node problem - with two images competing for influence, it's easy to land in a middle ground that resembles both poorly instead of either well. Try pushing one weight toward 0 temporarily to isolate what each reference is actually contributing before dialing both back in together.

Composition reference gets ignored. Composition is generally the harder signal to hold onto against a strong text prompt - if your prompt describes a layout that fights the composition image, the prompt often wins. Try softening the prompt's own layout language, or raising weight_composition relative to weight_style.

Detail looks soft or mushy. Running IP-Adapter-style conditioning across the entire step range is a known cause of reduced detail in the final image - bring end_at down from 1.0 so the effect only applies during the earlier denoising steps, then let the later steps sharpen up unconstrained.

Type errors on the model socket. It's BIZYAIR_MODEL, not a stock ComfyUI MODEL - you need a BizyAir model loader feeding it, not a local checkpoint loader.

Category☁️BizyAir/ipadapter/style_composition

Inputs (14)

NameTypeDefaultDescription
modelBIZYAIR_MODEL
ipadapterIPADAPTER
image_styleIMAGE
image_compositionIMAGE
weight_styleFLOAT1.00-1–5
weight_compositionFLOAT1.00-1–5
expand_styleBOOLEANfalse
combine_embedsCOMBOaverage5 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
modelBIZYAIR_MODEL