Plot Batch Float (mtb)
A matplotlib chart of your float values, right in the graph
- plot
Sometimes the fastest way to debug a schedule of values - an eased curve out of Fit Number (mtb), a per-frame weight list, anything numeric moving through your graph - isn't to squint at numbers in a log, it's to see them. That's this node's whole job: it uses matplotlib to draw your FLOATS values as a scatter plot, each series in a different color, and hands you the result back as an IMAGE you can preview right in ComfyUI like any other picture.
A quirk worth being upfront about: the node's own settings - width, height, point size, seed, whether the axis starts at zero - are exactly what's documented here, but the actual values being plotted aren't one of the named inputs listed for this node. In practice that means you wire your FLOATS source directly into the node in the graph rather than through a labeled socket this page can point you at by name. If you're building this from scratch, drop the node in, connect a FLOATS-producing node to it, and let the visible sockets on the node itself guide you - that's more reliable than any description here.
Inputs that matter
width/height(both default 768) - the pixel size of the output plot image.point_size(default 4) - how big each plotted point renders.seed(default 1) - controls the color assignment across series, so the same seed gives you the same color-per-series mapping run to run. Useful if you're comparing plots across multiple runs and want consistent colors rather than a fresh random palette each time.start_at_zero(defaultfalse) - whether the plot's axis starts at zero rather than at the data's own minimum.
Output is a single plot IMAGE - preview it directly, or save it alongside your run for later reference.
Where you'd use it
Anywhere you're not sure a schedule of values is doing what you expect before you commit to a full render - sanity-checking an easing curve out of Fit Number across 120 frames, eyeballing whether a batch of per-frame weights actually looks smooth, or comparing two different interpolation_strength schedules side by side. It's a debugging tool, not something that ends up in a final output.
Installing it
- ComfyUI Manager - search "MTB Nodes", install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/melMass/comfy_mtb, restart. A manual clone needspip install -r requirements.txtrun inside thecomfy_mtbfolder first.
This one genuinely needs matplotlib installed in your ComfyUI environment - it's a heavier dependency than most of this pack's plain-math nodes, and if matplotlib isn't present, this is a plausible candidate for one of the mtb nodes that fails to load.
Common issues & troubleshooting
The node doesn't show up in the node list at all. Check whether matplotlib is actually installed in your ComfyUI environment - pip install matplotlib inside the same Python environment ComfyUI is running in, then restart.
Plot looks empty or flat. Confirm you've actually wired a FLOATS source into the node - since it's not a named, documented socket here, it's easy to forget the connection entirely while focused on the width/height/seed settings that are clearly labeled.
Colors change between runs even with the same data. Check seed - if you didn't fix it, color assignment across series can shift run to run.
Some mtb nodes fail to load at startup in general. Standard for this pack - check the console for [comfy_mtb] STATUS and http://127.0.0.1:8188/mtb for what didn't load and why.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 768 | — |
| height | INT | 768 | — |
| point_size | INT | 4 | — |
| seed | INT | 1 | — |
| start_at_zero | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| plot | IMAGE | — |