Nodes/ComfyUI-RvTools_v2/Project Folder v2
ComfyUI Node

Project Folder v2

Never hand-type an output path again

By r-vage·Created about a year ago·Updated 5 months ago· 23
Project Folder v2
  • batch_no
  • path
  • width
  • height
  • batch_size
project_root_nameMyProject
date_time_format%Y-%m-%d
add_date_timepostfix
batch_folder_namebatch_{}
create_batch_folderfalse
relative_pathtrue
resolution
width512
height512
batch_size1

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. Default MyProject.
  • add_date_time + date_time_format - whether and how the date gets attached. Postfix is a good default: MyProject/2026-08-16 reads 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 like 832x1216 (2:3 Flux, SDXL) and it fills width/height for you; Custom lets 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.

Category🫦 RvTools II/ Folder

Inputs (11)

NameTypeDefaultDescription
project_root_nameSTRINGMyProject
date_time_formatSTRING%Y-%m-%d
add_date_timeCOMBOpostfix3 options: disable, prefix, postfix
batch_folder_nameSTRINGbatch_{}
create_batch_folderBOOLEANfalse
relative_pathBOOLEANtrue
resolutionCOMBO33 options: Custom, 512x512 (1:1), 512x682 (3:4), 512x768 (2:3), 512x910 (9:16), 512x952 (1:1.85), +27
widthINT51216–32768
heightINT51216–32768
batch_sizeINT11–4096
batch_noopt*

Outputs (4)

NameTypeDescription
pathSTRING
widthINT
heightINT
batch_sizeINT