ACEStep Analyze Latent β‘π ‘π π £π
Sanity-check an ACE-Step latent before you decode it
- latents
- info
- duration_seconds
- frame_count
- channels
This is a pure debug node, and it earns its place for exactly that reason: ACE-Step latents aren't human-readable, so when you're chaining extend/repaint/track-generation steps together, you have no easy way to check "did that actually add the seconds I expected" without decoding all the way to audio first. Plug a latent in here and get the answer instantly.
Part of ryanontheinside's ACE-Step tooling - the kind of small utility that doesn't show up in demo videos but saves real time once you're actually building a multi-step pipeline.
How it works
It just reads the shape and metadata of whatever LATENT you hand it and reports back in plain terms - no generation, no side effects, safe to drop anywhere in a graph as a checkpoint. Because it doesn't touch the sampler or the model, it costs essentially nothing to leave wired in permanently after, say, every extend step, the same way you'd leave a print statement in a script while you're actively debugging it.
The inputs and outputs that matter
latents- the only input, any ACE-StepLATENT.
Four outputs: info (a human-readable summary string), duration_seconds, frame_count, and channels. For most people, duration_seconds is the one you actually look at - everything else is there for when something's genuinely gone wrong and you need to see the raw numbers.
How to install it
Via ComfyUI Manager, search RyanOnTheInside. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
then restart. Nothing else to fetch - it operates on whatever latent your pipeline already produced.
Common issues & troubleshooting
Confusing this with AudioLatentInfo. The pack has two similar-sounding inspector nodes. This one is the simpler of the pair and doesn't ask for a frame_rate - it appears to target the newer ACE-Step latent format directly. AudioLatentInfo is the older sibling that needs you to supply a frame rate manually. If the numbers from one don't match your expectations, try the other and see which one actually matches the pipeline version you're running.
Duration reads as zero or nonsense. That almost always means the latent upstream is empty, malformed, or came from a node that errored silently - treat it as a signal to check the step before this one, not this node itself.
channels looks unexpected. Most music is stereo, so seeing 2 here is normal; if you're getting 1, whatever generated the latent produced mono output, which is worth knowing before you decode all the way to audio and are surprised by it there instead.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| latents | LATENT | β |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| info | STRING | β |
| duration_seconds | FLOAT | β |
| frame_count | INT | β |
| channels | INT | β |