Nodes/kentskooking-nodes/Wave Visualizer
ComfyUI Node

Wave Visualizer

See your wave before you burn the GPU hours

By Kentskooking·Created 10 months ago·Updated 15 days ago· 8
Wave Visualizer
  • wave_config
  • visualization
width800
height400
wave_selectorall

Wave-driven animation is hard to reason about from a stack of numbers. start_at_step: 16, end_at_step: 36, step_floor: 5 - what does that actually feel like across 120 frames? That's the gap Wave Visualizer fills. You feed it the wave_config from any controller in this pack and it renders the wave as an image: the steps, zoom, denoise, and strength curves drawn out so you can see the rhythm before you commit to an hour of sampling.

How it works

It reads the wave_config dict, figures out which controller produced it (video, image, interpolation, or explorer-conditioning - the config carries a controller type), and draws the relevant curves onto a canvas you size. It understands each controller's language: step ramps for the video/image controllers, the bell-curve denoise profile for interpolation, the crossfade strengths for the explorer controller. The wave_selector input picks which curve to focus on, or all to overlay everything.

The one output, visualization, is an IMAGE - so you need a preview node (Preview Image) after it to actually see it. It's not a widget or a debug console; it's a regular image in the graph, which means you can save it, compare versions side by side, whatever you like.

Inputs

  • wave_config - from any controller in the pack. This is the only required wiring.
  • width / height - canvas size (defaults 800×400; the image is generated, not resized, so make it big enough to actually read the curves).
  • wave_selector - all, steps, denoise, zoom, clip_strength, controlnet_strength, ipadapter_weight, positive_a_strength, positive_b_strength, or positive_c_strength. Pick one curve when the overlay gets busy.

The controlnet/ipadapter selectors only show data if those nodes actually enriched the config - a bare controller gives you steps, denoise, zoom and clip; the extras appear once you chain the apply/controller nodes in.

Where it sits

Drop it in parallel to your sampler, like you'd add a preview to any node: controller → (Visualizer + Preview) off to the side, controller → sampler as the main line. Because the visualizer only reads the config, it never interferes with the render path. The tip that saves real time: wire it up, tweak the controller until the curve looks right, then run the sampler. A step curve that spikes in the wrong place is obvious in thirty seconds as a graph and invisible until frame 400 as a render.

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. No models, no extra dependencies.

Gotchas

  • No image appears - you forgot the Preview Image node. The output is IMAGE, not a widget, so the graph won't show it on its own.
  • Only some curves show - expected. The visualizer can only draw what's in the config; a bare Video Wave Controller has no controlnet or ipadapter data to plot until you chain those nodes in.
  • It needs a real controller upstream - the config must come from one of this pack's controllers. Feeding it a hand-made dict of the right shape mostly works, but there's no reason to when a controller exists.

Honest verdict: this is the node you'll love on day one and mostly ignore by day ten, once you've internalized what each wave shape does. That first week, it's the difference between tuning blind and tuning with your eyes.

Categorykentskooking/visualization

Inputs (4)

NameTypeDefaultDescription
wave_configWAVE_CONFIG
widthINT800100–2000
heightINT400100–2000
wave_selectorCOMBOall10 options: all, steps, denoise, zoom, clip_strength, controlnet_strength, +4

Outputs (1)

NameTypeDescription
visualizationIMAGE