Nodes/ComfyUI_Eclipse/Smart Folder
ComfyUI Node

Smart Folder

One node that decides where every image and video lands

By r-vageΒ·Created 10 months agoΒ·Updated a day agoΒ· 31
Smart Folder
    • pipe
    β—„generation_modeImage Modeβ–Ί
    β—„root_folder_imageimagesβ–Ί
    β—„root_folder_videovideosβ–Ί
    β—„create_date_time_foldertrueβ–Ί
    β—„date_time_format%Y-%m-%dβ–Ί
    β—„date_time_positionpostfixβ–Ί
    β—„create_batch_folderfalseβ–Ί
    β—„batch_folder_namebatch_{}β–Ί
    β—„batch_number1β–Ί
    β—„batch_number_controlfixedβ–Ί
    β—„use_image_sizefalseβ–Ί
    β—„image_size832x1216 (2:3 XL/SD3/Flux/HiDream)β–Ί
    β—„width832β–Ί
    β—„height1216β–Ί
    β—„latent_typeSD3 / Flux / Wan / HunyuanVideoβ–Ί
    β—„video_sizeβ–Ύβ–Ί
    β—„video_width576β–Ί
    β—„video_height1024β–Ί
    β—„frame_rate30.00β–Ί
    β—„frame_load_cap162β–Ί
    β—„context_length81β–Ί
    β—„loop_count0β–Ί
    β—„overlap0β–Ί
    β—„skip_first_frames0β–Ί
    β—„skip_calculation0β–Ί
    β—„skip_calculation_controlfixedβ–Ί
    β—„select_every_nth1β–Ί
    β—„batch_size1β–Ί
    β—„use_seedfalseβ–Ί
    β—„seed0β–Ί

    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 (defaults images / videos).
    • create_date_time_folder (on) and date_time_format (%Y-%m-%d by default) - the strftime-based subfolder. Postfix appends the date to the folder name, prefix prepends it.
    • create_batch_folder (off) - adds a batch subfolder using batch_folder_name (supports formatting like batch_{}), with batch_number_control choosing 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_seed and seed - include a seed in the pipe, with -1 random, -2 increment, -3 decrement 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.

    CategoryπŸŒ’ Eclipse/ Folder

    Inputs (30)

    NameTypeDefaultDescription
    generation_modeCOMBOImage ModeSelect generation mode: Image or Video
    root_folder_imageSTRINGimagesRoot folder name for image generation.
    root_folder_videoSTRINGvideosRoot folder name for video generation.
    create_date_time_folderBOOLEANtrueCreate date/time subfolder.
    date_time_formatSTRING%Y-%m-%dDate/time format for folder naming (strftime syntax).
    date_time_positionCOMBOpostfixWhere to add date/time to folder name: prefix, or postfix.
    create_batch_folderBOOLEANfalseEnable batch subfolder configuration.
    batch_folder_nameSTRINGbatch_{}Batch subfolder name. Supports variable formatting (e.g. batch_{}).
    batch_numberINT11–18446744073709550000Batch number to use in batch folder name.
    batch_number_controlCOMBOfixedControl batch number behavior: fixed or increment after each queue.
    use_image_sizeBOOLEANfalseEnable image size configuration. Disable when using Smart Loader for latent size.
    image_sizeCOMBO832x1216 (2:3 XL/SD3/Flux/HiDream)Image size preset.
    widthINT83216–32768Image width in pixels.
    heightINT121616–32768Image height in pixels.
    latent_typeCOMBOSD3 / Flux / Wan / HunyuanVideoLatent format preset β€” sets channels and spatial downscale for correct empty latent creation.
    video_sizeCOMBOVideo size preset.
    video_widthINT57616–32768Video width in pixels.
    video_heightINT102416–32768Video height in pixels.
    frame_rateFLOAT30.008–240Video frame rate (frames per second).
    frame_load_capINT1620–32768Maximum frames to load per batch. Set 0 for no limit.
    context_lengthINT811–32768Context length for WAN models.
    loop_countINT00–32768Calculates the frame_load_cap by using the context length * loop count. this overrides the frame_load_cap value if > 0.
    overlapINT00–32768Overlap Frames between two clips.
    skip_first_framesINT00–4096Number of initial frames to skip.
    skip_calculationINT00–18446744073709550000Additional skip first frames calculation: skip (context_length * value).
    skip_calculation_controlCOMBOfixedControl skip calculation behavior: fixed or increment after each queue.
    select_every_nthINT11–100Select every nth frame from input.
    batch_sizeINT11–4096Batch size (number of items per batch).
    use_seedBOOLEANfalseInclude seed in pipe output.
    seedINT0-3–18446744073709550000Random seed for folder naming. Use -1 for random, -2 to increment, -3 to decrement.

    Outputs (1)

    NameTypeDescription
    pipePIPEβ€”