ποΈ NL Frame Range
One place to set your start and end, everywhere else just reads
- start_frame
- end_frame
- frame_count
If you've ever rebuilt a video workflow and had to hand-type the same start frame and end frame into five different nodes, this is the node that fixes your life. NL Frame Range is a read-only member of the NOLABEL/Workflow family: no inputs, three INT outputs - start_frame, end_frame, and frame_count - pulled from the frame range you set in the pack's top-bar NL Workflow panel.
The pattern is the same across the whole family. You open the NL Workflow panel, set your shot context once - project, shot, resolution, fps, frame range, project path - and it's saved as workflow-level UI state in ComfyUI/user/default/nl_workflow.json. Then helper nodes like this one read those cached values back into the graph. Change the range in the panel, every node wired to NL Frame Range updates with it. For shot-based work where you're iterating on which frames to render, that single source of truth is the whole selling point.
What you get
start_frame- INT, the first frame of the shot rangeend_frame- INT, the last frameframe_count- INT, the derived count, so you don't have to subtract yourself
There are no inputs and nothing to configure on the node itself. Wire the outputs into anything that takes an INT: an LTXV or Wan Video latent, a batch size, a frame-trim node, a loop counter. If you're generating video with the pack's own LTXV or Wan helpers, this is how you keep the number of frames in sync with what the shot actually calls for.
Install
It ships in ComfyUI-NL_Nodes. ComfyUI Manager β search "ComfyUI-NL_Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/NOLABEL-VFX/ComfyUI-NL_Nodes
# restart ComfyUI
No extra dependencies for this one - it's a plain cached-value reader. The panel it reads from appears in your top bar as "NL Workflow" after the restart.
The gotcha
It's only as good as the panel. If you never set a frame range in NL Workflow, you get defaults, and the node will look broken for no obvious reason. Also remember this is metadata, not magic: nothing here validates that your video model can actually render that many frames, and frame_count isn't recomputed mid-run - it's whatever was resolved when the workflow context was set. It's a convenience that keeps one value in one place, not a safety check.
For a beginner the honest framing is: you don't need this node if you're one-and-done generating a single clip. You want it the moment "which frames" becomes something you change repeatedly.
Inputs (0)
No inputs
Outputs (3)
| Name | Type | Description |
|---|---|---|
| start_frame | INT | β |
| end_frame | INT | β |
| frame_count | INT | β |