Nodes/ZC-image-batch-audit/ZC Image Batch Audit
ComfyUI Node

ZC Image Batch Audit

The preflight checklist your ComfyUI output folder never had

By lucaszhouc·Created 3 days ago·Updated 3 days ago· 0
ZC Image Batch Audit
    • html_report
    • json_report
    • image_count
    • finding_count
    subfolder
    recursivetrue
    min_width0
    min_height0
    thumbnail_width180

    ZC Image Batch Audit is the node you add right before you publish a batch of generated images and find out, too late, that three of them are corrupt, two are pixel-for-pixel duplicates, and one came out 512×512 when you needed 1024. It doesn't generate anything - it's a quality gate. Point it at a subfolder of your ComfyUI output directory, queue it, and it writes a local HTML proof sheet plus a JSON report listing every image with its dimensions, size, hash, and anything that looks wrong. It was extracted from a real publishing workflow, and it shows: the feature list reads like the specific things that bite you on release day, not a general-purpose "batch manager."

    The name is slightly misleading in the best way. There's no "audit" API being called, no upload, no key. Everything runs locally with a single dependency (Pillow). It's the kind of tiny utility node the ecosystem is full of - plumbing, not pixels - and if you batch-generate for Civitai, a portfolio, or a comic project, it's the one you'll reach for.

    How it works

    Under the hood it's a scan plus a report renderer. The node resolves your subfolder relative to ComfyUI's configured output directory (the same one folder_paths.get_output_directory() returns), checks the path can't escape that root (a ../ attempt raises an error), then walks PNG, JPEG, WebP, and GIF files - recursively if you want. For each image it records dimensions, format, color mode, byte size, and a SHA-256 hash. Then it flags three things: unreadable/corrupt files, exact byte duplicates (files whose hashes match), and any image under your minimum size.

    The HTML report embeds reduced-size PNG thumbnails, so it stays readable offline and doubles as a visual proof sheet. Each card links back to the original file, but the links are relative - keep the report next to the image folder and the links work; move the HTML alone and they won't. Note what it doesn't claim: duplicate detection is exact-hash only. Two visually identical images that were recompressed differently won't be flagged, so use it as a preflight, not a substitute for eyeballing your own output.

    The inputs that matter

    There are only five, and you'll touch maybe three:

    • subfolder - the folder to scan, relative to ComfyUI's output directory. Empty string scans the output root itself.
    • recursive - defaults to true; flip off for flat folders.
    • min_width / min_height - the real "publishing" controls. 0 disables the check, so for a Civitai-style preflight set both to your required resolution. Any image narrower or shorter gets flagged.
    • thumbnail_width - how big the embedded previews are. Leave it at 180 unless you're auditing very few files.

    It's an output node, so you wire nothing out of it, but it does return four values if you ever want them: html_report and json_report (the paths it wrote), plus image_count and finding_count. One nice touch for automation: the node re-runs every time you queue, because files in the output folder can change without a workflow edit. That's deliberate, and it means your preflight is never stale.

    Installing it

    ComfyUI Manager is the easy route - search for ZC Image Batch Audit (the pack title is ZC-image-batch-audit) and install. Or clone it manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/lucaszhouc/ZC-image-batch-audit.git
    cd ZC-image-batch-audit
    python -m pip install -r requirements.txt
    

    Restart ComfyUI and you'll find ZC → quality → ZC Image Batch Audit. The whole dependency footprint is Pillow>=10,<13 - no torch, no model files, nothing heavy. There's also a standalone CLI (pipx install . gives you image-batch-audit) with a --fail-on-findings flag that returns exit code 2 when problems exist, handy as a CI gate.

    Gotchas

    The report lives at output/<subfolder>/_audit/image-audit.html - don't go hunting at the folder root. The HTML contains embedded thumbnails and filenames, so if the batch is private, skim it before sharing the file. And remember the exact-duplicate caveat: it's SHA-256 matching, not perceptual similarity. Corrupt images don't crash the run - they get flagged and the batch continues - which is more than you can say for a lot of image tools. For a brand-new pack with zero community signal yet, the code is clean, tested, and MIT-licensed; the author's contact email is in the README if you hit something. The honest verdict: it's small, it's boring, and that's exactly why it's worth having on your publishing workflow.

    CategoryZC/quality

    Inputs (5)

    NameTypeDefaultDescription
    subfolderSTRING
    recursiveBOOLEANtrue
    min_widthINT00–65536
    min_heightINT00–65536
    thumbnail_widthINT18040–1024

    Outputs (4)

    NameTypeDescription
    html_reportSTRING
    json_reportSTRING
    image_countINT
    finding_countINT