Dark Checkpoint Switcher
Two checkpoints, one switch — manual model A/B without rewiring anything
- ckpt_name
DarkCheckpointSwitcher is the dumbest node in the DarkPrompts pack, and it's supposed to be. You pick two checkpoints in two dropdowns, set use_checkpoint to 1 or 2, and it hands you whichever one you chose. That's the entire job. If you're A/B testing models, or you have one workflow you want to run against two different checkpoints without editing anything, this saves you from building two parallel loader branches and swapping wires by hand.
How it works
The two checkpoint1 and checkpoint2 inputs aren't free-text fields - they're dropdowns populated from your actual models/checkpoints folder via ComfyUI's folder_paths.get_filename_list("checkpoints"), so you can't mistype a filename. An INT selector (use_checkpoint, 1 or 2) picks which one comes out the other side. Internally it's a two-line if/else: return checkpoint1, or return checkpoint2.
Like its randomizer sibling, the output ckpt_name is a checkpoint name (STRING), not a loaded MODEL - you connect it into a CheckpointLoader node's ckpt_name input, and the loader does the heavy lifting. That means switching is a model load, which on an SDXL checkpoint is a couple of seconds, not instant. Fine for A/B comparisons, and honestly fine for most use.
When to reach for it
- Manual A/B testing. Generate the same seed against model 1, flip
use_checkpointto 2, generate again. Fixed seed, single change, exactly the comparison the troubleshooting playbook tells you to run. - One graph, two looks. Portrait vs. anime style from the same prompt structure - just flip the switch instead of maintaining a second branch.
It's a manual switch. If you want automatic rotation - a random pick held for N generations - that's the separate DarkCheckpointRandomizer node in the same pack. They're designed to cover different jobs and they don't overlap.
The inputs that matter
checkpoint1/checkpoint2(dropdowns) - your two candidates.use_checkpoint(INT, 1 or 2, default 1) - the switch.
No seeds, no state files, nothing persisted. Restart the server and it forgets nothing, because it has nothing to remember. About the only way to trip this node up is to delete one of the two checkpoints it points at - the dropdown just won't list it anymore, so re-pick it.
Install
ComfyUI Manager → search "DarkPrompts" → install, restart. Or the git route:
cd ComfyUI/custom_nodes
git clone https://github.com/darkpixel/darkprompts.git
Restart ComfyUI. No dependencies, no model downloads - the node reads your existing checkpoints folder and does nothing else.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint1 | COMBO | 0 options: | |
| checkpoint2 | COMBO | 0 options: | |
| use_checkpoint | INT | 11–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ckpt_name | — |