Dynamic Start Index
The Memory Your Video Loop Is Missing
- INT
Video work has a classic failure mode the author of this pack calls "batch amnesia." You're processing a long video in chunks to fit in VRAM - 30 frames at a time - but every time you run the workflow, it starts from frame 0 again, because nothing remembers where the last run stopped. Dynamic Start Index is the memory. It's a persistent counter that tells your video loader which chunk to grab next: 0 on the first run, then batch_size, then 2 × batch_size, and so on, forever.
How it works
The mechanism is almost embarrassingly small: the node keeps an index in memory, returns it, then adds batch_size to itself for next time.
batch_size(int, default 30) - how many frames each loop processes; set it to match your video loader's frame chunkreset_counter(bool, default false) - flip this to snap the counter back to 0
Output is a single INT. You wire it into the start_at_frame input of a batch video loader (like the Video Helper Suite's Load Video, or the pack's own Load Video Path) and, on each run, the loader picks up exactly where the last run ended. First run: 0. Second: 30. Third: 60. That's the whole loop, solved.
The two gotchas that matter
- State lives in the node, not on disk. The counter is an attribute on the node instance - which means it resets to 0 whenever ComfyUI restarts or the graph is reloaded. If your multi-session render depends on continuity, that's a feature ("start fresh every launch") or a bug ("I lost my place"), depending on your expectations. There's no persistence file.
reset_counteris sticky in intent. It's a one-shot reset toggle: when you flip it on and run, the counter zeroes. Flip it back off before your next run or you'll keep resetting. If a chunked render is producing the same frames over and over, check whether this toggle got left on.
Also remember: this only advances when the workflow runs. If a run fails after the counter advanced, the next run skips that chunk - a genuinely fiddly edge case in long unattended renders.
Why you'd reach for it
Any workflow that processes video in slices - long-form video-to-video, frame-by-frame analysis, memory-constrained upscaling - where re-running the whole thing would mean reprocessing frames you already did. The author built it specifically for looping workflows that need a counter that behaves like memory, and it does exactly that: set batch_size, connect INT to start_at_frame, and stop re-watching the same thirty frames.
Installing it
It ships with the whole Creepybits pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Creepybits/ComfyUI-Creepy_nodes.git
Restart ComfyUI, or find "Creepy" in ComfyUI Manager. No model downloads; the pack's requirements install on first launch. It's one integer out of one tiny node - but for chunked video processing, that integer is the difference between "renders in one sitting" and "renders the first 30 frames on loop forever."
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| batch_size | INT | 301–4096 | — |
| reset_counter | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| INT | INT | — |