RsaveDate
A timestamp string for unique filenames — the one-node fix for overwriting your own saves
- date
RsaveDate is the least glamorous node in this pack and probably the one you'll use most. It outputs the current date and time as a string. That's it. One string out, no wires in, no image, no tensor. It exists to solve one specific annoyance: giving every save a filename that can't collide.
In the author's own example workflow it feeds straight into Rsave's filename_prefix, so every .npy dump gets a timestamped name instead of overwriting the last one. Same trick works with any filename input - convert SaveImage's filename_prefix widget to an input (right-click → Convert widget to input) and wire RsaveDate in. Your outputs stop being ComfyUI_00001_.png and become 2026-08-23-14-05-33.png, which is sortable, searchable, and never repeats.
How it works
Two settings, both text boxes, and that's the whole surface:
format(default%Y-%m-%d-%H-%M-%S) - a Pythonstrftimeformat string. The default produces2026-08-23-14-05-33. The codes you'll actually reach for:%Y(year),%m(month),%d(day),%H(24-hour),%M(minute),%S(second). Want the short year?%y. Want hours so it's02:05 PMnot14:05? Swap%Hfor%Iand add%p.prefix(default empty) - just prepended to the result, sogen_turns the default intogen_2026-08-23-14-05-33. No separator is added for you; throw one in the prefix yourself.
The clever bit is invisible: the node implements IS_CHANGED and returns the current time, which tells ComfyUI's cache the value is always stale. Normally ComfyUI skips nodes whose inputs haven't changed - a plain date node would happily hand you yesterday's timestamp on the second run. RsaveDate opts out of that caching, so it fires fresh every single run. That's the whole point, and the pack got it right.
The gotchas
The output is a plain string, not a path - you still need to combine it with a folder or prefix where you're using it. It's your machine's local time, so don't expect it to be UTC, and don't expect any timezone handling; fine for filenames, wrong for anything that needs an absolute timestamp. And it's Python strftime, which has its own conventions - %d is day-of-month here, not day-of-year, and a few codes that feel familiar from other languages won't behave the same.
One honest caveat: because the node always reruns, anything downstream of it gets its cache defeated too (that's the documented behavior of IS_CHANGED nodes). For a timestamp feeding a filename that's exactly what you want - a timestamp that only updates sometimes would be useless. Just know that if you wire it into something heavy, that branch re-executes every run.
Install
Same pack, same story: ComfyUI Manager (search ComfyUI-ResourcesSave) or
cd ComfyUI/custom_nodes
git clone https://github.com/MrFrankHobbidy/ComfyUI-ResourcesSave
then restart. No extra dependencies - it uses only Python's built-in time module. You'll find it under ResourcesSave. Drop it on the canvas, wire the date output into a filename prefix, and you'll never have to guess which file was from when again.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| prefix | STRING | — | |
| format | STRING | %Y-%m-%d-%H-%M-%S | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| date | STRING | — |