Nodes/Archive Output/Archive Output
ComfyUI Node

Archive Output

The node that tames your ComfyUI output folder (without touching a pixel)

By jonstreeter·Created about a year ago·Updated 8 months ago· 9
Archive Output
  • trigger
  • status
enabledtrue
archive_folder_nameArchive
skip_hidden_filestrue
skip_extensions.py,.js,.bat,.sh,.json,.yaml,.yml
skip_foldersdatabase

If you've ever opened your ComfyUI/output folder after a long session and stared at 4,000 PNGs in one flat pile, this is the node for you. ArchiveOutputWorkflow - displayed as "Archive Output" - sweeps your output directory clean by moving files into date-structured folders like Archive/2025-11-09, preserving whatever subfolder structure you had. It doesn't delete anything, it doesn't touch the image data, and it costs you one wire.

It's part of a pack that also does PNG-to-JPEG/WebP compression from a settings panel, but this node is the automation half: drop it into a graph, connect anything to it, and every time the workflow runs, the output folder gets tidied. The author calls it "backward compatible," which is pack-speak for "this was the original feature and the fancier UI button came later." Both work; the node exists so archiving can live inside a workflow instead of needing a button click.

How it works

When the node fires, it walks the entire output directory and moves each file into Archive/YYYY-MM-DD/, where the date is the file's modification date, not creation date. Files that already live in subfolders keep their relative path inside the date folder - so output/portraits/run_a/img.png becomes Archive/2025-11-09/portraits/run_a/img.png. A few things never make the trip:

  • hidden files (anything starting with ., on by default)
  • the extensions in skip_extensions - default .py,.js,.bat,.sh,.json,.yaml,.yml
  • any folder named database, and anything starting with _ (unconditionally)
  • the archive folder itself, so it can't recursively archive its own contents

It moves files rather than copying, and if a file with the same name already exists in the archive, it's skipped rather than overwritten. Afterward it walks back and deletes the now-empty directories it left behind. Nice touch for a housekeeping node.

The inputs that matter

There are only two you'll realistically touch:

  • trigger (required, any type) - connect anything here to fire the archive. It's a pure execution trigger; the value is ignored.
  • enabled (default true) - flip this off to mute the node in a workflow without deleting it. Handy for re-running old graphs where you don't want files re-sorted.

The rest - archive_folder_name (default "Archive"), skip_hidden_files, skip_extensions, skip_folders - mirror the settings you'd set in the UI panel anyway.

The single output, status, is a STRING summary of the run ("Archive complete. Moved: X, Skipped: Y, Errors: Z..."). It's not an image or a model; you'd wire it into a text display node if you want to see the count in the graph, or just read it in the console.

The other half of the pack

Worth knowing, because you'll find it in the same repo: the pack's headline feature is actually the compression tool, reached through ComfyUI's settings gear ("Archive Output" → "Compression Settings"), not through this node. It converts PNGs to WebP/JPEG at 70–100% quality and embeds the workflow into EXIF - that metadata trick is lifted from ComfyUI-Image-Saver, which you need installed to drag a compressed image back onto the canvas and restore the graph. The workflow-saved-in-the-file convention is the ecosystem's load-bearing wall: a PNG carries the whole node graph in text chunks, and re-encoding to JPEG/WebP normally throws it away. This pack's whole bet is that you can have the disk savings and keep the workflow, via EXIF.

Where people get burned: the README's "compress" is really convert - it's lossy, so a 5MB PNG becomes a ~0.5MB JPEG and the original is gone if you tick "Delete Original PNG." Leave that box off until you've confirmed a compressed image still loads its workflow in your setup.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/jonstreeter/comfyui-archive-output.git
cd comfyui-archive-output
pip install -r requirements.txt

then restart ComfyUI. That's piexif>=1.1.3 and Pillow>=9.0.0 - Pillow usually ships with ComfyUI, so it's light. You can also try ComfyUI Manager (search "Archive Output") or comfy node install archive-output, but one caveat: in the pack's own release thread, a user reported Manager couldn't find it by search - the registry lagged the release. If Manager comes up empty, the git clone above is the reliable path. If the settings panel doesn't show up after installing, restart ComfyUI and hard-refresh the browser (Ctrl+Shift+R).

One honest limitation: there's no AVIF output, which a commenter on the release thread noted often compresses even harder than WebP. For the 90%-off default use case, WebP at 90% quality is fine - and if you ever hit the JPEG EXIF 65KB ceiling on big workflows (those Load Image nodes bloat metadata fast), switch to WebP and it goes away.

Categoryworkflow/archiving

Inputs (6)

NameTypeDefaultDescription
trigger*
enabledoptBOOLEANtrue
archive_folder_nameoptSTRINGArchive
skip_hidden_filesoptBOOLEANtrue
skip_extensionsoptSTRING.py,.js,.bat,.sh,.json,.yaml,.yml
skip_foldersoptSTRINGdatabase

Outputs (1)

NameTypeDescription
statusSTRING