ποΈ NL FPS
Your shot's frame rate, as a node
- fps
- fps_int
NL FPS is one of those nodes that looks almost too trivial to exist - no inputs, two outputs, done. But it earns its place in this pack's workflow-context system, and once you're building for a studio pipeline you'll stop hardcoding numbers and start asking for them.
The idea is simple: this pack keeps a "shot context" in the top-bar NL Workflow panel - project, scene, shot, resolution, frame range, and the frame rate your shot is supposed to run at. NL FPS reads the FPS value from that cached context and exposes it as a node so other nodes in your graph can consume it. Set the frame rate once in the panel; every downstream node that needs it just plugs into this.
Outputs are fps as a FLOAT and fps_int as the integer version. Wire fps into anything that wants a frame-rate number - a video writer computing durations, a node that generates timecode, or a sampler that needs frames-per-second to reason about motion. The integer output exists because some nodes are picky about getting whole numbers.
Why you'd bother
If you're a solo user generating one-off clips, this is close to useless - type 24 where you need it and move on. It starts paying rent in two situations. First, consistency: if your whole pipeline reads FPS from context, changing the shot's frame rate in one place updates every dependent node, and you can't accidentally render a 25fps shot into a 24fps project because you misremembered. Second, reusable workflows: share a template with a colleague and it picks up their context instead of carrying your hardcoded values around.
Install and the gotcha
Standard pack install - ComfyUI Manager β "ComfyUI-NL_Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/NOLABEL-VFX/ComfyUI-NL_Nodes
Restart. Then the one thing that trips people: this node has nothing to read until you've opened the NL Workflow panel and applied a context. Until then the output reflects defaults (which is to say, an unset frame rate). If fps comes back wrong or zero, that's not the node being broken - it's the context being empty. Set your project and frame rate in the panel first, and remember the pack persists that to ComfyUI/user/default/nl_workflow.json, so a restart won't wipe it.
Inputs (0)
No inputs
Outputs (2)
| Name | Type | Description |
|---|---|---|
| fps | FLOAT | β |
| fps_int | INT | β |