Floats Visualizer
See your weight curves before you trust them
- floats
- floats_optional1
- floats_optional2
- visual_graph
Half of debugging an audio-reactive workflow is asking "is this weight curve actually what I think it is?" Floats Visualizer is the node that answers it with a picture. It takes up to three lists of floats and plots them on one graph, so you can compare your audio weights, your peaks, and your processed weights side by side before you wire any of them into a sampler.
How it works
The primary floats input is required; floats_optional1 and floats_optional2 are optional for comparison. Each list gets its own color and line style - blue solid, green dashed, red dash-dot - so they're easy to tell apart even when they overlap. You can set title, x_label, and y_label if you want something more descriptive than "Graph / X-Axis / Y-Axis."
The output visual_graph is a matplotlib plot rendered as an IMAGE, which means you can hang a Preview Image node on it, or even save it to disk. It's a diagnostic tool, not a data tool - you're looking at shape, not values.
One behavior worth knowing: if the lists are different lengths, the node truncates everything to the shortest one so the x-axis stays consistent. That's almost always what you want when comparing, but it does mean a short list silently hides the tail of a long one.
Why you'd reach for it
In this pack specifically, it's the sanity check for the whole audio pipeline. You've got audio_weights from Audio Analysis, peaks_weights from Audio Peaks Detection, and process_weights from Edit Audio Weights - plotting all three together instantly shows you whether your peaks land on the right transients, whether smoothing murdered your dynamics, and whether the rescaling put the curve in the range you wanted. It's the difference between tuning blind and tuning with eyes open.
Outside audio it's a general-purpose utility: compare any float lists, check a custom schedule, eyeball a mask-derived curve from Mask To Float. If you work with per-frame weight data in ComfyUI, this becomes the node you reach for constantly.
Gotchas
- It's a debug node, not a save node. The graph renders at a fixed 12-inch figure size; for a pixel-perfect export you'll want to re-plot in matplotlib yourself.
- If
visual_graphcomes back empty or black, check that your inputs are actuallyFLOATSlists - passing a mismatched type (or None) makes the plot fail silently and returns nothing. - It won't catch a wrong curve, just show you one. Use it to verify, then decide.
Install
The usual:
cd ComfyUI/custom_nodes
git clone https://github.com/yvann-ba/ComfyUI_Yvann-Nodes
or ComfyUI Manager → search ComfyUI_Yvann-Nodes. Requires matplotlib, which the pack already pulls in - no extra setup beyond the pack install.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| floats | FLOATS | Primary list of floats to visualize | |
| title | STRING | Graph | Title displayed at top of graph |
| x_label | STRING | X-Axis | Label for the horizontal axis |
| y_label | STRING | Y-Axis | Label for the vertical axis |
| floats_optional1opt | FLOATS | Second list of floats to compare (green dashed) | |
| floats_optional2opt | FLOATS | Third list of floats to compare (red dash-dot) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| visual_graph | IMAGE | — |