Nodes/RyanOnTheInside/ACEStep Time Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

ACEStep Time Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Convert seconds to ACE-Step latent frame numbers

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
ACEStep Time Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
    • info
    • start_frame
    • end_frame
    β—„start_time0.0β–Ί
    β—„end_time10.0β–Ί

    Most of the guider nodes in this pack are kind enough to take start/end times in plain seconds. But ACE-Step itself works in latent frames, and if you're doing anything more custom - slicing a latent manually, wiring frame indices into something outside this pack's ready-made nodes - you need the actual frame numbers. This tiny node does the conversion.

    Part of ryanontheinside's ACE-Step utility set, the kind of node you don't think about until you need it.

    How it works

    Give it a start and end time in seconds, and it converts both to frame indices using the latent frame rate the rest of the ACE-Step nodes in this pack assume, then hands you an info string summarizing the conversion alongside the raw numbers. It's deliberately a one-trick node - no rounding options, no alternate rate input - which keeps it predictable at the cost of flexibility you'll only miss if you're deep in custom latent surgery.

    The inputs and outputs that matter

    • start_time - default 0.
    • end_time - default 10.

    Both in seconds. Outputs are info (a readable summary string), start_frame, and end_frame - the two INT values you'd actually wire into anything downstream that wants frame indices instead of seconds.

    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 to download beyond the node code itself.

    Common issues & troubleshooting

    Frame numbers look off by roughly a factor of two. The frame rate this node assumes isn't exposed as an input, so it's baked in for one ACE-Step generation. If your numbers seem wrong, you're likely mixing 1.0-era latents (which run at a different rate) with 1.5-era timing, or vice versa - check which version's nodes you're actually working with elsewhere in the graph.

    Not sure you even need this node. If you're only using the higher-level guiders (Extend, Hybrid, Lego) and the Mask Visualizer, you probably don't - they all take seconds directly. This one is for when you're stepping outside those and need raw frame math yourself.

    start_time after end_time, or negative values. Nothing in the schema stops you from entering a range that doesn't make sense; the node will convert whatever numbers you give it, so if the resulting frames look inverted or nonsensical, check your own inputs before assuming the conversion is broken.

    Categorylatent/audio

    Inputs (2)

    NameTypeDefaultDescription
    start_timeFLOAT0.00–1000β€”
    end_timeFLOAT10.00–1000β€”

    Outputs (3)

    NameTypeDescription
    infoSTRINGβ€”
    start_frameINTβ€”
    end_frameINTβ€”