ComfyUI Node

LoadSetParameters

Stop re-typing your negative prompt every time you swap models

By mittimi·Created 2 years ago·Updated 6 months ago· 4
LoadSetParameters
    • model
    • clip
    • vae
    • positive_prompt
    • negative_prompt
    • positive_prompt_text
    • negative_prompt_text
    • Latent
    • Steps
    • CFG
    • sampler_name
    • scheduler
    • seed
    • parameters_data
    preset
    checkpoint
    ClipNum-1
    vae
    PosPromptA
    PosPromptB
    PosPromptC
    NegPromptA
    NegPromptB
    NegPromptC
    Width512
    Height512
    BatchSize1
    Steps20
    CFG
    SamplerName
    Scheduler
    Seed1

    If you run more than one checkpoint, you know the ritual: load the new model, re-paste the negative prompt, reset the sampler, redo the CFG, and hope you didn't forget the clip skip. This node kills that ritual. LoadSetParameters (class LoadSetParamMittimi) is the flagship of the mittimiLoadPreset2 pack - it turns your entire recipe into a preset you recall from one dropdown, then outputs everything a KSampler wants so it can sit in place of half your loading graph.

    How it works

    The pack keeps presets as 16-field TOML files in its own presets/ folder (the node ships with a preset.toml to copy). Pick one in the preset widget and the values pour into the node's widgets - model name, prompts, size, CFG, sampler, scheduler, the works. When the node runs it loads the checkpoint, applies clip skip, merges your three prompt boxes, encodes the conditioning, and builds the latent tensor itself. You get model, clip, VAE, conditioning, plain-text prompts, sampler settings, and a parameters_data blob that records the whole recipe in A1111's metadata format. One node, most of your loading graph.

    The inputs that actually matter

    • preset - dropdown of TOML files in the pack's presets/ folder. Selecting one fills the widgets below, but editing a widget never writes back to the file, so you can tweak a loaded preset per-run without touching the preset.
    • vae - pick a separate VAE or Use_merged_vae to use the model's built-in one.
    • ClipNum - clip skip as a negative number (-1 is "skip 1"). This is the anime-model dial: Pony, Illustrious and their descendants expect 2, and the default of -1 usually leaves anime models looking soft.
    • PosPromptA / PosPromptB / PosPromptC and NegPromptA/B/C - the three boxes are concatenated in order with no comma inserted between them, so plan your own punctuation. Split them however you like; the author's own habit is a quality-tag system split across A and C.
    • Width / Height / BatchSize / Steps / CFG / SamplerName / Scheduler / Seed - the settings, all exposed as widgets.

    The prompt boxes understand A1111-style LoRA syntax (<lora:xxx:1.0>, folder paths and .safetensors extensions included) and even Lora Block Weight entries like <lora:xxx:1.0:lbw=SD-ALL>. If you've installed ComfyUI-ppm, Negpip works in the prompt boxes too. Note the prompt widgets only parse prompts you type - the README is upfront that the LoRA handling inside this node is a convenience, and if it ever fights you, write LoRA in the prompt and it will be applied as part of the model/clip outputs.

    Outputs and how they wire up

    • model, clip, vae → straight into a KSampler.
    • positive_prompt, negative_prompt - already-encoded CONDITIONING. The README's honest advice: these are often inconvenient, so use the text outputs instead.
    • positive_prompt_text, negative_prompt_text - the merged prompts as plain strings, ready for a standard CLIP Text Encode.
    • Latent - a zero latent in the right size and batch, so you can skip Empty Latent Image entirely.
    • Steps, CFG, sampler_name, scheduler, seed → the matching KSampler inputs.
    • parameters_data → feed this to the pack's SaveImageWithParamText so the image gets stamped with an A1111-style parameter block.

    One trap: the seed widget never randomizes itself - the README says so explicitly. To get varied seeds, right-click it and "Convert Widget to Input", then wire in a random seed generator.

    Install and gotchas

    Install via ComfyUI Manager (search "ComfyUI_mittimiLoadPreset2") or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/mittimi/ComfyUI_mittimiLoadPreset2
    

    then restart ComfyUI. The only Python dependency is toml, which Manager installs for you - no model downloads, nothing heavy.

    Two things will bite you. First, if RES4LYF is installed, this node doesn't work properly - the scheduler list breaks. The README documents a fix: append the bong_tangent and beta57 scheduler registrations to RES4LYF's init.py (from ClownsharkBatwing/RES4LYF#161). Second, this is built for SD1.5 and XL conventions - sampler names, CFG semantics, clip skip are all the old stack. Don't reach for it on Flux or other flow-matching models. And be aware it reloads the checkpoint from disk every run, so switching presets is a full model load, not an instant swap.

    CategorymittimiTools

    Inputs (18)

    NameTypeDefaultDescription
    presetCOMBO1 options: preset.toml
    checkpointCOMBO0 options:
    ClipNumINT-1-10–-1
    vaeCOMBO1 options: Use_merged_vae
    PosPromptASTRING
    PosPromptBSTRING
    PosPromptCSTRING
    NegPromptASTRING
    NegPromptBSTRING
    NegPromptCSTRING
    WidthINT5128–16384
    HeightINT5128–16384
    BatchSizeINT11–999999
    StepsINT201–999999
    CFGFLOAT
    SamplerNameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    SchedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
    SeedINT10–18446744073709550000

    Outputs (14)

    NameTypeDescription
    modelMODEL
    clipCLIP
    vaeVAE
    positive_promptCONDITIONING
    negative_promptCONDITIONING
    positive_prompt_textSTRING
    negative_prompt_textSTRING
    LatentLATENT
    StepsINT
    CFGFLOAT
    sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,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_2m_sde_heun,dpmpp_2m_sde_heun_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,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
    seedINT
    parameters_dataPDATA