Smart Folder
One node that decides where every image and video lands
- pipe
If you generate more than a handful of images, you've had the moment where your output folder is a flat graveyard of ComfyUI_00001.png files and you can't find Tuesday's batch. Smart Folder is Eclipse's answer: one settings node that defines a structured output path - root folder, date/time subfolder, optional batch subfolder - and hands the whole configuration to downstream nodes as a single pipe. Set it once, and every save in the workflow follows the same folder discipline.
It's also the node where the pack's pipe ecosystem starts being useful instead of abstract. Smart Folder packs a surprisingly large amount of generation configuration into that one pipe output - folder structure, image or video resolution, latent type, video frame parameters, even an optional seed - so downstream Eclipse nodes (Save Images, Pipe Out Smart Folder, the various context and loader nodes) can read what they need without a dozen separate wires. That's the pipe philosophy in the README: bundle related parameters into one object instead of connecting ten wires.
How it works
The path builds up in layers:
<ComfyUI output dir> / <root_folder> / [date_time] / [batch_folder]
The inputs that matter, keeping it to the ones you'll actually touch:
generation_mode- Image Mode or Video Mode. The node shows different settings per mode, so don't hunt for video controls in image mode.root_folder_image/root_folder_video- the base folder name for each mode (defaultsimages/videos).create_date_time_folder(on) anddate_time_format(%Y-%m-%dby default) - the strftime-based subfolder. Postfix appends the date to the folder name, prefix prepends it.create_batch_folder(off) - adds a batch subfolder usingbatch_folder_name(supports formatting likebatch_{}), withbatch_number_controlchoosing fixed or increment-after-each-queue.use_image_size(off) - enables the image resolution block (preset dropdown, width/height,latent_type). The tooltip says it straight: disable this when using Smart Loader for latent size, so you don't fight two sources of truth.use_seedandseed- include a seed in the pipe, with-1random,-2increment,-3decrement for folder naming.
The pipe output carries all of it downstream.
Where it fits
Any workflow that saves output - which is to say, every workflow. It shines in two cases: long-running batch jobs where a date-and-batch folder structure keeps runs separable, and template workflows you share, where the folder discipline rides along with the graph. Pair it with the pack's Save Images node, which knows how to consume the pipe and build filenames from it.
Installing it
Part of ComfyUI_Eclipse:
git clone https://github.com/r-vage/ComfyUI_Eclipse custom_nodes/ComfyUI_Eclipse
Or ComfyUI Manager β search "ComfyUI_Eclipse" β install and restart. No models. It uses standard ComfyUI output paths, so nothing extra to configure.
Gotchas
The main trap is the two sources of truth: if you enable use_image_size and let a Smart Loader set latent size, they can disagree - the tooltip's advice to disable image size when Smart Loader is in the loop is there because people hit exactly that. And remember the video parameters (context length, loop count, overlap) only show in Video Mode; users hunting for them in Image Mode assume the node is broken when it isn't. Old RvTools-era workflows predating v4.0.0 need the migration tool; fresh ones load clean.
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| generation_mode | COMBO | Image Mode | Select generation mode: Image or Video |
| root_folder_image | STRING | images | Root folder name for image generation. |
| root_folder_video | STRING | videos | Root folder name for video generation. |
| create_date_time_folder | BOOLEAN | true | Create date/time subfolder. |
| date_time_format | STRING | %Y-%m-%d | Date/time format for folder naming (strftime syntax). |
| date_time_position | COMBO | postfix | Where to add date/time to folder name: prefix, or postfix. |
| create_batch_folder | BOOLEAN | false | Enable batch subfolder configuration. |
| batch_folder_name | STRING | batch_{} | Batch subfolder name. Supports variable formatting (e.g. batch_{}). |
| batch_number | INT | 11β18446744073709550000 | Batch number to use in batch folder name. |
| batch_number_control | COMBO | fixed | Control batch number behavior: fixed or increment after each queue. |
| use_image_size | BOOLEAN | false | Enable image size configuration. Disable when using Smart Loader for latent size. |
| image_size | COMBO | 832x1216 (2:3 XL/SD3/Flux/HiDream) | Image size preset. |
| width | INT | 83216β32768 | Image width in pixels. |
| height | INT | 121616β32768 | Image height in pixels. |
| latent_type | COMBO | SD3 / Flux / Wan / HunyuanVideo | Latent format preset β sets channels and spatial downscale for correct empty latent creation. |
| video_size | COMBO | Video size preset. | |
| video_width | INT | 57616β32768 | Video width in pixels. |
| video_height | INT | 102416β32768 | Video height in pixels. |
| frame_rate | FLOAT | 30.008β240 | Video frame rate (frames per second). |
| frame_load_cap | INT | 1620β32768 | Maximum frames to load per batch. Set 0 for no limit. |
| context_length | INT | 811β32768 | Context length for WAN models. |
| loop_count | INT | 00β32768 | Calculates the frame_load_cap by using the context length * loop count. this overrides the frame_load_cap value if > 0. |
| overlap | INT | 00β32768 | Overlap Frames between two clips. |
| skip_first_frames | INT | 00β4096 | Number of initial frames to skip. |
| skip_calculation | INT | 00β18446744073709550000 | Additional skip first frames calculation: skip (context_length * value). |
| skip_calculation_control | COMBO | fixed | Control skip calculation behavior: fixed or increment after each queue. |
| select_every_nth | INT | 11β100 | Select every nth frame from input. |
| batch_size | INT | 11β4096 | Batch size (number of items per batch). |
| use_seed | BOOLEAN | false | Include seed in pipe output. |
| seed | INT | 0-3β18446744073709550000 | Random seed for folder naming. Use -1 for random, -2 to increment, -3 to decrement. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE | β |