Nodes/AAA Metadata System/Checkpoint Tester v074
ComfyUI Node

Checkpoint Tester v074

A/B test your whole model folder without rewiring

By EricRollei·Created 10 months ago·Updated 8 months ago· 13
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