ποΈ Model Preset Manager
Stop re-tuning the KSampler every time you swap checkpoints
- preset_data
- preview_image
- status
- sampler_name
- scheduler
- steps
- cfg
- width
- height
- seed
Every model has its own sweet spot. Your SDXL checkpoint likes dpmpp_2m + karras at 28 steps; the Flux lite you test out wants fewer steps and a much lower CFG; that one anime model begs for clip-skip 2. Switching between them in ComfyUI means manually re-typing the same handful of KSampler values over and over - and forgetting one gives you a fried image you have to debug. The ποΈ Model Preset Manager is a small pack's answer to that: it remembers the sampler, scheduler, steps, CFG, seed and resolution per checkpoint, and hands them straight to your KSampler when you switch.
Fair warning up front: it's a niche utility from a tiny, new pack (essentially zero comfy.icu impressions, no community track record). The usual advice for this exact problem is "just save workflows / use tabs" - and honestly, that advice works. Where this node earns its keep is the workflow where you're A/B testing several checkpoints live and want the settings to follow the model without dragging in a separate saved graph.
How it works
The node keys everything off two dropdowns: model_name (your checkpoint, pulled straight from ComfyUI's checkpoint list) and preset_name (every preset you've saved, populated dynamically, plus a new_preset entry for creating one). The sampler and scheduler dropdowns are also dynamic - they read your installed ComfyUI's comfy.samplers registry at load time rather than trusting a hardcoded list, so you only ever see samplers that actually exist on your machine.
- To load: pick the checkpoint and a saved preset. The node reads its JSON, spits the values out the bottom, and reports
β Loaded presetin the status output. - To save: pick a checkpoint, set save_preset to true, type a name into new_preset_name, set the parameters, run. It writes a preset for that model (updating one just means selecting it instead of
new_preset).
Presets are stored as JSON files per model on disk - but note the actual location. The README says ComfyUI/user/model_presets/, but the shipped code writes to the pack's own folder, custom_nodes/ComfyUI-Model_preset_Pilot/data/presets/. That matters: wipe or reinstall the custom node and your presets go with it. Back up that folder if you build up a library.
The inputs and outputs that matter
The parameters you actually set are the seven fields: sampler_name, scheduler, steps, cfg, clip_skip, width, height, and seed - all with sane defaults (euler/normal, 28 steps, CFG 5.5, 1024Γ1024). The outputs are the interesting part: preset_data (a JSON string of everything), preview_image, status, and then the same sampler_name, scheduler, steps, cfg, width, height, seed as separate typed outputs. Wire those seven straight into a KSampler and the whole sampling block configures itself from the preset.
Two gotchas buried here. First, clip_skip is saved into the preset but not exposed as an output - it's not in the schema's output list, so the node can't re-apply it for you. If clip-skip matters for your model, keep a separate clip-skip node wired from the model yourself. Second, loading matches presets to models by filename. Rename your .safetensors and the lookup breaks with β Model not found; the preset isn't lost, it's just keyed to the old name.
Installing it
Easiest via ComfyUI Manager - search for "Model Preset Pilot" and hit install. Manually, it's the standard dance:
cd ComfyUI/custom_nodes
git clone https://github.com/NewLouwa/ComfyUI-Model_preset_Pilot
# restart ComfyUI
The requirements.txt is just torch, pillow and numpy - all already present in any working ComfyUI, so there's effectively zero extra install. No model downloads, no API keys, no heavy deps.
Where people get burned
The preview image output is the flakiest part: displaying it relies on a ComfyUI helper (comfy.utils.save_images) that newer builds removed, and the code's fallback is just printing to the console. So don't count on the in-node preview on a recent ComfyUI - treat it as cosmetic; the actual generation doesn't use it. And remember the storage quirk above: the README's stated path is wrong, the presets live inside the pack's folder, and reinstall wipes them. If the node ever "forgets" a preset, check custom_nodes/ComfyUI-Model_preset_Pilot/data/presets/ before you assume it's gone.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| preset_name | COMBO | 1 options: new_preset | |
| model_name | COMBO | 0 options: | |
| save_presetopt | BOOLEAN | false | β |
| new_preset_nameopt | STRING | preset_XXX | β |
| sampler_nameopt | COMBO | euler | 6 options: euler, euler_ancestral, lms, heun, dpmpp_2m, dpmpp_sde |
| scheduleropt | COMBO | normal | 4 options: normal, karras, exponential, sgm_uniform |
| stepsopt | INT | 281β100 | β |
| cfgopt | FLOAT | 5.500.1β20 | β |
| clip_skipopt | INT | 00β12 | β |
| widthopt | INT | 102464β8192 | β |
| heightopt | INT | 102464β8192 | β |
| seedopt | INT | 00β18446744073709550000 | β |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| preset_data | STRING | β |
| preview_image | IMAGE | β |
| status | STRING | β |
| sampler_name | STRING | β |
| scheduler | STRING | β |
| steps | INT | β |
| cfg | FLOAT | β |
| width | INT | β |
| height | INT | β |
| seed | INT | β |