Academia SD Time Calculator ⏱️
Frames and fps finally agree — a pocket calculator for video workflows
- FRAMES
- FPS
- duration
Every video workflow in ComfyUI eventually asks the same question: how long is this clip, and does 33 frames at 24 fps actually match what my video combine node expects? This node is a tiny arithmetic answer to that - set the frames and the fps, and it shows you the duration in seconds while also passing both values through as proper typed outputs.
What it actually does
It's a calculator with training wheels, and that's fine. Two inputs - frames (INT, default 33) and fps (FLOAT, default 24) - and it computes duration the boring, correct way: frames divided by fps. The result appears instantly on a green LED-style display on the node face, no queue needed. So when you're tuning an LTX-Video or Stable Video Diffusion setup and you want a 2-second clip, you can fiddle with frames until the display reads "2.0" before you ever hit queue.
The two outputs are just the inputs echoed back as typed values: FRAMES (INT) and FPS (FLOAT). Wire them into your video sampler's frames, your Video Combine node's frame_rate, or anywhere else that needs to agree with what you typed.
The part that earns its keep
Decimal framerates. Native ComfyUI widgets make you fight for 23.976 or 29.97, and this node accepts them without drama because fps is a FLOAT with a 0.1 step and up to 240. If you've ever had audio drift because your combine node ran at 24 while your reference clip was 23.976, you know exactly why a node that keeps the decimal around is worth having.
It's also genuinely tiny - the README claims it compresses down to ~180px wide - so it tucks next to a sampler without turning your canvas into a spreadsheet.
Install and gotchas
Same pack install as everything else here: ComfyUI Manager → search "AcademiaSD", or git clone https://github.com/AcademiaSD/comfyui_AcademiaSD into custom_nodes/, then restart. No dependencies beyond what ships with ComfyUI.
The honest caveat: this node computes and echoes; it doesn't enforce anything. If your sampler ignores the frames you wired in because the workflow hardcodes its own value, the display lies to you about what will actually render. And the duration shown is per-clip, not accounting for video extension passes - for looping or keyframe workflows, add up the passes yourself. For a plain "how long is this" check, though, it's the fastest node on the canvas.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | INT | 331–99999 | — |
| fps | FLOAT | 24.00.1–240 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| FRAMES | INT | — |
| FPS | FLOAT | — |
| duration | FLOAT | — |