Nodes/AAA Metadata System/Checkpoint Tester v074
ComfyUI Node

Checkpoint Tester v074

A/B test your whole model folder without rewiring

By EricRollei·Created 11 months ago·Updated 10 months ago· 14
Checkpoint Tester v074
    • model
    • clip
    • vae
    • latent_format
    • model_name
    • model_path
    • checkpoint_list
    • total_checkpoints
    • selected_checkpoints
    • missing_info_list
    • prompt_embedding
    ◄dir_search_terms►
    ◄file_search_terms►
    ◄additional_path►
    ◄architectureAny►
    ◄categoryAny►
    ◄notes_search►
    ◄seed0►
    ◄vae_modeauto►
    ◄vae_nameNone►
    ◄clip_modeauto►
    ◄clip1_nameNone►
    ◄clip2_nameNone►
    ◄clip3_nameNone►
    ◄clip4_nameNone►
    ◄clip_typeauto►
    ◄clip_devicedefault►
    ◄t5_bit_depthauto►

    The fastest way to decide which checkpoint you actually like is to render the same prompt through a bunch of them and look. Checkpoint Tester v074 is built for exactly that: it scans your model folders, filters by architecture, category, and notes, picks a checkpoint (including at random), loads model + CLIP + VAE, and hands them to you with a full report. Swap the seed and you're testing the next model - no rewiring, no digging through a dropdown.

    It's the checkpoint counterpart to LoRATester_v03 and the centerpiece of the AAA Metadata System pack's "loaders/checkpoint tester" family. If you've got a model folder that's outgrown its usefulness, this node turns it into a randomized A/B rig. The honest framing: it's opinionated and does a lot, but it's the reason the rest of that family exists.

    How it works

    On load it scans ComfyUI's standard model directories (checkpoints, unet, diffusion_models) plus any additional_path, hashes every file, and inspects it to detect architecture, embedded VAE/CLIP, and clip type - recording everything into the pack's JSON checkpoint database. Runs then filter that catalog by your dir_search_terms / file_search_terms (comma-separated, -term to exclude), architecture, category, and notes_search. The seed input picks which one: 0 = random, 1 = first in the list, etc.

    Loading is smart about memory: it caches recently used VAEs and CLIPs, evicting oldest-first and clearing GPU memory between swaps, so rapid-fire testing doesn't OOM you. The vae_mode and clip_mode dropdowns control whether it uses embedded components, specific files, or nothing - which matters for models that need an external VAE or a particular CLIP combiner. The missing_info_list output is the honesty feature: it tells you which checkpoints lack recorded info, so you know your test results are built on guesses.

    Inputs and outputs that matter

    • seed - your test selector. Random by default (0). Set it to walk the list deterministically.
    • architecture / category / notes_search - the filters that keep random testing inside a family you care about (e.g., only SDXL, only "anime").
    • vae_mode / clip_mode and their _name inputs - how to source the VAE and CLIP. auto is right most of the time.
    • clip_type, clip_device, t5_bit_depth - for the newer architectures that need explicit CLIP handling.

    Outputs: model, clip, vae (wire into your sampler), latent_format, model_name, model_path, checkpoint_list, total_checkpoints, selected_checkpoints, missing_info_list, and a prompt_embedding.

    Installing it

    Part of AAA Metadata System by Eric Hiss (GitHub: EricRollei). Via ComfyUI Manager (search "AAA Metadata System") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/EricRollei/AAA_Metadata_System.git
    cd AAA_Metadata_System
    pip install -r requirements.txt
    

    Restart ComfyUI. No model downloads - it works on what you already have.

    Common issues

    First load on a huge model folder is slow: it hashes and inspects every file, so give it a minute. If random testing keeps landing on models you don't want, your filters are too loose - add exclusions (-inpaint,-refiner) or narrow the architecture. If a model loads but renders garbage, it's usually a wrong architecture detection or a missing VAE; check missing_info_list and the VAE/CLIP modes rather than blaming the sampler. And because everything keys off the JSON database, a stale or hand-edited DB produces stale results - re-run the scan after you move files. This node is a testing rig, not a final loader; once you've found your favorite, note its name and load it the normal way.

    Categoryloaders/checkpoint tester

    Inputs (17)

    NameTypeDefaultDescription
    dir_search_termsSTRINGComma-separated terms to search in directory paths. Use -term to exclude.
    file_search_termsSTRINGComma-separated terms to search in checkpoint filenames. Use -term to exclude (e.g., -inpaint,-refiner).
    additional_pathSTRINGAdditional directory to search for checkpoints
    architectureCOMBOAnyFilter by model architecture
    categoryCOMBOAnyFilter by model category
    notes_searchSTRINGSearch terms to match in model notes. Use -term to exclude.
    seedINT00–18446744073709550000Checkpoint number (1-based index) or random seed
    vae_modeCOMBOautoHow to select the VAE
    vae_nameCOMBONoneSpecific VAE to use
    clip_modeCOMBOautoHow to select CLIP
    clip1_nameCOMBONonePrimary CLIP model
    clip2_nameCOMBONoneSecondary CLIP model
    clip3_nameCOMBONoneTertiary CLIP model
    clip4_nameCOMBONoneQuaternary CLIP model
    clip_typeCOMBOautoSpecific CLIP combiner type (auto=detect)
    clip_deviceCOMBOdefaultDevice for CLIP models
    t5_bit_depthCOMBOautoBit depth for T5 models (auto=detect)

    Outputs (11)

    NameTypeDescription
    modelMODEL—
    clipCLIP—
    vaeVAE—
    latent_formatSTRING—
    model_nameSTRING—
    model_pathSTRING—
    checkpoint_listSTRING—
    total_checkpointsINT—
    selected_checkpointsINT—
    missing_info_listSTRING—
    prompt_embeddingEMBEDDING—