Nodes/kentskooking-nodes/Wave IPAdapter Controller
ComfyUI Node

Wave IPAdapter Controller

Wave-modulate IPAdapter weight over time

By Kentskooking·Created 10 months ago·Updated 15 days ago· 8
Wave IPAdapter Controller
  • wave_config
  • wave_config
weight_min0.50
weight_max1.00
start_at_min0.000
start_at_max0.000
end_at_min1.000
end_at_max1.000

The problem with a fixed IPAdapter weight in an animation is the same as with a fixed ControlNet: the reference image dominates every frame equally, and the video reads as "this person, always, no matter what." Wave IPAdapter Controller fixes that by letting the adapter's weight - and its influence window - pump up and down along the wave cycle. Reference identity holds hard at the cycle's peak, relaxes at the trough, and the animation breathes between "deeply that person" and "only kinda that person."

What it does

Pure config node: wave_config in, wave_config out, zero model work. It stamps IPAdapter modulation parameters onto the config, and the iterative samplers evaluate them per frame on the same wave clock as everything else. Six floats, in min/max pairs:

  • weight_min / weight_max - the range the IPAdapter weight oscillates between (defaults 0.5 → 1.0). The default max of 1.0 is full reference pull; min 0.5 is a half-loose grip.
  • start_at_min / start_at_max - the range for when the adapter starts applying within each frame's sample (0–1 fraction of denoise).
  • end_at_min / end_at_max - the range for when it stops applying.

The weight pair is what you'll tune; start/end ranges are mostly for edge cases like "only apply the reference in the second half of every frame." If you're not sure you need it, you probably just want a static weight from Wave IPAdapter Advanced and no controller at all.

Where it sits

Chain: Wave IPAdapter AdvancedWave IPAdapter Controller → sampler. The Advanced node stores the base settings and the reference images; this controller modulates the weight on top. It takes the enriched config from the Advanced node and hands the modulated config downstream. The mirror image of Wave ControlNet Controller, but for the reference-identity path instead of the structure path.

Installing it

Part of kentskooking-nodes: ComfyUI Manager → search kentskooking-nodes → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Kentskooking/kentskooking-nodes

Restart after. And remember the family rule: if you're using any IPAdapter node in this pack, ComfyUI_IPAdapter_plus (cubiq's) has to be installed separately, or the samplers silently disable IPAdapter:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git comfyui_ipadapter_plus

Tuning notes

Start with the defaults and listen to what the animation is doing. Identity too sticky → drop weight_max toward 0.8 or widen the min/max gap so the trough really lets go. Identity gone at the troughs → raise weight_min. One gotcha: this node modulates only the wave-attached IPAdapter path. If you applied IPAdapter with a stock node elsewhere in the graph, this controller has nothing to do with it - the wave config never touches that application.

Categorykentskooking/controllers

Inputs (7)

NameTypeDefaultDescription
wave_configWAVE_CONFIG
weight_minFLOAT0.50-1–5
weight_maxFLOAT1.00-1–5
start_at_minFLOAT0.0000–1
start_at_maxFLOAT0.0000–1
end_at_minFLOAT1.0000–1
end_at_maxFLOAT1.0000–1

Outputs (1)

NameTypeDescription
wave_configWAVE_CONFIG