Project Folder v2
Never hand-type an output path again
- batch_no
- path
- width
- height
- batch_size
Every serious ComfyUI user eventually gets sick of finding their outputs in one flat, endless output/ directory. Project Folder v2 is the fix: it builds a dated, named folder path for you and hands it to whatever save node you're using, so every run lands in its own tidy directory. It also carries a resolution preset list and batch size, which makes it the one node that quietly coordinates three things that usually drift apart - where files go, at what size they're made, and how many at once.
How it works
Mechanically it's just string construction with os.path.join, but the pieces it combines are the useful part. It takes your project_root_name, optionally stamps today's date onto it (prefix or postfix, formatted by date_time_format - a Python strftime string, default %Y-%m-%d), optionally tacks on a batch subfolder named by batch_folder_name (default batch_{}, with {} filled from a batch_no input), and returns the whole path.
The relative_path toggle decides what you get back: true gives you ./MyProject/2026-08-16 - a path relative to ComfyUI's output folder, which save nodes like the pack's Save Images happily accept - while false returns an absolute path under the output directory. If the date string you type is invalid, the code quietly falls back to %Y-%m-%d-%H%M%S rather than crashing.
The inputs that matter
project_root_name- the folder name. DefaultMyProject.add_date_time+date_time_format- whether and how the date gets attached. Postfix is a good default:MyProject/2026-08-16reads naturally.create_batch_folder+batch_folder_name- turn this on when you're running batches and want each batch number in its own subfolder.resolution,width,height- pick a preset like832x1216 (2:3 Flux, SDXL)and it fills width/height for you;Customlets you set them by hand. These ride along in the outputs so your empty-latent node and save path agree without you doing the math.
Outputs are path (STRING), width, height and batch_size (INTs) - feed path to a save node and width/height to your latent or resolution settings node.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart ComfyUI, or use ComfyUI Manager (search "ComfyUI-RvTools_v2"). No model files; deps are the pack's standard opencv-python, pilgram, pynvml and piexif.
Common issues
The batch_folder_name placeholder only fills in when you actually connect a batch_no input - leave it unplugged and {} stays literal, so you get a folder literally named batch_{}. Not a bug, but it's the thing that confuses people on first use. And remember the pack is unmaintained (superseded by ComfyUI_Eclipse); the node itself is stable, but if you're building new workflows from scratch, the Eclipse equivalent is the version that'll keep getting updates.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| project_root_name | STRING | MyProject | — |
| date_time_format | STRING | %Y-%m-%d | — |
| add_date_time | COMBO | postfix | 3 options: disable, prefix, postfix |
| batch_folder_name | STRING | batch_{} | — |
| create_batch_folder | BOOLEAN | false | — |
| relative_path | BOOLEAN | true | — |
| resolution | COMBO | 33 options: Custom, 512x512 (1:1), 512x682 (3:4), 512x768 (2:3), 512x910 (9:16), 512x952 (1:1.85), +27 | |
| width | INT | 51216–32768 | — |
| height | INT | 51216–32768 | — |
| batch_size | INT | 11–4096 | — |
| batch_noopt | * | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| path | STRING | — |
| width | INT | — |
| height | INT | — |
| batch_size | INT | — |