ComfyUI Node

Model Preset

Never type score_9 by hand again

By mudknight·Created 8 months ago·Updated 2 months ago· 1
Model Preset
    • positive
    • negative
    ckpt_name
    quality_tagstrue
    embeddingstrue

    Model Preset turns a checkpoint name into the right quality tags and negative embeddings, so you stop copy-pasting score_9, score_8_up into every prompt. You type (or wire) a checkpoint name, flip two toggles, and out come positive and negative strings pre-filled with the quality tags and embeddings that model family expects. For anyone on the Pony/Illustrious anime train, this is the node that ends the most tedious part of prompt writing.

    It's one of the preset nodes that feed the big Prompt (full-pipe) node - when that node injects "mystery quality tags," it's calling this one internally. But Model Preset is also standalone: output two strings, wire them into your own prompt composition, and you've got model-appropriate tags without committing to the full-pipe system.

    How it works

    It looks up your ckpt_name in a JSONC config file, config/models.jsonc, matching first by the exact filename and then by the subfolder family (so folder/Pony_realism.safetensors matches both the specific file entry and the Pony family entry). Each entry defines quality (positive/negative tag strings) and embeddings. The node returns:

    • positive - the quality positive tags plus embedding positive, comma-joined, with quality_tags and embeddings toggles (both on by default).
    • negative - the quality negative (things like score_6, score_5, score_4 for Pony) plus the negative embedding (negativeXL_D).

    If the checkpoint isn't in the config, or the string is empty, it returns empty strings - no error, just nothing. That's the main thing to know.

    The config ships with sensible defaults for Pony and Illustrious and is editable - the file is created in the pack's config/ folder on first run if missing, and the Preset Manager web UI (a button the pack adds next to the Manager button) is the intended editing surface. The defaults are set for SDXL; the docs call that out explicitly.

    The inputs

    • ckpt_name - a string, not a dropdown. The full-pipe Prompt node passes the pipe's checkpoint name into this automatically; standalone, you'll usually wire in a filename from elsewhere.
    • quality_tags / embeddings - the toggles described above.

    Installing

    Part of the mudknight utils pack. ComfyUI Manager → search comfyui-mudknight-utils, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/mudknight/comfyui-mudknight-utils
    

    Restart. No model downloads.

    Gotchas

    • Empty outputs - the checkpoint name doesn't match any config entry. Either the string has a path mismatch (it matches by basename and immediate parent folder only) or you're on a model with no preset. Add one in the JSONC.
    • "Wrong" quality tags - you're on a model that inherits a family default (e.g. anything in an Illustrious/ folder gets the Illustrious tags). Turn the toggles off if you don't want them, or edit the config.
    • Not a magic "better prompt" button - it only knows the tags you teach it. Out of the box it covers Pony and Illustrious; everything else returns empty.

    Zero comfy.icu impressions, niche pack - but if you switch between Pony and Illustrious checkpoints, this quietly removes a whole class of "did I paste the right score tags" mistakes.

    Categorymudknight/presets

    Inputs (3)

    NameTypeDefaultDescription
    ckpt_nameSTRING
    quality_tagsBOOLEANtrue
    embeddingsBOOLEANtrue

    Outputs (2)

    NameTypeDescription
    positiveSTRING
    negativeSTRING