Nodes/ComfyUI Model Preset Pilot/πŸŽ›οΈ Model Preset Manager
ComfyUI Node

πŸŽ›οΈ Model Preset Manager

Stop re-tuning the KSampler every time you swap checkpoints

By NewLouwaΒ·Created 11 months agoΒ·Updated 11 months agoΒ· 3
πŸŽ›οΈ Model Preset Manager
    • preset_data
    • preview_image
    • status
    • sampler_name
    • scheduler
    • steps
    • cfg
    • width
    • height
    • seed
    β—„preset_nameβ–Ύβ–Ί
    β—„model_nameβ–Ύβ–Ί
    β—„save_presetfalseβ–Ί
    β—„new_preset_namepreset_XXXβ–Ί
    β—„sampler_nameeulerβ–Ί
    β—„schedulernormalβ–Ί
    β—„steps28β–Ί
    β—„cfg5.50β–Ί
    β—„clip_skip0β–Ί
    β—„width1024β–Ί
    β—„height1024β–Ί
    β—„seed0β–Ί

    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 preset in 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.

    CategoryπŸ€– Model Preset Pilot

    Inputs (12)

    NameTypeDefaultDescription
    preset_nameCOMBO1 options: new_preset
    model_nameCOMBO0 options:
    save_presetoptBOOLEANfalseβ€”
    new_preset_nameoptSTRINGpreset_XXXβ€”
    sampler_nameoptCOMBOeuler6 options: euler, euler_ancestral, lms, heun, dpmpp_2m, dpmpp_sde
    scheduleroptCOMBOnormal4 options: normal, karras, exponential, sgm_uniform
    stepsoptINT281–100β€”
    cfgoptFLOAT5.500.1–20β€”
    clip_skipoptINT00–12β€”
    widthoptINT102464–8192β€”
    heightoptINT102464–8192β€”
    seedoptINT00–18446744073709550000β€”

    Outputs (10)

    NameTypeDescription
    preset_dataSTRINGβ€”
    preview_imageIMAGEβ€”
    statusSTRINGβ€”
    sampler_nameSTRINGβ€”
    schedulerSTRINGβ€”
    stepsINTβ€”
    cfgFLOATβ€”
    widthINTβ€”
    heightINTβ€”
    seedINTβ€”