Nodes/ComfyUI-Kolors-MZ/IPAdapterAdvanced(kolors) - Legacy
ComfyUI Node Runs on cloud

IPAdapterAdvanced(kolors) - Legacy

Style and identity from a reference, for a model everyone forgot

By MinusZoneAI·Created 2 years ago·Updated about a year ago· 579
IPAdapterAdvanced(kolors) - Legacy
  • model
  • ipadapter
  • image
  • image_negative
  • attn_mask
  • clip_vision
  • MODEL
weight1.00
weight_type
combine_embeds
start_at0.000
end_at1.000
embeds_scaling

IP-Adapter is the no-training way to give a diffusion model an image prompt: hand it a reference photo and a small adapter injects what the picture looks like into the generation, without a LoRA, without training, and without breaking your text prompt. This node is the Kolors build of that idea - it's cubiq's IPAdapterAdvanced, re-exported by MinusZone's Kolors pack under the MZ_ prefix. If you've used IPAdapter on SD 1.5 or SDXL, every control here will feel familiar, because it's the same code with Kolors-sized plumbing underneath.

Read the "Legacy" in the display name carefully. The pack README now says to run IPAdapter with cubiq/ComfyUI_IPAdapter_plus directly and update it to the latest version - the MZ_IPAdapter* nodes are the earlier aliases, still bundled for workflows that already reference them. New Kolors IPAdapter setups should generally use cubiq's own nodes. This article assumes you've hit one of the legacy ones in an old workflow and want to know what it does.

How it works

Kolors is Kuaishou's text-to-image model, built on an SDXL-style UNet but with ChatGLM3 as the text encoder instead of CLIP, and it never got the ecosystem love its quality suggested. The IP-Adapter trick still applies: a CLIP vision encoder turns your reference image into tokens, and the adapter runs its own cross-attention path alongside the frozen text path, so "a portrait in the style of this photo" keeps both signals. The Kolors-specific wrinkle is the model's encoder_hid_proj - a linear layer that squashes the 4096-dim text embedding down to the UNet's 2048 - and the whole adapter chain in this pack is wired around it. That's why you feed this node the Kolors-specific IPADAPTER object and CLIP vision, not generic SDXL ones.

Inputs and outputs that matter

Required: model (your loaded Kolors MODEL), ipadapter (an IPADAPTER object from MZ_IPAdapterModelLoaderKolors), and image (the reference). Then the knobs you'll actually touch:

  • weight - default 1. The community's split: 0.6–0.8 for style transfer, 0.3–0.5 if you want face/identity resemblance and the prompt to stay in charge. Above ~0.8 the reference starts overriding your text.
  • start_at / end_at - which sampling steps the adapter runs over. Running it for the early steps only preserves detail; running it to the end softens the output. This is the single most useful pair of settings on the node.
  • weight_type - linear is the sensible default; style transfer and composition are presets that bias toward those jobs.
  • combine_embeds and embeds_scaling - how the reference interacts with the text embedding (add, concat, average…) and how aggressively. Leave them alone until something looks wrong.

Optional: image_negative (a reference of what you don't want), attn_mask (a MASK that localizes the adapter's influence to part of the canvas), and clip_vision (if you want to override the vision model the IPADAPTER object already loaded). Output is a single MODEL, wired into your KSampler.

Install

Install the pack via ComfyUI Manager (search "ComfyUI-Kolors-MZ") or git clone https://github.com/MinusZoneAI/ComfyUI-Kolors-MZ into custom_nodes, then restart. The code needs no pip packages - the weight is in the model files:

  • IP-Adapter Plus weights: ip_adapter_plus_general.bin from Kwai-Kolors/Kolors-IP-Adapter-Plusmodels/ipadapter/
  • Its image encoder: image_encoder/pytorch_model.binmodels/clip_vision/

Common issues

If the node errors, nine times out of ten it's a missing model file in one of those two folders - the pack won't silently substitute a generic SDXL adapter. If you're on a newer workflow, the README's advice stands: switch to cubiq's ComfyUI_IPAdapter_plus (updated to latest) and skip these legacy aliases entirely.

CategoryMinusZone - Kolors/IPAdapter

Inputs (12)

NameTypeDefaultDescription
modelMODEL
ipadapterIPADAPTER
imageIMAGE
weightFLOAT1.00-1–5
weight_typeCOMBO15 options: linear, ease in, ease out, ease in-out, reverse in-out, weak input, +9
combine_embedsCOMBO5 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
MODELMODEL