Checkpoint Info Setter v074
Tag your model zoo so the tester can read your mind
- status
If your models/checkpoints folder looks like a hard drive that had a party, Checkpoint Info Setter v074 is how you clean it up - and, more usefully, how you teach the rest of this pack what each model actually is. It's a metadata writer for a single checkpoint file: you tell it the architecture, the CLIP structure, the category, your preferred VAE and sampler settings, and it remembers all of it. Then CheckpointTester_v074, CheckpointParamsLoader_v074, and the viewer nodes act on that memory.
The mental model is a library card for every model you own. Without it, the tester has to guess an architecture from filenames and heuristics; with it, loading the right model with the right CLIP and the right sampling defaults becomes a lookup instead of a gamble. It only writes info - it doesn't load or generate anything - so think of it as the cataloging step in a three-node workflow (set, test, view).
How it works
The node hashes the checkpoint file, keys a record into the pack's JSON database (checkpoint_tester_db.json in the pack's nodes folder), and stores whatever you set: architecture, whether a VAE or CLIP is embedded, clip type, category, notes, preferred VAE/CLIPs, device, and T5 bit depth. It also stores the optional generation params - sampler, scheduler, steps, cfg, clip_skip, width, height - so the params loader can hand those back later. Everything's keyed by file hash, so moving the file updates the record instead of creating a duplicate. The safetensors angle matters here: since checkpoint files are just JSON-header-plus-tensors, hashing is cheap and reliable.
Inputs and outputs that matter
checkpoint_path- required string, the absolute path to the.safetensors(or.ckpt- though you really should be on safetensors, the pickle format is a security footgun).architecture- the big dropdown (Unknown, SD1.5, SD2.1, SDXL, SD3/SD3.5, Flux 1D/1S, Playground, Illustrious, Pony, and more). This is the single most important field you set.has_embedded_vae/has_embedded_clip- honesty pays here; telling it wrong makes the tester load the wrong combo.clip_type- auto is a fine default; set it explicitly if you know your model needs a specific combiner (some newer architectures do).category- art, realistic, anime, photographic, etc. Mostly used as a filter in the tester.preferred_vae,preferred_clip1–clip4,clip_device,t5_bit_depth- the preferences the tester will honor.notes- free text. Future-you will thank you.
Optional block: sampler, scheduler, steps, cfg, clip_skip, width, height - your per-model generation defaults.
Output: a single status string confirming the save.
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 extra models or downloads - this is pure bookkeeping. One licensing note since you're building a library: the pack is CC BY-NC 4.0 for non-commercial use, with a separate paid license for commercial work, so if you're cataloging models for a business, check the license before you build a workflow on it.
Common issues
The most common stumble is the path again - it must exist or you get a "file not found" status rather than a helpful error. If the VAE/CLIP dropdowns show only "None", that's ComfyUI's model lists being empty or the files living in folders this pack isn't scanning; add them to the standard ComfyUI folders. And because the record lives in a JSON file the pack manages, back it up if your library is precious - a corrupted DB is recoverable but annoying. If you have a whole folder to tag at once, use CheckpointBatchInfoSetter_v074 instead of doing this one file at a time.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint_path | STRING | Path to the checkpoint file | |
| architecture | COMBO | Unknown | Model architecture |
| has_embedded_vae | BOOLEAN | true | Whether the checkpoint has an embedded VAE |
| has_embedded_clip | BOOLEAN | true | Whether the checkpoint has an embedded CLIP |
| clip_type | COMBO | auto | CLIP structure type or specific combiner |
| category | COMBO | unknown | Model category |
| preferred_vae | COMBO | None | Preferred VAE |
| preferred_clip1 | COMBO | None | Preferred primary CLIP |
| preferred_clip2 | COMBO | None | Preferred secondary CLIP |
| preferred_clip3 | COMBO | None | Preferred tertiary CLIP |
| preferred_clip4 | COMBO | None | Preferred quaternary CLIP |
| clip_device | COMBO | default | Preferred device for CLIPs |
| t5_bit_depth | COMBO | auto | Preferred T5 bit depth |
| notes | STRING | Additional notes | |
| sampleropt | COMBO | euler_ancestral | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduleropt | COMBO | normal | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| stepsopt | INT | 301–1000 | — |
| cfgopt | FLOAT | 7.00–100 | — |
| clip_skipopt | INT | 11–12 | — |
| widthopt | INT | 102464–8192 | — |
| heightopt | INT | 102464–8192 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |