Checkpoint Automatic Config
A checkpoint loader that remembers the right steps, CFG, and sampler for you
- MODEL
- CLIP
- VAE
- STEPS
- CFG
- SAMPLER
- SCHEDULER
The most reliable way to ruin a Lightning or Turbo checkpoint is to feed it your normal settings. CFG 7, 20 steps, DPM++ 2M Karras - that's how you get the oversaturated, artifacted mess that ends up in half the "why does my output look burnt" threads. This node is a small fix for exactly that failure mode: it's the standard CheckpointLoaderSimple with a table of "right settings" bolted on, so the loader and the sampler recipe travel as one unit.
What it does
Pick a checkpoint and it loads it exactly like the built-in loader - same MODEL, CLIP, VAE outputs - but it also hands you STEPS, CFG, SAMPLER, and SCHEDULER on separate ports. Wire those straight into a KSampler and you never set steps, CFG, sampler, and scheduler by hand again. When automatic_config is on (it is by default), the values don't come from the widget you typed into - they come from a YAML file the pack ships, keyed by checkpoint filename.
How it works
The node is a subclass of ComfyUI's built-in CheckpointLoaderSimple, so it inherits the loader and just adds plumbing around it. At startup it reads models_config.yaml from its own folder. When you run, it looks your ckpt_name up in that table; if found, it validates the entry and overrides whatever you typed in steps_total, cfg, sampler_name, and scheduler_name, printing the applied values to the console. If the checkpoint isn't in the table and auto-config is on, it refuses to run with an "unknown checkpoint" error.
The shipped table covers 13 SDXL checkpoints, most of them Lightning or distilled merges: Juggernaut XL Lightning, DreamShaper XL Lightning, RealVisXL v4 Lightning, TurboVisionXL, and friends. They're set to 5-8 steps, CFG 1-2, on dpmpp_sde or euler/euler_ancestral with karras or sgm_uniform - the low-CFG, few-steps playbook that distilled models require. The specific sampler pairs are the author's reading of each model card, not universal law; the sane rule is still to take the pair your model card recommends first.
The inputs and outputs that matter
ckpt_name- the checkpoint to load.automatic_config- the whole feature. Flip it off and the node degrades to a plain loader that uses your typed values.steps_total,cfg,sampler_name,scheduler_name- your fallbacks, and what auto-config overrides.
Outputs: MODEL, CLIP, VAE (identical to stock), plus STEPS, CFG, SAMPLER, SCHEDULER. The last four are what you connect to a KSampler's steps, cfg, sampler_name, and scheduler inputs.
Installing it
It's published to the ComfyUI registry, so the easy route is ComfyUI Manager → search "Checkpoint Automatic Config" and install. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/mech-tools/comfyui-checkpoint-automatic-config
Restart ComfyUI after either. No pip dependencies beyond PyYAML (ComfyUI already has it) and it downloads no models - it only references checkpoints you're expected to have in models/checkpoints already.
Common issues
The "unknown checkpoint" error is the one you'll hit first: auto-config is on and your model isn't in the table. Fix it by editing models_config.yaml (in custom_nodes/comfyui-checkpoint-automatic-config/) or by flipping automatic_config off. Two footguns when you edit that file by hand: cfg must be written with a decimal point - cfg: 2.0, not cfg: 2, or validation throws "invalid cfg format" - and steps_total must be a whole number. The file is read at import, so restart ComfyUI after editing. And yes, the config silently overrides your widgets: type 30 steps, get the table's 6. That's the point, not a bug.
One honest warning: this is a small, GPL-licensed pack, last touched in September 2025, with a README that's one sentence ("noded" typo included). If you live on one or two Lightning SDXL models, it genuinely removes a recurring footgun. If you use none of the 13 listed checkpoints, you're really just adopting a YAML template - which is fine, but know that going in.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | The name of the checkpoint (model) to load. | |
| automatic_config | BOOLEAN | true | — |
| steps_total | INT | 51–16384 | — |
| cfg | FLOAT | 2.00–100 | — |
| sampler_name | COMBO | 34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28 | |
| scheduler_name | COMBO | 9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3 |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The model used for denoising latents. |
| CLIP | CLIP | The CLIP model used for encoding text prompts. |
| VAE | VAE | The VAE model used for encoding and decoding images to and from latent space. |
| STEPS | INT | — |
| CFG | FLOAT | — |
| SAMPLER | euler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,ddim,uni_pc,uni_pc_bh2 | — |
| SCHEDULER | normal,karras,exponential,sgm_uniform,simple,ddim_uniform,beta,linear_quadratic,kl_optimal | — |